From 8f8e6d00b3d02feddd33b3f117caf495de22eb35 Mon Sep 17 00:00:00 2001 From: "shiwoo.park" Date: Thu, 17 Apr 2025 18:05:27 +0900 Subject: [PATCH 001/432] fix(query-core, vue-query): fix type inference in `setQueryData` when used in functions with explicit return types (#9030) * fix(query-core): fix setQueryData type inference in typed contexts * test(query-core): add test case for setQueryData type inference in functions * fix(vue-query): fix setQueryData type inference in typed contexts * test(vue-query): add test case for setQueryData type inference in functions --- .../src/__tests__/queryClient.test-d.tsx | 38 +++++++++++++++++++ packages/query-core/src/queryClient.ts | 2 +- .../src/__tests__/queryClient.test-d.ts | 13 +++++++ packages/vue-query/src/queryClient.ts | 6 +-- 4 files changed, 55 insertions(+), 4 deletions(-) diff --git a/packages/query-core/src/__tests__/queryClient.test-d.tsx b/packages/query-core/src/__tests__/queryClient.test-d.tsx index e06d5829bd..c9d953a973 100644 --- a/packages/query-core/src/__tests__/queryClient.test-d.tsx +++ b/packages/query-core/src/__tests__/queryClient.test-d.tsx @@ -113,6 +113,19 @@ describe('setQueryData', () => { expectTypeOf(data).toEqualTypeOf() }) + + it('should preserve updater parameter type inference when used in functions with explicit return types', () => { + const queryKey = ['key'] as DataTag, number> + const queryClient = new QueryClient() + + // Simulate usage inside a function with explicit return type + // The outer function returns 'unknown' but this shouldn't affect the updater's type inference + ;(() => + queryClient.setQueryData(queryKey, (data) => { + expectTypeOf(data).toEqualTypeOf() + return data + })) satisfies () => unknown + }) }) describe('getQueryState', () => { @@ -590,3 +603,28 @@ describe('resetQueries', () => { }) }) }) +type SuccessCallback = () => unknown +it('should infer types correctly with expression body arrow functions', () => { + const queryKey = ['key'] as DataTag, number> + const queryClient = new QueryClient() + + // @ts-expect-error + const callbackTest: SuccessCallback = () => + queryClient.setQueryData(queryKey, (data) => { + expectTypeOf(data).toEqualTypeOf() + return data + }) +}) + +it('should infer types correctly with block body arrow functions', () => { + const queryKey = ['key'] as DataTag, number> + const queryClient = new QueryClient() + + // @ts-expect-error + const callbackTest2: SuccessCallback = () => { + queryClient.setQueryData(queryKey, (data) => { + expectTypeOf(data).toEqualTypeOf() + return data + }) + } +}) diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts index ad920601fc..3406bbf7d2 100644 --- a/packages/query-core/src/queryClient.ts +++ b/packages/query-core/src/queryClient.ts @@ -185,7 +185,7 @@ export class QueryClient { NoInfer | undefined >, options?: SetDataOptions, - ): TInferredQueryFnData | undefined { + ): NoInfer | undefined { const defaultedOptions = this.defaultQueryOptions< any, any, diff --git a/packages/vue-query/src/__tests__/queryClient.test-d.ts b/packages/vue-query/src/__tests__/queryClient.test-d.ts index fbfdd02a7a..ae50680d34 100644 --- a/packages/vue-query/src/__tests__/queryClient.test-d.ts +++ b/packages/vue-query/src/__tests__/queryClient.test-d.ts @@ -96,6 +96,19 @@ describe('setQueryData', () => { expectTypeOf(data).toEqualTypeOf() }) + + it('should preserve updater parameter type inference when used in functions with explicit return types', () => { + const queryKey = ['key'] as DataTag, number> + const queryClient = new QueryClient() + + // Simulate usage inside a function with explicit return type + // The outer function returns 'unknown' but this shouldn't affect the updater's type inference + ;(() => + queryClient.setQueryData(queryKey, (data) => { + expectTypeOf(data).toEqualTypeOf() + return data + })) satisfies () => unknown + }) }) describe('fetchInfiniteQuery', () => { diff --git a/packages/vue-query/src/queryClient.ts b/packages/vue-query/src/queryClient.ts index ca0fe3953d..dc0bff131d 100644 --- a/packages/vue-query/src/queryClient.ts +++ b/packages/vue-query/src/queryClient.ts @@ -114,17 +114,17 @@ export class QueryClient extends QC { NoInfer | undefined >, options?: MaybeRefDeep, - ): TInferredQueryFnData | undefined + ): NoInfer | undefined setQueryData>( queryKey: MaybeRefDeep, updater: Updater | undefined, NoInfer | undefined>, options?: MaybeRefDeep, - ): TData | undefined + ): NoInfer | undefined setQueryData( queryKey: MaybeRefDeep, updater: Updater, options: MaybeRefDeep = {}, - ): TData | undefined { + ): NoInfer | undefined { return super.setQueryData( cloneDeepUnref(queryKey), updater, From f812bf4791b72fb8d6653a1684e2897eb9750349 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Thu, 17 Apr 2025 18:09:39 +0900 Subject: [PATCH 002/432] test(*): remove unnecessary async (#9025) --- packages/query-core/src/__tests__/hydration.test.tsx | 2 +- .../src/__tests__/PersistQueryClientProvider.test.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index 0a7bb8909b..ed9a1a2a29 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -133,7 +133,7 @@ describe('dehydration and rehydration', () => { hydrationClient.clear() }) - test('should not dehydrate queries if dehydrateQueries is set to false', async () => { + test('should not dehydrate queries if dehydrateQueries is set to false', () => { const queryCache = new QueryCache() const queryClient = createQueryClient({ queryCache }) vi.waitFor(() => diff --git a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index ece78d4b23..e47a1f75f4 100644 --- a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -19,7 +19,7 @@ const createMockPersister = (): Persister => { let storedState: PersistedClient | undefined return { - async persistClient(persistClient: PersistedClient) { + persistClient(persistClient: PersistedClient) { storedState = persistClient }, async restoreClient() { @@ -706,7 +706,7 @@ describe('PersistQueryClientProvider', () => { let storedState: PersistedClient | undefined return { - async persistClient(persistClient) { + persistClient(persistClient) { storedState = persistClient }, async restoreClient() { From 522b081bf0deef8de8448e8889e58d086045d514 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Thu, 17 Apr 2025 18:10:00 +0900 Subject: [PATCH 003/432] test(*): remove unnecessary async (#9026) --- .../PersistQueryClientProvider.test.tsx | 2 +- .../src/__tests__/useMutation.test.tsx | 24 ++++++++-------- .../src/__tests__/useQueries.test.tsx | 10 +++---- .../src/__tests__/useQuery.test.tsx | 28 +++++++++---------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index 0274e4db3c..164a387d40 100644 --- a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -15,7 +15,7 @@ const createMockPersister = (): Persister => { let storedState: PersistedClient | undefined return { - async persistClient(persistClient: PersistedClient) { + persistClient(persistClient: PersistedClient) { storedState = persistClient }, async restoreClient() { diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index 3a80e4b45f..4c23bf383e 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -316,11 +316,11 @@ describe('useMutation', () => { function Page() { const mutation = useMutation(() => ({ - mutationFn: async (text: string) => text, - onSuccess: async () => { + mutationFn: (text: string) => Promise.resolve(text), + onSuccess: () => { callbacks.push('useMutation.onSuccess') }, - onSettled: async () => { + onSettled: () => { callbacks.push('useMutation.onSettled') }, })) @@ -330,10 +330,10 @@ describe('useMutation', () => { setActTimeout(async () => { try { const result = await mutateAsync('todo', { - onSuccess: async () => { + onSuccess: () => { callbacks.push('mutateAsync.onSuccess') }, - onSettled: async () => { + onSettled: () => { callbacks.push('mutateAsync.onSettled') }, }) @@ -369,10 +369,10 @@ describe('useMutation', () => { const mutation = useMutation(() => ({ mutationFn: async (_text: string) => Promise.reject(new Error('oops')), - onError: async () => { + onError: () => { callbacks.push('useMutation.onError') }, - onSettled: async () => { + onSettled: () => { callbacks.push('useMutation.onSettled') }, })) @@ -382,10 +382,10 @@ describe('useMutation', () => { setActTimeout(async () => { try { await mutateAsync('todo', { - onError: async () => { + onError: () => { callbacks.push('mutateAsync.onError') }, - onSettled: async () => { + onSettled: () => { callbacks.push('mutateAsync.onSettled') }, }) @@ -756,7 +756,7 @@ describe('useMutation', () => { }) }) - it('should not change state if unmounted', async () => { + it('should not change state if unmounted', () => { function Mutates() { const mutation = useMutation(() => ({ mutationFn: () => sleep(10) })) return @@ -901,11 +901,11 @@ describe('useMutation', () => { function Page() { const mutationSucceed = useMutation(() => ({ - mutationFn: async () => '', + mutationFn: () => Promise.resolve(''), meta: { metaSuccessMessage }, })) const mutationError = useMutation(() => ({ - mutationFn: async () => { + mutationFn: () => { throw new Error('') }, meta: { metaErrorMessage }, diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index 46ee666d42..fcdae15d84 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -69,7 +69,7 @@ describe('useQueries', () => { expect(results[2]).toMatchObject([{ data: 1 }, { data: 2 }]) }) - it('handles type parameter - tuple of tuples', async () => { + it('handles type parameter - tuple of tuples', () => { const key1 = queryKey() const key2 = queryKey() const key3 = queryKey() @@ -174,7 +174,7 @@ describe('useQueries', () => { } }) - it('handles type parameter - tuple of objects', async () => { + it('handles type parameter - tuple of objects', () => { const key1 = queryKey() const key2 = queryKey() const key3 = queryKey() @@ -315,7 +315,7 @@ describe('useQueries', () => { } }) - it('handles array literal without type parameter to infer result type', async () => { + it('handles array literal without type parameter to infer result type', () => { const key1 = queryKey() const key2 = queryKey() const key3 = queryKey() @@ -544,7 +544,7 @@ describe('useQueries', () => { type QueryKeyA = ['queryA'] const getQueryKeyA = (): QueryKeyA => ['queryA'] type GetQueryFunctionA = () => QueryFunction - const getQueryFunctionA: GetQueryFunctionA = () => async () => { + const getQueryFunctionA: GetQueryFunctionA = () => () => { return 1 } type SelectorA = (data: number) => [number, string] @@ -553,7 +553,7 @@ describe('useQueries', () => { type QueryKeyB = ['queryB', string] const getQueryKeyB = (id: string): QueryKeyB => ['queryB', id] type GetQueryFunctionB = () => QueryFunction - const getQueryFunctionB: GetQueryFunctionB = () => async () => { + const getQueryFunctionB: GetQueryFunctionB = () => () => { return '1' } type SelectorB = (data: string) => [string, number] diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 70914603b7..7a1547bf45 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -72,7 +72,7 @@ describe('useQuery', () => { // it should provide the result type in the configuration useQuery(() => ({ queryKey: [key], - queryFn: async () => true, + queryFn: () => true, })) // it should be possible to specify a union type as result type @@ -117,7 +117,7 @@ describe('useQuery', () => { type MyData = number type MyQueryKey = readonly ['my-data', number] - const getMyDataArrayKey: QueryFunction = async ({ + const getMyDataArrayKey: QueryFunction = ({ queryKey: [, n], }) => { return n + 42 @@ -128,9 +128,7 @@ describe('useQuery', () => { queryFn: getMyDataArrayKey, })) - const getMyDataStringKey: QueryFunction = async ( - context, - ) => { + const getMyDataStringKey: QueryFunction = (context) => { expectTypeOf(context.queryKey).toEqualTypeOf<['1']>() return Number(context.queryKey[0]) + 42 } @@ -170,7 +168,7 @@ describe('useQuery', () => { queryFn: () => fetcher(qk[1], 'token'), ...options, })) - const test = useWrappedQuery([''], async () => '1') + const test = useWrappedQuery([''], () => Promise.resolve('1')) expectTypeOf(test.data).toEqualTypeOf() // handles wrapped queries with custom fetcher passed directly to useQuery @@ -188,7 +186,9 @@ describe('useQuery', () => { 'safely' >, ) => useQuery(() => ({ queryKey: qk, queryFn: fetcher, ...options })) - const testFuncStyle = useWrappedFuncStyleQuery([''], async () => true) + const testFuncStyle = useWrappedFuncStyleQuery([''], () => + Promise.resolve(true), + ) expectTypeOf(testFuncStyle.data).toEqualTypeOf() } }) @@ -1854,7 +1854,7 @@ describe('useQuery', () => { }) // See https://github.com/tannerlinsley/react-query/issues/137 - it('should not override initial data in dependent queries', async () => { + it('should not override initial data in dependent queries', () => { const key1 = queryKey() const key2 = queryKey() @@ -1895,7 +1895,7 @@ describe('useQuery', () => { rendered.getByText('Second Status: success') }) - it('should update query options', async () => { + it('should update query options', () => { const key = queryKey() const queryFn = async () => { @@ -2018,7 +2018,7 @@ describe('useQuery', () => { }) // See https://github.com/tannerlinsley/react-query/issues/144 - it('should be in "pending" state by default', async () => { + it('should be in "pending" state by default', () => { const key = queryKey() function Page() { @@ -3403,7 +3403,7 @@ describe('useQuery', () => { const query = useQuery(() => ({ queryKey: key, - queryFn: async () => { + queryFn: () => { if (counter < 2) { counter++ throw new Error('error') @@ -3753,7 +3753,7 @@ describe('useQuery', () => { expect(results[2]).toMatchObject({ data: 'fetched data', isStale: false }) }) - it('should support enabled:false in query object syntax', async () => { + it('should support enabled:false in query object syntax', () => { const key = queryKey() const queryFn = vi.fn<(...args: Array) => string>() queryFn.mockImplementation(() => 'data') @@ -5916,7 +5916,7 @@ describe('useQuery', () => { const states: Array> = [] const error = new Error('oops') - const queryFn = async (): Promise => { + const queryFn = (): Promise => { throw error } @@ -5996,7 +5996,7 @@ describe('useQuery', () => { function Page() { const state = useQuery(() => ({ queryKey: key, - queryFn: async (): Promise => { + queryFn: (): Promise => { throw error }, retry: false, From fdf5a549c1ad6e574e31b8fef3f4525ac8767b1f Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Thu, 17 Apr 2025 18:10:19 +0900 Subject: [PATCH 004/432] test(svelte-query-persist-client): remove unnecessary async (#9027) --- .../tests/PersistQueryClientProvider.test.ts | 2 +- .../tests/useMutationState/useMutationState.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.test.ts b/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.test.ts index 98f449d93e..a52c40078c 100644 --- a/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.test.ts +++ b/packages/svelte-query-persist-client/tests/PersistQueryClientProvider.test.ts @@ -22,7 +22,7 @@ const createMockPersister = (): Persister => { let storedState: PersistedClient | undefined return { - async persistClient(persistClient: PersistedClient) { + persistClient(persistClient: PersistedClient) { storedState = persistClient }, async restoreClient() { diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts index c2190cfb14..24bc261cc9 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts @@ -3,7 +3,7 @@ import { fireEvent, render, waitFor } from '@testing-library/svelte' import BaseExample from './BaseExample.svelte' describe('useMutationState', () => { - test('Run few mutation functions and check from useMutationState ', async () => { + test('Run few mutation functions and check from useMutationState', async () => { const successMutationFn = vi.fn() const errorMutationFn = vi.fn().mockImplementation(() => { From d1255a8d2f2df8ad34b789078b5ff06ca646b5c5 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Thu, 17 Apr 2025 18:10:45 +0900 Subject: [PATCH 005/432] test(vue-query): remove unnecessary async (#9028) --- .../src/__tests__/mutationCache.test.ts | 4 +- .../src/__tests__/queryCache.test.ts | 6 +-- .../src/__tests__/queryClient.test.ts | 46 +++++++++---------- .../src/__tests__/useIsMutating.test.ts | 4 +- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/packages/vue-query/src/__tests__/mutationCache.test.ts b/packages/vue-query/src/__tests__/mutationCache.test.ts index b7b9764096..ab70f83459 100644 --- a/packages/vue-query/src/__tests__/mutationCache.test.ts +++ b/packages/vue-query/src/__tests__/mutationCache.test.ts @@ -10,7 +10,7 @@ describe('MutationCache', () => { }) describe('find', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const mutationCache = new MutationCache() mutationCache.find({ @@ -24,7 +24,7 @@ describe('MutationCache', () => { }) describe('findAll', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const mutationCache = new MutationCache() mutationCache.findAll({ diff --git a/packages/vue-query/src/__tests__/queryCache.test.ts b/packages/vue-query/src/__tests__/queryCache.test.ts index 74336b924e..f18047066d 100644 --- a/packages/vue-query/src/__tests__/queryCache.test.ts +++ b/packages/vue-query/src/__tests__/queryCache.test.ts @@ -10,7 +10,7 @@ describe('QueryCache', () => { }) describe('find', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryCache = new QueryCache() queryCache.find({ @@ -24,7 +24,7 @@ describe('QueryCache', () => { }) describe('findAll', () => { - test('should properly unwrap two parameters', async () => { + test('should properly unwrap two parameters', () => { const queryCache = new QueryCache() queryCache.findAll({ @@ -36,7 +36,7 @@ describe('QueryCache', () => { }) }) - test('should default to empty filters', async () => { + test('should default to empty filters', () => { const queryCache = new QueryCache() queryCache.findAll() diff --git a/packages/vue-query/src/__tests__/queryClient.test.ts b/packages/vue-query/src/__tests__/queryClient.test.ts index 45b508e5b1..544d1ca90b 100644 --- a/packages/vue-query/src/__tests__/queryClient.test.ts +++ b/packages/vue-query/src/__tests__/queryClient.test.ts @@ -14,7 +14,7 @@ const fn = () => 'mock' describe('QueryCache', () => { describe('isFetching', () => { - test('should properly unwrap 1 parameter', async () => { + test('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.isFetching({ @@ -28,7 +28,7 @@ describe('QueryCache', () => { }) describe('isMutating', () => { - test('should properly unwrap 1 parameter', async () => { + test('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.isMutating({ @@ -42,7 +42,7 @@ describe('QueryCache', () => { }) describe('getQueryData', () => { - test('should properly unwrap 1 parameter', async () => { + test('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.getQueryData(queryKeyRef) @@ -54,7 +54,7 @@ describe('QueryCache', () => { }) describe('getQueriesData', () => { - test('should properly unwrap queryKey param', async () => { + test('should properly unwrap queryKey param', () => { const queryClient = new QueryClient() queryClient.getQueriesData({ queryKey: queryKeyRef }) @@ -64,7 +64,7 @@ describe('QueryCache', () => { }) }) - test('should properly unwrap filters param', async () => { + test('should properly unwrap filters param', () => { const queryClient = new QueryClient() queryClient.getQueriesData({ queryKey: queryKeyRef }) @@ -76,7 +76,7 @@ describe('QueryCache', () => { }) describe('setQueryData', () => { - test('should properly unwrap 3 parameter', async () => { + test('should properly unwrap 3 parameter', () => { const queryClient = new QueryClient() queryClient.setQueryData(queryKeyRef, fn, { @@ -92,7 +92,7 @@ describe('QueryCache', () => { }) describe('setQueriesData', () => { - test('should properly unwrap params with queryKey', async () => { + test('should properly unwrap params with queryKey', () => { const queryClient = new QueryClient() queryClient.setQueriesData({ queryKey: queryKeyRef }, fn, { @@ -106,7 +106,7 @@ describe('QueryCache', () => { ) }) - test('should properly unwrap params with filters', async () => { + test('should properly unwrap params with filters', () => { const queryClient = new QueryClient() queryClient.setQueriesData({ queryKey: queryKeyRef }, fn, { @@ -122,7 +122,7 @@ describe('QueryCache', () => { }) describe('getQueryState', () => { - test('should properly unwrap 1 parameter', async () => { + test('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.getQueryState(queryKeyRef) @@ -134,7 +134,7 @@ describe('QueryCache', () => { }) describe('removeQueries', () => { - test('should properly unwrap 1 parameter', async () => { + test('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() queryClient.removeQueries({ @@ -148,7 +148,7 @@ describe('QueryCache', () => { }) describe('resetQueries', () => { - test('should properly unwrap 2 parameter', async () => { + test('should properly unwrap 2 parameter', () => { const queryClient = new QueryClient() queryClient.resetQueries( @@ -168,7 +168,7 @@ describe('QueryCache', () => { }) describe('cancelQueries', () => { - test('should properly unwrap 2 parameter', async () => { + test('should properly unwrap 2 parameter', () => { const queryClient = new QueryClient() queryClient.cancelQueries( @@ -259,7 +259,7 @@ describe('QueryCache', () => { }) describe('refetchQueries', () => { - test('should properly unwrap 2 parameter', async () => { + test('should properly unwrap 2 parameter', () => { const queryClient = new QueryClient() queryClient.refetchQueries( @@ -279,7 +279,7 @@ describe('QueryCache', () => { }) describe('fetchQuery', () => { - test('should properly unwrap parameter', async () => { + test('should properly unwrap parameter', () => { const queryClient = new QueryClient() queryClient.fetchQuery({ @@ -293,7 +293,7 @@ describe('QueryCache', () => { }) describe('prefetchQuery', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.prefetchQuery({ queryKey: queryKeyRef, queryFn: fn }) @@ -306,7 +306,7 @@ describe('QueryCache', () => { }) describe('fetchInfiniteQuery', () => { - test('should properly unwrap parameter', async () => { + test('should properly unwrap parameter', () => { const queryClient = new QueryClient() queryClient.fetchInfiniteQuery({ @@ -319,7 +319,7 @@ describe('QueryCache', () => { queryKey: queryKeyUnref, }) }) - test('should properly unwrap parameter using infiniteQueryOptions with unref', async () => { + test('should properly unwrap parameter using infiniteQueryOptions with unref', () => { const queryClient = new QueryClient() const options = infiniteQueryOptions({ @@ -338,7 +338,7 @@ describe('QueryCache', () => { }) describe('prefetchInfiniteQuery', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.prefetchInfiniteQuery({ @@ -356,7 +356,7 @@ describe('QueryCache', () => { }) describe('setDefaultOptions', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.setDefaultOptions({ @@ -374,7 +374,7 @@ describe('QueryCache', () => { }) describe('setQueryDefaults', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.setQueryDefaults(queryKeyRef, { @@ -391,7 +391,7 @@ describe('QueryCache', () => { }) describe('getQueryDefaults', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.getQueryDefaults(queryKeyRef) @@ -403,7 +403,7 @@ describe('QueryCache', () => { }) describe('setMutationDefaults', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.setMutationDefaults(queryKeyRef, { @@ -420,7 +420,7 @@ describe('QueryCache', () => { }) describe('getMutationDefaults', () => { - test('should properly unwrap parameters', async () => { + test('should properly unwrap parameters', () => { const queryClient = new QueryClient() queryClient.getMutationDefaults(queryKeyRef) diff --git a/packages/vue-query/src/__tests__/useIsMutating.test.ts b/packages/vue-query/src/__tests__/useIsMutating.test.ts index 3600014c1b..9a0f203c41 100644 --- a/packages/vue-query/src/__tests__/useIsMutating.test.ts +++ b/packages/vue-query/src/__tests__/useIsMutating.test.ts @@ -83,7 +83,7 @@ describe('useIsMutating', () => { }) describe('useMutationState', () => { - it('should return variables after calling mutate 1', async () => { + it('should return variables after calling mutate 1', () => { const mutationKey = ['mutation'] const variables = 'foo123' @@ -102,7 +102,7 @@ describe('useMutationState', () => { expect(mutationState.value).toEqual([variables]) }) - it('should return variables after calling mutate 2', async () => { + it('should return variables after calling mutate 2', () => { const queryClient = useQueryClient() queryClient.clear() const mutationKey = ['mutation'] From 256624af671772732c7e11c2689bb1697ee7e72c Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 17 Apr 2025 09:44:48 +0000 Subject: [PATCH 006/432] release: v5.74.4 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 2ebca14335..74f052cfcb 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 44cda2c0ec..989bbb5c0d 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.74.3", + "@tanstack/query-sync-storage-persister": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "^0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index d431dea200..3b86dc0a63 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 76d49f76d8..508bf82de8 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.74.3", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-devtools-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index e09100b7a4..2ce0c81101 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index c87fb3bb9f..4258636ddd 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index e6f4f13bd4..e6e567d27f 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 67b6a41f8f..4602bf1d1d 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index d44d96598f..abaface857 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 07df94e2c0..f683453ae5 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 7089177878..c1771c9b2a 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.3", + "@tanstack/angular-query-experimental": "^5.74.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 5c52475560..405b91d284 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 7b47151ee3..106703d3e5 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 1ab4680f67..7f2fd8eb66 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index b1fdaa4476..ea60f3f7b0 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.3", - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", - "@tanstack/react-query-persist-client": "^5.74.3", + "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-persist-client": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index b7bd1ba973..174d2d7ac9 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 08ee4ca92e..37009a1159 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index f5473f6a35..39dd5096be 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index b58428dc4f..22b02baab7 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.3", - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", - "@tanstack/react-query-persist-client": "^5.74.3", + "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-persist-client": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 3ff2fc4d22..b880fb4b69 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 6c6af8f70c..9bb5beedba 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index ac35c1bd0e..ff6eb44b89 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 697a49db39..cbe59f7bd0 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", - "@tanstack/react-query-next-experimental": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-next-experimental": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 60c55ce7d6..24b6daa18a 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index df671403b5..34eafa9675 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.3", + "@tanstack/query-sync-storage-persister": "^5.74.4", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", - "@tanstack/react-query-persist-client": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-persist-client": "^5.74.4", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index d593d1bb70..cc9dece18b 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index fa19f59902..06e8088600 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index cbc607235a..babd2e48b0 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index d8079614c4..11aad6df28 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 8adc0bdb94..482df28259 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 31402b0340..84e08e1887 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 0bb35631aa..feb324e778 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index a99c45d198..22dce73a15 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index edcf1456d4..ac5298233b 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index e6295c0196..cfc921359d 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 0b6ea5d701..242ee1cad7 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 9b1f90c931..ce1455a56c 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.3", - "@tanstack/react-query-devtools": "^5.74.3", + "@tanstack/react-query": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.4", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 7faa41c206..a81e1af0f3 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.74.3", - "@tanstack/solid-query-devtools": "^5.74.3", + "@tanstack/solid-query": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.4", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 4d0de0a2df..5bb95b71fa 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.3", - "@tanstack/solid-query-devtools": "^5.74.3", + "@tanstack/solid-query": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 64f17a6652..ddb4555513 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.3", - "@tanstack/solid-query-devtools": "^5.74.3", + "@tanstack/solid-query": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index c753cc213c..f9dd8dea11 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.3", - "@tanstack/solid-query-devtools": "^5.74.3", + "@tanstack/solid-query": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 6e9376b072..8489d213a2 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.3", - "@tanstack/solid-query-devtools": "^5.74.3", + "@tanstack/solid-query": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index c0eba9d8b2..3d4b04c0de 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.74.3", - "@tanstack/solid-query-devtools": "^5.74.3", + "@tanstack/solid-query": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.4", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index a70c23053a..3f11a57d15 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3" + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 9968232f12..31d9b5e831 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.3", - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3", - "@tanstack/svelte-query-persist-client": "^5.74.3" + "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4", + "@tanstack/svelte-query-persist-client": "^5.74.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index ecd1321d82..cdb798d010 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3" + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 7924909eb1..d266bd14f1 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3" + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index ad748023b7..bdc91638a3 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3" + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index f010d40347..4c4a35c923 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3" + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 7c5e3fec2d..ca0da904e5 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3" + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 3706a1722a..1d595e7f47 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.3", - "@tanstack/svelte-query-devtools": "^5.74.3" + "@tanstack/svelte-query": "^5.74.4", + "@tanstack/svelte-query-devtools": "^5.74.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 7636e76170..807d5d7283 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.3", + "@tanstack/vue-query": "^5.74.4", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 452e0ab46c..e7e39d668b 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.3", + "@tanstack/vue-query": "^5.74.4", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index b2f10b50c3..553c6137e5 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.3", - "@tanstack/vue-query-devtools": "^5.74.3", + "@tanstack/vue-query": "^5.74.4", + "@tanstack/vue-query-devtools": "^5.74.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 90142c3578..8e8ddb1668 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.3", + "@tanstack/vue-query": "^5.74.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 24555de8bc..5a3a1c4bd0 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.74.3" + "@tanstack/vue-query": "^5.74.4" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 79bb8d779e..e66ac6be19 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.74.3", - "@tanstack/query-persist-client-core": "^5.74.3", - "@tanstack/query-sync-storage-persister": "^5.74.3", - "@tanstack/vue-query": "^5.74.3", + "@tanstack/query-core": "^5.74.4", + "@tanstack/query-persist-client-core": "^5.74.4", + "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/vue-query": "^5.74.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 1163b9a03d..c0362ff647 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.3", - "@tanstack/vue-query-devtools": "^5.74.3", + "@tanstack/vue-query": "^5.74.4", + "@tanstack/vue-query-devtools": "^5.74.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 4d6cda1a7c..e189271a43 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.74.3", + "version": "5.74.4", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index a0501b6377..cb9fdebbad 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.74.3", + "version": "5.74.4", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 0c97c45599..6eb7882db4 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.74.3", + "version": "5.74.4", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index dcef763a54..9392aa0861 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.74.3", + "version": "5.74.4", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 4c6c5ecfc2..69d154e7a5 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.74.3", + "version": "5.74.4", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index ca05998bfc..5522576ee5 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.74.3", + "version": "5.74.4", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 6db6365faf..97192df266 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.74.3", + "version": "5.74.4", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 3df4e8cefb..dd54f784df 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.74.3", + "version": "5.74.4", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 783c6aa64b..4c4c52281d 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.74.3", + "version": "5.74.4", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index e847cc439c..c7801225cf 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.74.3", + "version": "5.74.4", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index f86eabe967..326efebbee 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.74.3", + "version": "5.74.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 6d7572e399..b60332f24b 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.74.3", + "version": "5.74.4", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 238a8da653..c4e599751c 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.74.3", + "version": "5.74.4", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 79030ff54c..bffecd557b 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.74.3", + "version": "5.74.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 45ba42b01a..d6d1aaa40f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.74.3", + "version": "5.74.4", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index efb05aac49..256d06150d 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.74.3", + "version": "5.74.4", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index ac16d802d9..b1f311a30a 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.74.3", + "version": "5.74.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 80bb595c8d..0b6ada3434 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.74.3", + "version": "5.74.4", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index e91707b04a..e24389b6ae 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.74.3", + "version": "5.74.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From b6faa37ffc6edbf7c2daf817c0e96513172e256d Mon Sep 17 00:00:00 2001 From: Sol Lee <82362278+saul-atomrigs@users.noreply.github.com> Date: Fri, 18 Apr 2025 20:50:49 +0900 Subject: [PATCH 007/432] fix(types): remove 'queryFn' from OmitKeyof in DefaultOptions (#9035) --- packages/vue-query/src/types.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts index b6ab0ee210..a0c9fbaf5d 100644 --- a/packages/vue-query/src/types.ts +++ b/packages/vue-query/src/types.ts @@ -60,10 +60,7 @@ export type DistributiveOmit = T extends any : never export interface DefaultOptions { - queries?: OmitKeyof< - QueryObserverOptions, - 'queryKey' | 'queryFn' - > & { + queries?: OmitKeyof, 'queryKey'> & { /** * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. */ From 59c22d5d6d28d102ea13a14b2355d7142c2ecb4c Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 18 Apr 2025 12:38:52 +0000 Subject: [PATCH 008/432] release: v5.74.5 --- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 2 +- examples/vue/simple/package.json | 4 ++-- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 807d5d7283..cac10b15fb 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.4", + "@tanstack/vue-query": "^5.74.5", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index e7e39d668b..c850a6b8ac 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.4", + "@tanstack/vue-query": "^5.74.5", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 553c6137e5..ea0aff6fc8 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.4", - "@tanstack/vue-query-devtools": "^5.74.4", + "@tanstack/vue-query": "^5.74.5", + "@tanstack/vue-query-devtools": "^5.74.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 8e8ddb1668..2dd86aaf0a 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.4", + "@tanstack/vue-query": "^5.74.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 5a3a1c4bd0..4549fe16b0 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.74.4" + "@tanstack/vue-query": "^5.74.5" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index e66ac6be19..d357033471 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -11,7 +11,7 @@ "@tanstack/query-core": "^5.74.4", "@tanstack/query-persist-client-core": "^5.74.4", "@tanstack/query-sync-storage-persister": "^5.74.4", - "@tanstack/vue-query": "^5.74.4", + "@tanstack/vue-query": "^5.74.5", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index c0362ff647..b7508ee725 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.4", - "@tanstack/vue-query-devtools": "^5.74.4", + "@tanstack/vue-query": "^5.74.5", + "@tanstack/vue-query-devtools": "^5.74.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 0b6ada3434..906c2283d5 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.74.4", + "version": "5.74.5", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index e24389b6ae..d4e941ebe1 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.74.4", + "version": "5.74.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From a9b8391a00c7510acc5803215a017df249929f7f Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Sun, 20 Apr 2025 03:24:34 +0900 Subject: [PATCH 009/432] test(*): remove unnecessary async (#9039) --- .../src/__tests__/inject-is-mutating.test.ts | 2 +- .../src/__tests__/inject-mutation.test.ts | 2 +- .../src/__tests__/inject-query.test.ts | 4 ++-- .../query-devtools/src/__tests__/utils.test.ts | 16 ++++++++-------- .../src/__tests__/utils.ts | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 08b6961660..ccfa8e4640 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -31,7 +31,7 @@ describe('injectIsMutating', () => { vi.useRealTimers() }) - test('should properly return isMutating state', async () => { + test('should properly return isMutating state', () => { TestBed.runInInjectionContext(() => { const isMutating = injectIsMutating() const mutation = injectMutation(() => ({ diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index b61b4e25b0..a15daa54db 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -120,7 +120,7 @@ describe('injectMutation', () => { }) }) - test('reactive options should update mutation', async () => { + test('reactive options should update mutation', () => { const mutationCache = queryClient.getMutationCache() // Signal will be updated before the mutation is called // this test confirms that the mutation uses the updated value diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 849a7ef42e..51d20eface 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -232,7 +232,7 @@ describe('injectQuery', () => { ...options, })) const fromWrappedQuery = TestBed.runInInjectionContext(() => - createWrappedQuery([''], async () => '1'), + createWrappedQuery([''], () => Promise.resolve('1')), ) expectTypeOf(fromWrappedQuery.data()).toEqualTypeOf() @@ -252,7 +252,7 @@ describe('injectQuery', () => { >, ) => injectQuery(() => ({ queryKey: qk, queryFn: fetcher, ...options })) const fromWrappedFuncStyleQuery = TestBed.runInInjectionContext(() => - createWrappedFuncStyleQuery([''], async () => true), + createWrappedFuncStyleQuery([''], () => Promise.resolve(true)), ) expectTypeOf(fromWrappedFuncStyleQuery.data()).toEqualTypeOf< boolean | undefined diff --git a/packages/query-devtools/src/__tests__/utils.test.ts b/packages/query-devtools/src/__tests__/utils.test.ts index e57933cd2d..60fbcf130e 100644 --- a/packages/query-devtools/src/__tests__/utils.test.ts +++ b/packages/query-devtools/src/__tests__/utils.test.ts @@ -4,7 +4,7 @@ import { deleteNestedDataByPath, updateNestedDataByPath } from '../utils' describe('Utils tests', () => { describe('updatedNestedDataByPath', () => { describe('array', () => { - it('should update data correctly', async () => { + it('should update data correctly', () => { const oldData = ['one', 'two', 'three'] const newData = updateNestedDataByPath(oldData, ['1'], 'new') @@ -29,7 +29,7 @@ describe('Utils tests', () => { }) describe('object', () => { - it('should update data correctly', async () => { + it('should update data correctly', () => { const oldData = { title: 'Hello world', id: 1, createdAt: '2021-01-01' } const newData = updateNestedDataByPath( @@ -58,7 +58,7 @@ describe('Utils tests', () => { }) describe('set', () => { - it('should update data correctly', async () => { + it('should update data correctly', () => { const oldData = new Set([123, 321, 'hello', 'world']) const newData = updateNestedDataByPath(oldData, ['2'], 'hi') @@ -85,7 +85,7 @@ describe('Utils tests', () => { }) describe('map', () => { - it('should update data correctly', async () => { + it('should update data correctly', () => { const oldData = new Map([ ['en', 'hello'], ['fr', 'bonjour'], @@ -113,7 +113,7 @@ describe('Utils tests', () => { }) describe('nested data', () => { - it('should update data correctly', async () => { + it('should update data correctly', () => { /* eslint-disable cspell/spellchecker */ const oldData = new Map([ [ @@ -377,7 +377,7 @@ describe('Utils tests', () => { }) describe('deleteNestedDataByPath', () => { - it('should delete item from array correctly', async () => { + it('should delete item from array correctly', () => { const oldData = ['one', 'two', 'three'] const newData = deleteNestedDataByPath(oldData, ['1']) @@ -399,7 +399,7 @@ describe('Utils tests', () => { `) }) - it('should delete item from object correctly', async () => { + it('should delete item from object correctly', () => { const oldData = { title: 'Hello world', id: 1, createdAt: '2021-01-01' } const newData = deleteNestedDataByPath(oldData, ['createdAt']) @@ -472,7 +472,7 @@ describe('Utils tests', () => { }) describe('nested data', () => { - it('should delete nested items correctly', async () => { + it('should delete nested items correctly', () => { /* eslint-disable cspell/spellchecker */ const oldData = new Map([ [ diff --git a/packages/query-persist-client-core/src/__tests__/utils.ts b/packages/query-persist-client-core/src/__tests__/utils.ts index d633cf7268..01287a2422 100644 --- a/packages/query-persist-client-core/src/__tests__/utils.ts +++ b/packages/query-persist-client-core/src/__tests__/utils.ts @@ -17,7 +17,7 @@ export function createMockPersister(): Persister { let storedState: PersistedClient | undefined return { - async persistClient(persistClient: PersistedClient) { + persistClient(persistClient: PersistedClient) { storedState = persistClient }, async restoreClient() { From b63a1d08f9fa9c59b8d3440d4664f4e66ddd9d35 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Sun, 20 Apr 2025 03:28:32 +0900 Subject: [PATCH 010/432] chore(query-async-storage-persister): remove unnecessary export keyword (#9040) --- packages/query-async-storage-persister/src/asyncThrottle.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-async-storage-persister/src/asyncThrottle.ts b/packages/query-async-storage-persister/src/asyncThrottle.ts index d69adfc5f6..f37737c8b5 100644 --- a/packages/query-async-storage-persister/src/asyncThrottle.ts +++ b/packages/query-async-storage-persister/src/asyncThrottle.ts @@ -1,6 +1,6 @@ import { noop } from './utils' -export interface AsyncThrottleOptions { +interface AsyncThrottleOptions { interval?: number onError?: (error: unknown) => void } From 3a2e2d915d3c6cee050b1952049089ecc679edac Mon Sep 17 00:00:00 2001 From: Damian Osipiuk Date: Tue, 22 Apr 2025 19:03:56 +0200 Subject: [PATCH 011/432] fix(vue-query): unify shallow flag behaviour (#9050) --- packages/vue-query/src/useBaseQuery.ts | 17 +++++++++-------- packages/vue-query/src/useMutation.ts | 14 +++++++------- packages/vue-query/src/useQueries.ts | 8 +++----- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/packages/vue-query/src/useBaseQuery.ts b/packages/vue-query/src/useBaseQuery.ts index 245a073e8b..7126739f98 100644 --- a/packages/vue-query/src/useBaseQuery.ts +++ b/packages/vue-query/src/useBaseQuery.ts @@ -2,6 +2,7 @@ import { computed, getCurrentScope, onScopeDispose, + reactive, readonly, shallowReactive, shallowReadonly, @@ -106,7 +107,10 @@ export function useBaseQuery< }) const observer = new Observer(client, defaultedOptions.value) - const state = shallowReactive(observer.getCurrentResult()) + // @ts-expect-error + const state = defaultedOptions.value.shallow + ? shallowReactive(observer.getCurrentResult()) + : reactive(observer.getCurrentResult()) let unsubscribe = () => { // noop @@ -202,13 +206,10 @@ export function useBaseQuery< }, ) - const readonlyState = - process.env.NODE_ENV === 'production' - ? state - : // @ts-expect-error - defaultedOptions.value.shallow - ? shallowReadonly(state) - : readonly(state) + // @ts-expect-error + const readonlyState = defaultedOptions.value.shallow + ? shallowReadonly(state) + : readonly(state) const object: any = toRefs(readonlyState) for (const key in state) { diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts index e68983106a..c8f490b3f9 100644 --- a/packages/vue-query/src/useMutation.ts +++ b/packages/vue-query/src/useMutation.ts @@ -2,6 +2,7 @@ import { computed, getCurrentScope, onScopeDispose, + reactive, readonly, shallowReactive, shallowReadonly, @@ -87,7 +88,9 @@ export function useMutation< return client.defaultMutationOptions(cloneDeepUnref(mutationOptions)) }) const observer = new MutationObserver(client, options.value) - const state = shallowReactive(observer.getCurrentResult()) + const state = options.value.shallow + ? shallowReactive(observer.getCurrentResult()) + : reactive(observer.getCurrentResult()) const unsubscribe = observer.subscribe((result) => { updateState(state, result) @@ -110,12 +113,9 @@ export function useMutation< unsubscribe() }) - const readonlyState = - process.env.NODE_ENV === 'production' - ? state - : options.value.shallow - ? shallowReadonly(state) - : readonly(state) + const readonlyState = options.value.shallow + ? shallowReadonly(state) + : readonly(state) const resultRefs = toRefs(readonlyState) as ToRefs< Readonly> diff --git a/packages/vue-query/src/useQueries.ts b/packages/vue-query/src/useQueries.ts index ccb2cdefdc..04edb91e4a 100644 --- a/packages/vue-query/src/useQueries.ts +++ b/packages/vue-query/src/useQueries.ts @@ -344,9 +344,7 @@ export function useQueries< unsubscribe() }) - return process.env.NODE_ENV === 'production' - ? state - : options.shallow - ? shallowReadonly(state) - : (readonly(state) as Readonly>) + return options.shallow + ? shallowReadonly(state) + : (readonly(state) as Readonly>) } From 12cced37b4b23b3aa856bde22193ee75c7da9c1a Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 22 Apr 2025 17:05:48 +0000 Subject: [PATCH 012/432] release: v5.74.6 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 2 +- examples/react/auto-refetching/package.json | 2 +- examples/react/basic-graphql-request/package.json | 2 +- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 2 +- examples/react/default-query-function/package.json | 2 +- examples/react/devtools-panel/package.json | 2 +- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 2 +- examples/react/load-more-infinite-scroll/package.json | 2 +- examples/react/nextjs-app-prefetching/package.json | 2 +- examples/react/nextjs-suspense-streaming/package.json | 2 +- examples/react/nextjs/package.json | 2 +- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 2 +- examples/react/optimistic-updates-ui/package.json | 2 +- examples/react/pagination/package.json | 2 +- examples/react/playground/package.json | 2 +- examples/react/prefetching/package.json | 2 +- examples/react/react-native/package.json | 2 +- examples/react/react-router/package.json | 2 +- examples/react/rick-morty/package.json | 2 +- examples/react/shadow-dom/package.json | 2 +- examples/react/simple/package.json | 2 +- examples/react/star-wars/package.json | 2 +- examples/react/suspense/package.json | 2 +- examples/solid/astro/package.json | 2 +- examples/solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- examples/solid/default-query-function/package.json | 2 +- examples/solid/simple/package.json | 2 +- examples/solid/solid-start-streaming/package.json | 2 +- examples/svelte/auto-refetching/package.json | 2 +- examples/svelte/basic/package.json | 6 +++--- examples/svelte/load-more-infinite-scroll/package.json | 2 +- examples/svelte/optimistic-updates/package.json | 2 +- examples/svelte/playground/package.json | 2 +- examples/svelte/simple/package.json | 2 +- examples/svelte/ssr/package.json | 2 +- examples/svelte/star-wars/package.json | 2 +- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 6 +++--- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 72 files changed, 86 insertions(+), 86 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 74f052cfcb..bc99d91b86 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 989bbb5c0d..1f3e6ef221 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/query-sync-storage-persister": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "^0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 3b86dc0a63..f7a4649bd8 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 508bf82de8..08f8ee29c7 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.74.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-devtools-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 2ce0c81101..2fa8a98850 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 4258636ddd..64e1a59e7b 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index e6e567d27f..7c2de01168 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 4602bf1d1d..9cb1edd4dc 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index abaface857..b7f251b0b8 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index f683453ae5..4c1fc68e65 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index c1771c9b2a..90c5da9376 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.4", + "@tanstack/angular-query-experimental": "^5.74.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 405b91d284..b42437f903 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -10,7 +10,7 @@ "dependencies": { "@algolia/client-search": "5.2.1", "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 106703d3e5..08898c8eb0 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 7f2fd8eb66..b31b8eeaf6 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index ea60f3f7b0..b970816394 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/query-sync-storage-persister": "^5.74.6", "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", - "@tanstack/react-query-persist-client": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query-persist-client": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 174d2d7ac9..d67925a2bd 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 37009a1159..dd0f8826fe 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 39dd5096be..b5038f0e64 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 22b02baab7..1f95e725a3 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/query-sync-storage-persister": "^5.74.6", "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", - "@tanstack/react-query-persist-client": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query-persist-client": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b880fb4b69..1b0f018ffe 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 9bb5beedba..f15f709cca 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index ff6eb44b89..be7d82aa66 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index cbe59f7bd0..3b295b3b33 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "@tanstack/react-query-next-experimental": "^5.74.4", "next": "^15.1.2", "react": "^18.2.0", diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 24b6daa18a..d3c615417f 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 34eafa9675..b940103d5b 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/query-sync-storage-persister": "^5.74.6", "@tanstack/react-location": "^3.7.4", "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", - "@tanstack/react-query-persist-client": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query-persist-client": "^5.74.6", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index cc9dece18b..2e175a2907 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 06e8088600..6e837f465a 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index babd2e48b0..ad9b58839b 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 11aad6df28..a99b3a4343 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 482df28259..e6a8afb7df 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 84e08e1887..a4cd7cf074 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -15,7 +15,7 @@ "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index feb324e778..a714ad941e 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 22dce73a15..4380d2b63e 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -13,7 +13,7 @@ "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index ac5298233b..53d8f11f9e 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index cfc921359d..f1ccdf9d43 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 242ee1cad7..6661083e29 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -13,7 +13,7 @@ "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index ce1455a56c..f3614ef85a 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.4", + "@tanstack/react-query-devtools": "^5.74.6", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a81e1af0f3..dfa76e145f 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -16,7 +16,7 @@ "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.6", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 5bb95b71fa..9beee43d27 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index ddb4555513..389f4d7223 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.6", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index f9dd8dea11..6ee4500685 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.6", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 8489d213a2..9d6686c706 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.6", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 3d4b04c0de..9493ad0e57 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -13,7 +13,7 @@ "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.4", + "@tanstack/solid-query-devtools": "^5.74.6", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 3f11a57d15..1e4759841f 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 31d9b5e831..7a82bf0c04 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.4", + "@tanstack/query-sync-storage-persister": "^5.74.6", "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4", - "@tanstack/svelte-query-persist-client": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6", + "@tanstack/svelte-query-persist-client": "^5.74.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index cdb798d010..b6fcc264da 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index d266bd14f1..fe137246f4 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index bdc91638a3..720ce1b930 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 4c4a35c923..aff3354abb 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index ca0da904e5..8f27cea255 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 1d595e7f47..3ef620cac4 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.4" + "@tanstack/svelte-query-devtools": "^5.74.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index cac10b15fb..75d35b229c 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.5", + "@tanstack/vue-query": "^5.74.6", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index c850a6b8ac..0be678cd5e 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.5", + "@tanstack/vue-query": "^5.74.6", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index ea0aff6fc8..77bece5f99 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.5", - "@tanstack/vue-query-devtools": "^5.74.5", + "@tanstack/vue-query": "^5.74.6", + "@tanstack/vue-query-devtools": "^5.74.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 2dd86aaf0a..705359ab93 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.5", + "@tanstack/vue-query": "^5.74.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 4549fe16b0..44b504d935 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.74.5" + "@tanstack/vue-query": "^5.74.6" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index d357033471..599bc3fa07 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -9,9 +9,9 @@ }, "dependencies": { "@tanstack/query-core": "^5.74.4", - "@tanstack/query-persist-client-core": "^5.74.4", - "@tanstack/query-sync-storage-persister": "^5.74.4", - "@tanstack/vue-query": "^5.74.5", + "@tanstack/query-persist-client-core": "^5.74.6", + "@tanstack/query-sync-storage-persister": "^5.74.6", + "@tanstack/vue-query": "^5.74.6", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index b7508ee725..69903688bf 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.5", - "@tanstack/vue-query-devtools": "^5.74.5", + "@tanstack/vue-query": "^5.74.6", + "@tanstack/vue-query-devtools": "^5.74.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index e189271a43..730ef82945 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.74.4", + "version": "5.74.6", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index cb9fdebbad..b754534229 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.74.4", + "version": "5.74.6", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 6eb7882db4..cf6acca14b 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.74.4", + "version": "5.74.6", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 0f0afae6fa..0559f04377 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.73.3", + "version": "5.74.6", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 5522576ee5..28e918eea3 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.74.4", + "version": "5.74.6", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 97192df266..2c167d946c 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.74.4", + "version": "5.74.6", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index dd54f784df..8fdbb5fd33 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.74.4", + "version": "5.74.6", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index c7801225cf..f7ad2f7c23 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.74.4", + "version": "5.74.6", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index b60332f24b..25bb78e116 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.74.4", + "version": "5.74.6", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index c4e599751c..9ef1a37e6b 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.74.4", + "version": "5.74.6", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index d6d1aaa40f..f281623d4f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.74.4", + "version": "5.74.6", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 256d06150d..8d774a4f84 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.74.4", + "version": "5.74.6", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 906c2283d5..3e77de3ef0 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.74.5", + "version": "5.74.6", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index d4e941ebe1..e657dc9920 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.74.5", + "version": "5.74.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 9f93f12de1d8d48e560c180e4621178a35d7ec7a Mon Sep 17 00:00:00 2001 From: Tyler <26290074+tylersayshi@users.noreply.github.com> Date: Wed, 23 Apr 2025 00:54:51 -0700 Subject: [PATCH 013/432] chore: move from paths to customCondition (#9042) --- package.json | 1 - .../package.json | 1 + .../root.vite.config.js | 1 - .../vite.config.ts | 13 +++-- .../angular-query-experimental/package.json | 1 + .../root.vite.config.js | 1 - .../angular-query-experimental/vite.config.ts | 13 +++-- .../root.vite.config.js | 1 - .../vite.config.ts | 13 +++-- packages/eslint-plugin-query/package.json | 1 + .../eslint-plugin-query/root.vite.config.js | 1 - packages/eslint-plugin-query/vite.config.ts | 13 +++-- .../package.json | 1 + .../root.vite.config.js | 1 - .../vite.config.ts | 13 +++-- .../package.json | 1 + packages/query-codemods/root.vite.config.js | 1 - packages/query-codemods/vite.config.ts | 13 +++-- packages/query-core/package.json | 1 + packages/query-core/root.vite.config.js | 1 - packages/query-core/vite.config.ts | 13 +++-- packages/query-devtools/package.json | 1 + packages/query-devtools/root.vite.config.js | 1 - packages/query-devtools/vite.config.ts | 14 +++-- .../query-persist-client-core/package.json | 1 + .../root.vite.config.js | 1 - .../query-persist-client-core/vite.config.ts | 13 +++-- .../query-sync-storage-persister/package.json | 1 + .../root.vite.config.js | 1 - .../vite.config.ts | 13 +++-- packages/react-query-devtools/package.json | 1 + .../react-query-devtools/root.vite.config.js | 1 - packages/react-query-devtools/vite.config.ts | 14 +++-- .../package.json | 1 + .../root.vite.config.js | 1 - .../vite.config.ts | 15 ++++-- .../react-query-persist-client/package.json | 1 + .../root.vite.config.js | 1 - .../react-query-persist-client/vite.config.ts | 14 +++-- packages/react-query/package.json | 1 + packages/react-query/root.vite.config.js | 1 - packages/react-query/tsconfig.json | 6 +-- packages/react-query/tsconfig.legacy.json | 5 +- packages/react-query/vite.config.ts | 14 +++-- packages/solid-query-devtools/package.json | 1 + .../solid-query-devtools/root.vite.config.js | 1 - packages/solid-query-devtools/vite.config.ts | 15 ++++-- .../solid-query-persist-client/package.json | 1 + .../root.vite.config.js | 1 - .../solid-query-persist-client/vite.config.ts | 14 +++-- packages/solid-query/package.json | 1 + packages/solid-query/root.vite.config.js | 1 - packages/solid-query/vite.config.ts | 14 +++-- packages/svelte-query-devtools/package.json | 1 + .../svelte-query-devtools/root.vite.config.js | 1 - packages/svelte-query-devtools/vite.config.ts | 15 ++++-- .../svelte-query-persist-client/package.json | 1 + .../root.vite.config.js | 1 - .../vite.config.ts | 18 ++++--- packages/svelte-query/package.json | 1 + packages/svelte-query/root.vite.config.js | 1 - packages/svelte-query/vite.config.ts | 18 ++++--- packages/vue-query-devtools/package.json | 2 + .../vue-query-devtools/root.vite.config.js | 1 - packages/vue-query-devtools/vite.config.ts | 15 ++++-- packages/vue-query/package.json | 1 + packages/vue-query/root.vite.config.js | 1 - packages/vue-query/vite.config.ts | 14 +++-- pnpm-lock.yaml | 7 +-- tsconfig.json | 54 +------------------ 70 files changed, 239 insertions(+), 189 deletions(-) delete mode 120000 packages/angular-query-devtools-experimental/root.vite.config.js delete mode 120000 packages/angular-query-experimental/root.vite.config.js delete mode 120000 packages/angular-query-persist-client/root.vite.config.js delete mode 120000 packages/eslint-plugin-query/root.vite.config.js delete mode 120000 packages/query-async-storage-persister/root.vite.config.js delete mode 120000 packages/query-codemods/root.vite.config.js delete mode 120000 packages/query-core/root.vite.config.js delete mode 120000 packages/query-devtools/root.vite.config.js delete mode 120000 packages/query-persist-client-core/root.vite.config.js delete mode 120000 packages/query-sync-storage-persister/root.vite.config.js delete mode 120000 packages/react-query-devtools/root.vite.config.js delete mode 120000 packages/react-query-next-experimental/root.vite.config.js delete mode 120000 packages/react-query-persist-client/root.vite.config.js delete mode 120000 packages/react-query/root.vite.config.js delete mode 120000 packages/solid-query-devtools/root.vite.config.js delete mode 120000 packages/solid-query-persist-client/root.vite.config.js delete mode 120000 packages/solid-query/root.vite.config.js delete mode 120000 packages/svelte-query-devtools/root.vite.config.js delete mode 120000 packages/svelte-query-persist-client/root.vite.config.js delete mode 120000 packages/svelte-query/root.vite.config.js delete mode 120000 packages/vue-query-devtools/root.vite.config.js delete mode 120000 packages/vue-query/root.vite.config.js diff --git a/package.json b/package.json index 786cf3c937..54e95c533b 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,6 @@ "typescript56": "npm:typescript@5.6", "typescript57": "npm:typescript@5.7", "vite": "^6.2.4", - "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.1.1" }, "pnpm": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 730ef82945..76587b1896 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -36,6 +36,7 @@ "module": "build/index.mjs", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "types": "./build/index.d.ts", "default": "./build/index.mjs" }, diff --git a/packages/angular-query-devtools-experimental/root.vite.config.js b/packages/angular-query-devtools-experimental/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/angular-query-devtools-experimental/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/angular-query-devtools-experimental/vite.config.ts b/packages/angular-query-devtools-experimental/vite.config.ts index e822fd87c6..25fdba1056 100644 --- a/packages/angular-query-devtools-experimental/vite.config.ts +++ b/packages/angular-query-devtools-experimental/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index b754534229..b1a73b3976 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -51,6 +51,7 @@ "module": "build/index.mjs", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "types": "./build/index.d.ts", "default": "./build/index.mjs" }, diff --git a/packages/angular-query-experimental/root.vite.config.js b/packages/angular-query-experimental/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/angular-query-experimental/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts index e822fd87c6..25fdba1056 100644 --- a/packages/angular-query-experimental/vite.config.ts +++ b/packages/angular-query-experimental/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/angular-query-persist-client/root.vite.config.js b/packages/angular-query-persist-client/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/angular-query-persist-client/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/angular-query-persist-client/vite.config.ts b/packages/angular-query-persist-client/vite.config.ts index e822fd87c6..25fdba1056 100644 --- a/packages/angular-query-persist-client/vite.config.ts +++ b/packages/angular-query-persist-client/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 62e6707ed8..53a3918fc4 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -40,6 +40,7 @@ "react-native": "src/index.ts", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/eslint-plugin-query/root.vite.config.js b/packages/eslint-plugin-query/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/eslint-plugin-query/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/eslint-plugin-query/vite.config.ts b/packages/eslint-plugin-query/vite.config.ts index 085e7d77ae..9b0267c73e 100644 --- a/packages/eslint-plugin-query/vite.config.ts +++ b/packages/eslint-plugin-query/vite.config.ts @@ -1,14 +1,19 @@ import { defineConfig, mergeConfig } from 'vitest/config' import { tanstackViteConfig } from '@tanstack/config/vite' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' const config = defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index cf6acca14b..a50662bc57 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -40,6 +40,7 @@ "react-native": "src/index.ts", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/query-async-storage-persister/root.vite.config.js b/packages/query-async-storage-persister/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/query-async-storage-persister/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/query-async-storage-persister/vite.config.ts b/packages/query-async-storage-persister/vite.config.ts index 119946da20..730e2b979c 100644 --- a/packages/query-async-storage-persister/vite.config.ts +++ b/packages/query-async-storage-persister/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 9392aa0861..fa8dd3fb5a 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -37,6 +37,7 @@ "module": "build/legacy/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/query-codemods/root.vite.config.js b/packages/query-codemods/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/query-codemods/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/query-codemods/vite.config.ts b/packages/query-codemods/vite.config.ts index 09fc57319c..366ec3322a 100644 --- a/packages/query-codemods/vite.config.ts +++ b/packages/query-codemods/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 69d154e7a5..8e8c312671 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -40,6 +40,7 @@ "react-native": "src/index.ts", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/query-core/root.vite.config.js b/packages/query-core/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/query-core/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/query-core/vite.config.ts b/packages/query-core/vite.config.ts index a87b97763c..e5fe50163d 100644 --- a/packages/query-core/vite.config.ts +++ b/packages/query-core/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 0559f04377..9d9ba4341d 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -40,6 +40,7 @@ "types": "./build/index.d.ts", "browser": {}, "exports": { + "@tanstack/custom-condition": "./src/index.ts", "solid": { "development": "./build/index.js", "import": "./build/index.js" diff --git a/packages/query-devtools/root.vite.config.js b/packages/query-devtools/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/query-devtools/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/query-devtools/vite.config.ts b/packages/query-devtools/vite.config.ts index d0a7ac4d42..d3bac42e26 100644 --- a/packages/query-devtools/vite.config.ts +++ b/packages/query-devtools/vite.config.ts @@ -1,14 +1,20 @@ import solid from 'vite-plugin-solid' import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [solid()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 28e918eea3..b713eebf47 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -40,6 +40,7 @@ "react-native": "src/index.ts", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/query-persist-client-core/root.vite.config.js b/packages/query-persist-client-core/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/query-persist-client-core/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/query-persist-client-core/vite.config.ts b/packages/query-persist-client-core/vite.config.ts index 119946da20..730e2b979c 100644 --- a/packages/query-persist-client-core/vite.config.ts +++ b/packages/query-persist-client-core/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 2c167d946c..9ac2c57a8c 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -40,6 +40,7 @@ "react-native": "src/index.ts", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/query-sync-storage-persister/root.vite.config.js b/packages/query-sync-storage-persister/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/query-sync-storage-persister/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/query-sync-storage-persister/vite.config.ts b/packages/query-sync-storage-persister/vite.config.ts index 119946da20..730e2b979c 100644 --- a/packages/query-sync-storage-persister/vite.config.ts +++ b/packages/query-sync-storage-persister/vite.config.ts @@ -1,13 +1,18 @@ import { defineConfig } from 'vitest/config' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [tsconfigPaths({ ignoreConfigErrors: true })], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 8fdbb5fd33..5556461c8c 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -40,6 +40,7 @@ "module": "build/legacy/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/react-query-devtools/root.vite.config.js b/packages/react-query-devtools/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/react-query-devtools/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/react-query-devtools/vite.config.ts b/packages/react-query-devtools/vite.config.ts index 848ae5e882..4ecd1537bd 100644 --- a/packages/react-query-devtools/vite.config.ts +++ b/packages/react-query-devtools/vite.config.ts @@ -1,14 +1,20 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [react()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 4c4c52281d..028bb75afc 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -37,6 +37,7 @@ "module": "build/legacy/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/react-query-next-experimental/root.vite.config.js b/packages/react-query-next-experimental/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/react-query-next-experimental/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/react-query-next-experimental/vite.config.ts b/packages/react-query-next-experimental/vite.config.ts index 4a87bc676d..816f7feb0f 100644 --- a/packages/react-query-next-experimental/vite.config.ts +++ b/packages/react-query-next-experimental/vite.config.ts @@ -1,12 +1,17 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' -import tsconfigPaths from 'vite-tsconfig-paths' - -import { dynamicAliases } from './root.vite.config' export default defineConfig({ - plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [react()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, }) diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index f7ad2f7c23..eec285ab19 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -40,6 +40,7 @@ "react-native": "src/index.ts", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/react-query-persist-client/root.vite.config.js b/packages/react-query-persist-client/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/react-query-persist-client/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/react-query-persist-client/vite.config.ts b/packages/react-query-persist-client/vite.config.ts index 848ae5e882..4ecd1537bd 100644 --- a/packages/react-query-persist-client/vite.config.ts +++ b/packages/react-query-persist-client/vite.config.ts @@ -1,14 +1,20 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [react()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 326efebbee..34b4c35525 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -42,6 +42,7 @@ "react-native": "src/index.ts", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/react-query/root.vite.config.js b/packages/react-query/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/react-query/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/react-query/tsconfig.json b/packages/react-query/tsconfig.json index e279e44c86..d8abaac196 100644 --- a/packages/react-query/tsconfig.json +++ b/packages/react-query/tsconfig.json @@ -6,9 +6,5 @@ "baseUrl": ".", "jsx": "react-jsx" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], - "references": [ - { "path": "../query-core" }, - { "path": "../query-persist-client-core" } - ] + "include": ["src", "*.config.js", "*.config.ts", "package.json"] } diff --git a/packages/react-query/tsconfig.legacy.json b/packages/react-query/tsconfig.legacy.json index 2ba5ed78bd..9c49fb8567 100644 --- a/packages/react-query/tsconfig.legacy.json +++ b/packages/react-query/tsconfig.legacy.json @@ -6,8 +6,5 @@ }, "include": ["src"], "exclude": ["src/__tests__"], - "references": [ - { "path": "../query-core" }, - { "path": "../query-persist-client-core" } - ] + "references": [{ "path": "../query-persist-client-core" }] } diff --git a/packages/react-query/vite.config.ts b/packages/react-query/vite.config.ts index 4c4570617a..01ab3b00df 100644 --- a/packages/react-query/vite.config.ts +++ b/packages/react-query/vite.config.ts @@ -1,14 +1,20 @@ import { defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [react(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [react()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 25bb78e116..6b3e82c252 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -37,6 +37,7 @@ "types": "./build/index.d.ts", "browser": {}, "exports": { + "@tanstack/custom-condition": "./src/index.ts", "solid": { "development": "./build/dev.jsx", "import": "./build/index.jsx" diff --git a/packages/solid-query-devtools/root.vite.config.js b/packages/solid-query-devtools/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/solid-query-devtools/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/solid-query-devtools/vite.config.ts b/packages/solid-query-devtools/vite.config.ts index 99a13ed566..5d3190c10f 100644 --- a/packages/solid-query-devtools/vite.config.ts +++ b/packages/solid-query-devtools/vite.config.ts @@ -1,12 +1,17 @@ import { defineConfig } from 'vite' import solid from 'vite-plugin-solid' -import tsconfigPaths from 'vite-tsconfig-paths' - -import { dynamicAliases } from './root.vite.config' export default defineConfig({ - plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [solid()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, }) diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 9ef1a37e6b..eee8187b74 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -37,6 +37,7 @@ "main": "./build/index.cjs", "module": "./build/index.js", "exports": { + "@tanstack/custom-condition": "./src/index.ts", "development": { "import": { "types": "./build/index.d.ts", diff --git a/packages/solid-query-persist-client/root.vite.config.js b/packages/solid-query-persist-client/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/solid-query-persist-client/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/solid-query-persist-client/vite.config.ts b/packages/solid-query-persist-client/vite.config.ts index 5f86decaa7..1eea58e746 100644 --- a/packages/solid-query-persist-client/vite.config.ts +++ b/packages/solid-query-persist-client/vite.config.ts @@ -1,14 +1,20 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [solid()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index bffecd557b..c8b3acd820 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -40,6 +40,7 @@ "types": "./build/index.d.ts", "browser": {}, "exports": { + "@tanstack/custom-condition": "./src/index.ts", "development": { "import": { "types": "./build/index.d.ts", diff --git a/packages/solid-query/root.vite.config.js b/packages/solid-query/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/solid-query/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/solid-query/vite.config.ts b/packages/solid-query/vite.config.ts index 5f86decaa7..1eea58e746 100644 --- a/packages/solid-query/vite.config.ts +++ b/packages/solid-query/vite.config.ts @@ -1,14 +1,20 @@ import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [solid(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [solid()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index f281623d4f..e3fc929cf5 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -28,6 +28,7 @@ "svelte": "./dist/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "types": "./dist/index.d.ts", "svelte": "./dist/index.js", "import": "./dist/index.js" diff --git a/packages/svelte-query-devtools/root.vite.config.js b/packages/svelte-query-devtools/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/svelte-query-devtools/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/svelte-query-devtools/vite.config.ts b/packages/svelte-query-devtools/vite.config.ts index 27b0dacb2b..01ebc554bd 100644 --- a/packages/svelte-query-devtools/vite.config.ts +++ b/packages/svelte-query-devtools/vite.config.ts @@ -1,12 +1,17 @@ import { svelte } from '@sveltejs/vite-plugin-svelte' import { defineConfig } from 'vite' -import tsconfigPaths from 'vite-tsconfig-paths' - -import { dynamicAliases } from './root.vite.config' export default defineConfig({ - plugins: [svelte(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [svelte()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, }) diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 8d774a4f84..1d7148ce54 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -30,6 +30,7 @@ "svelte": "./dist/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "types": "./dist/index.d.ts", "svelte": "./dist/index.js", "import": "./dist/index.js" diff --git a/packages/svelte-query-persist-client/root.vite.config.js b/packages/svelte-query-persist-client/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/svelte-query-persist-client/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/svelte-query-persist-client/vite.config.ts b/packages/svelte-query-persist-client/vite.config.ts index 54e9cf7efe..1249fcc5a8 100644 --- a/packages/svelte-query-persist-client/vite.config.ts +++ b/packages/svelte-query-persist-client/vite.config.ts @@ -1,19 +1,21 @@ import { svelte } from '@sveltejs/vite-plugin-svelte' import { defineConfig } from 'vitest/config' import { svelteTesting } from '@testing-library/svelte/vite' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [ - svelte(), - svelteTesting(), - tsconfigPaths({ ignoreConfigErrors: true }), - ], + plugins: [svelte(), svelteTesting()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index b1f311a30a..e0b1ea07dd 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -30,6 +30,7 @@ "svelte": "./dist/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "types": "./dist/index.d.ts", "svelte": "./dist/index.js", "import": "./dist/index.js" diff --git a/packages/svelte-query/root.vite.config.js b/packages/svelte-query/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/svelte-query/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/svelte-query/vite.config.ts b/packages/svelte-query/vite.config.ts index 54e9cf7efe..1249fcc5a8 100644 --- a/packages/svelte-query/vite.config.ts +++ b/packages/svelte-query/vite.config.ts @@ -1,19 +1,21 @@ import { svelte } from '@sveltejs/vite-plugin-svelte' import { defineConfig } from 'vitest/config' import { svelteTesting } from '@testing-library/svelte/vite' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [ - svelte(), - svelteTesting(), - tsconfigPaths({ ignoreConfigErrors: true }), - ], + plugins: [svelte(), svelteTesting()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 3e77de3ef0..c5e6a5a0dd 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -28,10 +28,12 @@ "main": "dist/esm/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" }, "./production": { + "@tanstack/custom-condition": "./src/production.ts", "types": "./dist/esm/production.d.ts", "default": "./dist/esm/production.js" }, diff --git a/packages/vue-query-devtools/root.vite.config.js b/packages/vue-query-devtools/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/vue-query-devtools/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/vue-query-devtools/vite.config.ts b/packages/vue-query-devtools/vite.config.ts index f36254ba32..6b72043011 100644 --- a/packages/vue-query-devtools/vite.config.ts +++ b/packages/vue-query-devtools/vite.config.ts @@ -1,14 +1,19 @@ import { defineConfig, mergeConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { tanstackViteConfig } from '@tanstack/config/vite' -import tsconfigPaths from 'vite-tsconfig-paths' - -import { dynamicAliases } from './root.vite.config' const config = defineConfig({ - plugins: [vue(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [vue()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, }) diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index e657dc9920..1bd7dbda82 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -42,6 +42,7 @@ "module": "build/legacy/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./build/modern/index.d.ts", "default": "./build/modern/index.js" diff --git a/packages/vue-query/root.vite.config.js b/packages/vue-query/root.vite.config.js deleted file mode 120000 index 1faec0e874..0000000000 --- a/packages/vue-query/root.vite.config.js +++ /dev/null @@ -1 +0,0 @@ -../../scripts/getViteAliases.js \ No newline at end of file diff --git a/packages/vue-query/vite.config.ts b/packages/vue-query/vite.config.ts index 620915c6df..587de0a489 100644 --- a/packages/vue-query/vite.config.ts +++ b/packages/vue-query/vite.config.ts @@ -1,14 +1,20 @@ import { defineConfig } from 'vitest/config' import vue from '@vitejs/plugin-vue' -import tsconfigPaths from 'vite-tsconfig-paths' -import { dynamicAliases } from './root.vite.config' import packageJson from './package.json' export default defineConfig({ - plugins: [vue(), tsconfigPaths({ ignoreConfigErrors: true })], + plugins: [vue()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { - alias: dynamicAliases, + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, }, test: { name: packageJson.name, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c20836a7a..47373ac931 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -139,9 +139,6 @@ importers: vite: specifier: ^6.2.4 version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vite-tsconfig-paths: - specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) vitest: specifier: ^3.1.1 version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) @@ -1227,7 +1224,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(e9c097e00fee89f3cf54c317dda4adb5) + version: 6.4.1(44i6xs33lapt7cl2pkawmwjtru) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -19763,7 +19760,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(e9c097e00fee89f3cf54c317dda4adb5)': + '@react-navigation/stack@6.4.1(44i6xs33lapt7cl2pkawmwjtru)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) diff --git a/tsconfig.json b/tsconfig.json index 250156448e..7dc5ecfedd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "allowUnusedLabels": false, "checkJs": true, "composite": true, + "customConditions": ["@tanstack/custom-condition"], "declaration": true, "declarationMap": true, "emitDeclarationOnly": true, @@ -25,58 +26,7 @@ "resolveJsonModule": true, "skipLibCheck": true, "strict": true, - "target": "ES2020", - "paths": { - "@tanstack/angular-query-devtools-experimental": [ - "../../packages/angular-query-devtools-experimental/src" - ], - "@tanstack/angular-query-experimental": [ - "../../packages/angular-query-experimental/src" - ], - "@tanstack/eslint-plugin-query": [ - "../../packages/eslint-plugin-query/src" - ], - "@tanstack/query-async-storage-persister": [ - "../../packages/query-async-storage-persister/src" - ], - "@tanstack/query-broadcast-client-experimental": [ - "../../packages/query-broadcast-client-experimental/src" - ], - "@tanstack/query-core": ["../../packages/query-core/src"], - "@tanstack/query-devtools": ["../../packages/query-devtools/src"], - "@tanstack/query-persist-client-core": [ - "../../packages/query-persist-client-core/src" - ], - "@tanstack/query-sync-storage-persister": [ - "../../packages/query-sync-storage-persister/src" - ], - "@tanstack/react-query": ["../../packages/react-query/src"], - "@tanstack/react-query-devtools": [ - "../../packages/react-query-devtools/src" - ], - "@tanstack/react-query-next-experimental": [ - "../../packages/react-query-next-experimental/src" - ], - "@tanstack/react-query-persist-client": [ - "../../packages/react-query-persist-client/src" - ], - "@tanstack/solid-query": ["../../packages/solid-query/src"], - "@tanstack/solid-query-devtools": [ - "../../packages/solid-query-devtools/src" - ], - "@tanstack/solid-query-persist-client": [ - "../../packages/solid-query-persist-client/src" - ], - "@tanstack/svelte-query": ["../../packages/svelte-query/src"], - "@tanstack/svelte-query-devtools": [ - "../../packages/svelte-query-devtools/src" - ], - "@tanstack/svelte-query-persist-client": [ - "../../packages/svelte-query-persist-client/src" - ], - "@tanstack/vue-query": ["../../packages/vue-query/src"], - "@tanstack/vue-query-devtools": ["../../packages/vue-query-devtools/src"] - } + "target": "ES2020" }, "include": ["eslint.config.js", "prettier.config.js"] } From 1b169ae2404785c6cf9739fc90fdd160c47edf9a Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Wed, 23 Apr 2025 16:55:36 +0900 Subject: [PATCH 014/432] test(query-core): use fake timers for queryObserver.test.tsx (#9004) * test(query-core): use fake timers for queryObserver.test.tsx * chore: update * chore: migrate * chore: update * Removes unused testing library dependency Deletes `@testing-library/dom` from devDependencies in package.json and pnpm-lock.yaml to clean up unused dependencies and streamline the project's dependency tree. * chore: update --------- Co-authored-by: Dominik Dorfmeister --- packages/query-core/package.json | 1 - .../src/__tests__/queryObserver.test.tsx | 94 ++++++++++--------- pnpm-lock.yaml | 69 +++++++++++++- 3 files changed, 114 insertions(+), 50 deletions(-) diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 8e8c312671..836de5e7e6 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -59,7 +59,6 @@ "!src/__tests__" ], "devDependencies": { - "@testing-library/dom": "^10.4.0", "npm-run-all2": "^5.0.0" } } diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 6b44576de5..a977a4f735 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -7,7 +7,6 @@ import { test, vi, } from 'vitest' -import { waitFor } from '@testing-library/dom' import { QueryObserver, focusManager } from '..' import { createQueryClient, queryKey, sleep } from './utils' import type { QueryClient, QueryObserverResult } from '..' @@ -16,6 +15,7 @@ describe('queryObserver', () => { let queryClient: QueryClient beforeEach(() => { + vi.useFakeTimers() queryClient = createQueryClient({ defaultOptions: { queries: { @@ -28,6 +28,7 @@ describe('queryObserver', () => { afterEach(() => { queryClient.clear() + vi.useRealTimers() }) test('should trigger a fetch when subscribed', async () => { @@ -37,7 +38,6 @@ describe('queryObserver', () => { .mockReturnValue('data') const observer = new QueryObserver(queryClient, { queryKey: key, queryFn }) const unsubscribe = observer.subscribe(() => undefined) - await sleep(1) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -109,7 +109,7 @@ describe('queryObserver', () => { fetchStatus: 'idle', data: undefined, }) - await waitFor(() => expect(count).toBe(0)) + await vi.waitFor(() => expect(count).toBe(0)) unsubscribe() }) @@ -128,7 +128,7 @@ describe('queryObserver', () => { data: undefined, }) - await waitFor(() => expect(count).toBe(1)) + await vi.waitFor(() => expect(count).toBe(1)) expect(observer.getCurrentResult()).toMatchObject({ status: 'success', fetchStatus: 'idle', @@ -158,7 +158,7 @@ describe('queryObserver', () => { data: undefined, }) - await waitFor(() => expect(count).toBe(1)) + await vi.waitFor(() => expect(count).toBe(1)) unsubscribe() }) @@ -194,7 +194,7 @@ describe('queryObserver', () => { fetchStatus: 'fetching', data: undefined, }) - await waitFor(() => expect(count).toBe(1)) + await vi.waitFor(() => expect(count).toBe(1)) unsubscribe() }) @@ -208,12 +208,12 @@ describe('queryObserver', () => { queryClient.invalidateQueries({ queryKey: key, refetchType: 'inactive' }) // should not refetch since it was active and we only refetch inactive - await waitFor(() => expect(count).toBe(0)) + await vi.waitFor(() => expect(count).toBe(0)) queryClient.invalidateQueries({ queryKey: key, refetchType: 'active' }) // should refetch since it was active and we refetch active - await waitFor(() => expect(count).toBe(1)) + await vi.waitFor(() => expect(count).toBe(1)) // Toggle enabled enabled = false @@ -221,7 +221,7 @@ describe('queryObserver', () => { // should not refetch since it is not active and we only refetch active queryClient.invalidateQueries({ queryKey: key, refetchType: 'active' }) - await waitFor(() => expect(count).toBe(1)) + await vi.waitFor(() => expect(count).toBe(1)) unsubscribe() }) @@ -251,7 +251,7 @@ describe('queryObserver', () => { data: undefined, }) - await waitFor(() => expect(count).toBe(1)) + await vi.waitFor(() => expect(count).toBe(1)) // re-subscribe after data comes in unsubscribe = observer.subscribe(vi.fn()) @@ -275,9 +275,9 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) observer.setOptions({ queryKey: key2, queryFn: () => 2 }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(results.length).toBe(4) expect(results[0]).toMatchObject({ data: undefined, status: 'pending' }) @@ -300,7 +300,7 @@ describe('queryObserver', () => { >() observerResult = result }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(observerResult).toMatchObject({ data: { myCount: 1 } }) }) @@ -330,7 +330,7 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { observerResult = result }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(observerResult).toMatchObject({ data: { myCount: 1 } }) }) @@ -374,13 +374,13 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) observer.setOptions({ queryKey: key, queryFn, select: select2, }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) await observer.refetch() unsubscribe() expect(count).toBe(2) @@ -429,13 +429,13 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) observer.setOptions({ queryKey: key, queryFn, select, }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) await observer.refetch() unsubscribe() expect(count).toBe(1) @@ -497,8 +497,9 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await sleep(50) - await observer.refetch() + await vi.advanceTimersByTimeAsync(50) + observer.refetch() + await vi.advanceTimersByTimeAsync(10) unsubscribe() expect(results[0]).toMatchObject({ status: 'pending', @@ -546,8 +547,9 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await sleep(50) - await observer.refetch() + await vi.advanceTimersByTimeAsync(50) + observer.refetch() + await vi.advanceTimersByTimeAsync(10) unsubscribe() expect(results[0]).toMatchObject({ @@ -601,7 +603,7 @@ describe('queryObserver', () => { enabled: false, }) const unsubscribe = observer.subscribe(() => undefined) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(0) }) @@ -617,7 +619,7 @@ describe('queryObserver', () => { enabled: () => false, }) const unsubscribe = observer.subscribe(() => undefined) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(0) }) @@ -628,7 +630,7 @@ describe('queryObserver', () => { .fn<(...args: Array) => string>() .mockReturnValue('data') new QueryObserver(queryClient, { queryKey: key, queryFn }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) expect(queryFn).toHaveBeenCalledTimes(0) }) @@ -664,7 +666,7 @@ describe('queryObserver', () => { }) observer.setOptions({ queryKey: key, enabled: false, staleTime: 10 }) await queryClient.fetchQuery({ queryKey: key, queryFn }) - await sleep(20) + await vi.advanceTimersByTimeAsync(20) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(1) expect(results.length).toBe(2) @@ -690,7 +692,7 @@ describe('queryObserver', () => { results2.push(x) }) await queryClient.fetchQuery({ queryKey: key, queryFn }) - await sleep(50) + await vi.advanceTimersByTimeAsync(50) unsubscribe1() unsubscribe2() expect(queryFn).toHaveBeenCalledTimes(1) @@ -715,9 +717,9 @@ describe('queryObserver', () => { retryDelay: 50, }) const unsubscribe = observer.subscribe(() => undefined) - await sleep(70) + await vi.advanceTimersByTimeAsync(70) unsubscribe() - await sleep(200) + await vi.advanceTimersByTimeAsync(200) expect(count).toBe(2) }) @@ -737,10 +739,10 @@ describe('queryObserver', () => { }) const unsubscribe = observer.subscribe(() => undefined) expect(count).toBe(1) - await sleep(15) + await vi.advanceTimersByTimeAsync(15) expect(count).toBe(2) unsubscribe() - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(queryClient.getQueryCache().find({ queryKey: key })).toBeUndefined() expect(count).toBe(2) }) @@ -764,7 +766,7 @@ describe('queryObserver', () => { results.push(x) }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) unsubscribe() expect(results.length).toBe(2) @@ -849,7 +851,7 @@ describe('queryObserver', () => { }) const unsubscribe = observer.subscribe(() => undefined) - await sleep(30) + await vi.advanceTimersByTimeAsync(30) expect(queryFn).toHaveBeenCalledTimes(1) @@ -872,7 +874,7 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe(() => undefined) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(observer.getCurrentResult().data).toBe(data) observer.setOptions({ @@ -949,7 +951,7 @@ describe('queryObserver', () => { results.push(result) }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) observer.setOptions({ queryKey: key2, @@ -961,7 +963,7 @@ describe('queryObserver', () => { select: (data) => data.value, }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(results.length).toBe(4) expect(keys.length).toBe(3) @@ -1016,7 +1018,7 @@ describe('queryObserver', () => { results.push(result) }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) observer.setOptions({ queryKey: key2, @@ -1028,7 +1030,7 @@ describe('queryObserver', () => { }, }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(results.length).toBe(4) @@ -1079,7 +1081,7 @@ describe('queryObserver', () => { results.push(result) }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) observer.setOptions({ queryKey: key2, @@ -1088,7 +1090,7 @@ describe('queryObserver', () => { select: stableSelect, }) - await sleep(1) + await vi.advanceTimersByTimeAsync(1) unsubscribe() expect(results.length).toBe(4) @@ -1170,8 +1172,8 @@ describe('queryObserver', () => { } }) - await waitFor(() => expect(results[0]?.isStale).toBe(false)) - await waitFor(() => expect(results[1]?.isStale).toBe(true)) + await vi.waitFor(() => expect(results[0]?.isStale).toBe(false)) + await vi.waitFor(() => expect(results[1]?.isStale).toBe(true)) unsubscribe() }) @@ -1195,7 +1197,7 @@ describe('queryObserver', () => { results.push(observer.getCurrentResult()) }) - await waitFor(() => { + await vi.waitFor(() => { expect(results.at(-1)?.data).toBe('data') }) @@ -1228,7 +1230,7 @@ describe('queryObserver', () => { results.push(observer.getCurrentResult()) }) - await waitFor(() => { + await vi.waitFor(() => { expect(results.at(-1)?.status).toBe('error') }) @@ -1240,7 +1242,7 @@ describe('queryObserver', () => { // fail again const lengthBefore = results.length observer.refetch() - await waitFor(() => { + await vi.waitFor(() => { expect(results.length).toBeGreaterThan(lengthBefore) expect(results.at(-1)?.status).toBe('error') }) @@ -1256,7 +1258,7 @@ describe('queryObserver', () => { succeeds = true observer.refetch() - await waitFor(() => { + await vi.waitFor(() => { results.at(-1)?.status === 'success' }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47373ac931..79a3585eb5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2415,9 +2415,6 @@ importers: packages/query-core: devDependencies: - '@testing-library/dom': - specifier: ^10.4.0 - version: 10.4.0 npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -4985,67 +4982,79 @@ packages: resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} @@ -5556,42 +5565,49 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-arm64-musl@1.0.1': resolution: {integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/nice-linux-ppc64-gnu@1.0.1': resolution: {integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-riscv64-gnu@1.0.1': resolution: {integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-s390x-gnu@1.0.1': resolution: {integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-gnu@1.0.1': resolution: {integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-musl@1.0.1': resolution: {integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/nice-win32-arm64-msvc@1.0.1': resolution: {integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==} @@ -5646,24 +5662,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@15.1.2': resolution: {integrity: sha512-9CF1Pnivij7+M3G74lxr+e9h6o2YNIe7QtExWq1KUK4hsOLTBv6FJikEwCaC3NeYTflzrm69E5UfwEAbV2U9/g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@15.1.2': resolution: {integrity: sha512-tINV7WmcTUf4oM/eN3Yuu/f8jQ5C6AkueZPKeALs/qfdfX57eNv4Ij7rt0SA6iZ8+fMobVfcFVv664Op0caCCg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@15.1.2': resolution: {integrity: sha512-jf2IseC4WRsGkzeUw/cK3wci9pxR53GlLAt30+y+B+2qAQxMw6WAC3QrANIKxkcoPU3JFh/10uFfmoMDF9JXKg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@15.1.2': resolution: {integrity: sha512-wvg7MlfnaociP7k8lxLX4s2iBJm4BrNiNFhVUY+Yur5yhAJHfkS8qPPeDEUH8rQiY0PX3u/P7Q/wcg6Mv6GSAA==} @@ -5771,24 +5791,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@nx/nx-linux-arm64-musl@20.7.2': resolution: {integrity: sha512-/r4TNzyjhic7DZei6DXfbsfONDp40LbHjn/XcrJ53yI1UHGFunUUQYEDeBbgOcqs0IkRitNSgTDgpkG9UvJ65Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@nx/nx-linux-x64-gnu@20.7.2': resolution: {integrity: sha512-s/cMSJlJeF+Io+3bWy+wJSemBwKL/IAcXUxLXRSDuaPXv7AoDWctmbfcyLqQJ7Ufcioivvil0XTtD/vkJI0x3A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@nx/nx-linux-x64-musl@20.7.2': resolution: {integrity: sha512-9ZdPQwD4LDhwMOQ1NyYRDNr+6FVOdFeibkO+nN4nhkNBFxK6w2iprebrUKeOvQ1yHttt2YSC5p9bqxP7DVtE7w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@nx/nx-win32-arm64-msvc@20.7.2': resolution: {integrity: sha512-fSd44rmECiw/HZD9f0mNPRF8zwtx3N3TNU7CRohZtRBVotUgOuQU1XONi1J0V117g8q4VQmmaAO9eMdVxM2ZuQ==} @@ -5843,36 +5867,42 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-wasm@2.3.0': resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} @@ -6191,106 +6221,127 @@ packages: resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-gnueabihf@4.39.0': resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.34.8': resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm-musleabihf@4.39.0': resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.34.8': resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.39.0': resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.34.8': resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-musl@4.39.0': resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.34.8': resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loongarch64-gnu@4.39.0': resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.34.8': resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.39.0': resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.39.0': resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.34.8': resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.39.0': resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.34.8': resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.39.0': resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.34.8': resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-linux-x64-musl@4.39.0': resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.34.8': resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} @@ -6641,24 +6692,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.0.14': resolution: {integrity: sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.0.14': resolution: {integrity: sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.0.14': resolution: {integrity: sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-win32-arm64-msvc@4.0.14': resolution: {integrity: sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==} @@ -11202,48 +11257,56 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-gnu@1.29.2: resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.27.0: resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-arm64-musl@1.29.2: resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.27.0: resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-gnu@1.29.2: resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.27.0: resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-linux-x64-musl@1.29.2: resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.27.0: resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} From b13f0b8384bd40d25050e90e6bdb2bf7bed7354c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Apr 2025 10:29:28 +0000 Subject: [PATCH 015/432] chore(deps): update dependency @sveltejs/kit to v2.20.6 [security] (#9054) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 70 ++------------------------------------------------ 1 file changed, 2 insertions(+), 68 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 79a3585eb5..9bd065902c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1224,7 +1224,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(44i6xs33lapt7cl2pkawmwjtru) + version: 6.4.1(e9c097e00fee89f3cf54c317dda4adb5) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -4982,79 +4982,67 @@ packages: resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} @@ -5565,49 +5553,42 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-arm64-musl@1.0.1': resolution: {integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@napi-rs/nice-linux-ppc64-gnu@1.0.1': resolution: {integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-riscv64-gnu@1.0.1': resolution: {integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-s390x-gnu@1.0.1': resolution: {integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-x64-gnu@1.0.1': resolution: {integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-x64-musl@1.0.1': resolution: {integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@napi-rs/nice-win32-arm64-msvc@1.0.1': resolution: {integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==} @@ -5662,28 +5643,24 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@next/swc-linux-arm64-musl@15.1.2': resolution: {integrity: sha512-9CF1Pnivij7+M3G74lxr+e9h6o2YNIe7QtExWq1KUK4hsOLTBv6FJikEwCaC3NeYTflzrm69E5UfwEAbV2U9/g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@next/swc-linux-x64-gnu@15.1.2': resolution: {integrity: sha512-tINV7WmcTUf4oM/eN3Yuu/f8jQ5C6AkueZPKeALs/qfdfX57eNv4Ij7rt0SA6iZ8+fMobVfcFVv664Op0caCCg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@next/swc-linux-x64-musl@15.1.2': resolution: {integrity: sha512-jf2IseC4WRsGkzeUw/cK3wci9pxR53GlLAt30+y+B+2qAQxMw6WAC3QrANIKxkcoPU3JFh/10uFfmoMDF9JXKg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@next/swc-win32-arm64-msvc@15.1.2': resolution: {integrity: sha512-wvg7MlfnaociP7k8lxLX4s2iBJm4BrNiNFhVUY+Yur5yhAJHfkS8qPPeDEUH8rQiY0PX3u/P7Q/wcg6Mv6GSAA==} @@ -5791,28 +5768,24 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@nx/nx-linux-arm64-musl@20.7.2': resolution: {integrity: sha512-/r4TNzyjhic7DZei6DXfbsfONDp40LbHjn/XcrJ53yI1UHGFunUUQYEDeBbgOcqs0IkRitNSgTDgpkG9UvJ65Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@nx/nx-linux-x64-gnu@20.7.2': resolution: {integrity: sha512-s/cMSJlJeF+Io+3bWy+wJSemBwKL/IAcXUxLXRSDuaPXv7AoDWctmbfcyLqQJ7Ufcioivvil0XTtD/vkJI0x3A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@nx/nx-linux-x64-musl@20.7.2': resolution: {integrity: sha512-9ZdPQwD4LDhwMOQ1NyYRDNr+6FVOdFeibkO+nN4nhkNBFxK6w2iprebrUKeOvQ1yHttt2YSC5p9bqxP7DVtE7w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@nx/nx-win32-arm64-msvc@20.7.2': resolution: {integrity: sha512-fSd44rmECiw/HZD9f0mNPRF8zwtx3N3TNU7CRohZtRBVotUgOuQU1XONi1J0V117g8q4VQmmaAO9eMdVxM2ZuQ==} @@ -5867,42 +5840,36 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [musl] '@parcel/watcher-wasm@2.3.0': resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} @@ -6221,127 +6188,106 @@ packages: resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-gnueabihf@4.39.0': resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.34.8': resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm-musleabihf@4.39.0': resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.34.8': resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.39.0': resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.34.8': resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-musl@4.39.0': resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.34.8': resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-loongarch64-gnu@4.39.0': resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.34.8': resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.39.0': resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.39.0': resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==} cpu: [riscv64] os: [linux] - libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.34.8': resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.39.0': resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.34.8': resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.39.0': resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.34.8': resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-linux-x64-musl@4.39.0': resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.34.8': resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} @@ -6692,28 +6638,24 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.0.14': resolution: {integrity: sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.0.14': resolution: {integrity: sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.0.14': resolution: {integrity: sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@tailwindcss/oxide-win32-arm64-msvc@4.0.14': resolution: {integrity: sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==} @@ -11257,56 +11199,48 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] lightningcss-linux-arm64-gnu@1.29.2: resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] lightningcss-linux-arm64-musl@1.27.0: resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [musl] lightningcss-linux-arm64-musl@1.29.2: resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [musl] lightningcss-linux-x64-gnu@1.27.0: resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [glibc] lightningcss-linux-x64-gnu@1.29.2: resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [glibc] lightningcss-linux-x64-musl@1.27.0: resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [musl] lightningcss-linux-x64-musl@1.29.2: resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [musl] lightningcss-win32-arm64-msvc@1.27.0: resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} @@ -19823,7 +19757,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(44i6xs33lapt7cl2pkawmwjtru)': + '@react-navigation/stack@6.4.1(e9c097e00fee89f3cf54c317dda4adb5)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) From c987abcafe1d7f72554291e6da3bd278f024ef81 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Fri, 25 Apr 2025 10:37:57 +0200 Subject: [PATCH 016/432] docs: Update streamedQuery.md --- docs/reference/streamedQuery.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index e1d6feec20..0d812beb38 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -5,7 +5,11 @@ title: streamedQuery `streamedQuery` is a helper function to create a query function that streams data from an [AsyncIterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator). Data will be an Array of all the chunks received. The query will be in a `pending` state until the first chunk of data is received, but will go to `success` after that. The query will stay in fetchStatus `fetching` until the stream ends. +To see `streamedQuery` in action, take a look at our [chat example](../framework/react/examples/chat/react/nextjs-app-prefetching). + ```tsx +import { experimental_streamedQuery as streamedQuery } from '@tanstack/react-query' + const query = queryOptions({ queryKey: ['data'], queryFn: streamedQuery({ @@ -14,6 +18,8 @@ const query = queryOptions({ }) ``` +> Note: `streamedQuery` is currently marked as `experimental` because we want to gather feedback from the community. If you've tried out the API and have feedback for us, please provide it in this [GitHub discussion](https://github.com/TanStack/query/discussions/9065). + **Options** - `queryFn: (context: QueryFunctionContext) => Promise>` From 08496604a764ed8110a1ca2b0182c6b342383622 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Fri, 25 Apr 2025 21:19:05 +0900 Subject: [PATCH 017/432] test(react-query): use fake timers for ssr-hydration.test.tsx (#9058) --- .../react-query/src/__tests__/ssr-hydration.test.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/react-query/src/__tests__/ssr-hydration.test.tsx b/packages/react-query/src/__tests__/ssr-hydration.test.tsx index 907663472a..1edf18d564 100644 --- a/packages/react-query/src/__tests__/ssr-hydration.test.tsx +++ b/packages/react-query/src/__tests__/ssr-hydration.test.tsx @@ -10,7 +10,7 @@ import { hydrate, useQuery, } from '..' -import { createQueryClient, setIsServer, sleep } from './utils' +import { createQueryClient, setIsServer } from './utils' const ReactHydrate = (element: React.ReactElement, container: Element) => { let root: any @@ -23,7 +23,7 @@ const ReactHydrate = (element: React.ReactElement, container: Element) => { } async function fetchData(value: TData, ms?: number): Promise { - await sleep(ms || 1) + await vi.advanceTimersByTimeAsync(ms || 1) return value } @@ -36,12 +36,15 @@ describe('Server side rendering with de/rehydration', () => { beforeAll(() => { // @ts-expect-error we expect IS_REACT_ACT_ENVIRONMENT to exist previousIsReactActEnvironment = globalThis.IS_REACT_ACT_ENVIRONMENT = true + vi.useFakeTimers() }) afterAll(() => { // @ts-expect-error we expect IS_REACT_ACT_ENVIRONMENT to exist globalThis.IS_REACT_ACT_ENVIRONMENT = previousIsReactActEnvironment + vi.useRealTimers() }) + it('should not mismatch on success', async () => { const consoleMock = vi.spyOn(console, 'error') consoleMock.mockImplementation(() => undefined) @@ -185,7 +188,7 @@ describe('Server side rendering with de/rehydration', () => { expect(consoleMock).toHaveBeenCalledTimes(0) expect(fetchDataError).toHaveBeenCalledTimes(2) expect(el.innerHTML).toBe(expectedMarkup) - await sleep(50) + await vi.advanceTimersByTimeAsync(50) expect(fetchDataError).toHaveBeenCalledTimes(2) expect(el.innerHTML).toBe( 'ErrorComponent - status:error fetching:false data:undefined', @@ -253,7 +256,7 @@ describe('Server side rendering with de/rehydration', () => { expect(consoleMock).toHaveBeenCalledTimes(0) expect(fetchDataSuccess).toHaveBeenCalledTimes(1) expect(el.innerHTML).toBe(expectedMarkup) - await sleep(50) + await vi.advanceTimersByTimeAsync(50) expect(fetchDataSuccess).toHaveBeenCalledTimes(1) expect(el.innerHTML).toBe( 'SuccessComponent - status:success fetching:false data:success!', From 027be327030608d415a7947ecb16809969842d6e Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Fri, 25 Apr 2025 21:22:21 +0900 Subject: [PATCH 018/432] test(react-query): use fake timers for fine-grained-persister.test.tsx (#9056) --- .../__tests__/fine-grained-persister.test.tsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx index 7b78e8eea0..800e708559 100644 --- a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx @@ -1,5 +1,4 @@ -import { describe, expect, it, vi } from 'vitest' -import { waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import * as React from 'react' import { QueryCache, hashKey } from '@tanstack/query-core' import { @@ -10,6 +9,14 @@ import { useQuery } from '..' import { createQueryClient, queryKey, renderWithClient, sleep } from './utils' describe('fine grained persister', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = createQueryClient({ queryCache }) @@ -61,7 +68,7 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Works from persister')) + await vi.waitFor(() => rendered.getByText('Works from persister')) expect(spy).not.toHaveBeenCalled() }) @@ -116,8 +123,8 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Works from persister')) - await waitFor(() => rendered.getByText('Works from queryFn')) + await vi.waitFor(() => rendered.getByText('Works from persister')) + await vi.waitFor(() => rendered.getByText('Works from queryFn')) expect(spy).toHaveBeenCalledTimes(1) }) @@ -155,7 +162,7 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Works from queryFn')) + await vi.waitFor(() => rendered.getByText('Works from queryFn')) expect(spy).toHaveBeenCalledTimes(1) const storedItem = await storage.getItem(`${PERSISTER_KEY_PREFIX}-${hash}`) From a2a39c92f1e1e27bdac41f582fa007f05b26f113 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Fri, 25 Apr 2025 14:35:41 +0200 Subject: [PATCH 019/432] docs: fix typo --- docs/reference/streamedQuery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index 0d812beb38..7c47a7811d 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -5,7 +5,7 @@ title: streamedQuery `streamedQuery` is a helper function to create a query function that streams data from an [AsyncIterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator). Data will be an Array of all the chunks received. The query will be in a `pending` state until the first chunk of data is received, but will go to `success` after that. The query will stay in fetchStatus `fetching` until the stream ends. -To see `streamedQuery` in action, take a look at our [chat example](../framework/react/examples/chat/react/nextjs-app-prefetching). +To see `streamedQuery` in action, take a look at our [chat example](../framework/react/examples/chat). ```tsx import { experimental_streamedQuery as streamedQuery } from '@tanstack/react-query' From eb15f8727c89aa84c0a461c7e272db31f6b089af Mon Sep 17 00:00:00 2001 From: Zac Rosenbauer Date: Fri, 25 Apr 2025 08:36:10 -0400 Subject: [PATCH 020/432] docs: fix broken links in docs (#9052) --- docs/framework/react/guides/advanced-ssr.md | 4 ++-- docs/framework/react/guides/mutations.md | 2 +- docs/framework/react/guides/prefetching.md | 2 +- docs/framework/react/guides/suspense.md | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/framework/react/guides/advanced-ssr.md b/docs/framework/react/guides/advanced-ssr.md index 2d15ef5987..d3e5be7f9c 100644 --- a/docs/framework/react/guides/advanced-ssr.md +++ b/docs/framework/react/guides/advanced-ssr.md @@ -530,7 +530,7 @@ export default function Posts() { Now, your `getPosts` function can return e.g. `Temporal` datetime objects and the data will be serialized and deserialized on the client, assuming your transformer can serialize and deserialize those data types. -For more information, check out the [Next.js App with Prefetching Example](../examples/react/nextjs-app-prefetching). +For more information, check out the [Next.js App with Prefetching Example](../examples/nextjs-app-prefetching). ## Experimental streaming without prefetching in Next.js @@ -597,7 +597,7 @@ export function Providers(props: { children: React.ReactNode }) { } ``` -For more information, check out the [NextJs Suspense Streaming Example](../examples/react/nextjs-suspense-streaming). +For more information, check out the [NextJs Suspense Streaming Example](../examples/nextjs-suspense-streaming). The big upside is that you no longer need to prefetch queries manually to have SSR work, and it even still streams in the result! This gives you phenomenal DX and lower code complexity. diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md index c5c947275a..655d44f28d 100644 --- a/docs/framework/react/guides/mutations.md +++ b/docs/framework/react/guides/mutations.md @@ -386,7 +386,7 @@ export default function App() { [//]: # 'Example11' -We also have an extensive [offline example](../examples/react/offline) that covers both queries and mutations. +We also have an extensive [offline example](../examples/offline) that covers both queries and mutations. ## Mutation Scopes diff --git a/docs/framework/react/guides/prefetching.md b/docs/framework/react/guides/prefetching.md index fab1a2f683..d1a9c13169 100644 --- a/docs/framework/react/guides/prefetching.md +++ b/docs/framework/react/guides/prefetching.md @@ -412,7 +412,7 @@ const articleRoute = new Route({ }) ``` -Integration with other routers is also possible, see the [React Router example](../examples/react/react-router) for another demonstration. +Integration with other routers is also possible, see the [React Router example](../examples/react-router) for another demonstration. [//]: # 'Router' diff --git a/docs/framework/react/guides/suspense.md b/docs/framework/react/guides/suspense.md index a7ed7e4eae..37215b9e4d 100644 --- a/docs/framework/react/guides/suspense.md +++ b/docs/framework/react/guides/suspense.md @@ -10,7 +10,7 @@ React Query can also be used with React's Suspense for Data Fetching APIs. For t - [useSuspenseQueries](../reference/useSuspenseQueries.md) - Additionally, you can use the `useQuery().promise` and `React.use()` (Experimental) -When using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please read the [Resetting Error Boundaries](#resetting-error-boundaries) and look at the [Suspense Example](../examples/react/suspense) for more information on how to set up suspense mode. +When using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please read the [Resetting Error Boundaries](#resetting-error-boundaries) and look at the [Suspense Example](../examples/suspense) for more information on how to set up suspense mode. If you want mutations to propagate errors to the nearest error boundary (similar to queries), you can set the `throwOnError` option to `true` as well. @@ -172,7 +172,7 @@ export function Providers(props: { children: React.ReactNode }) { } ``` -For more information, check out the [NextJs Suspense Streaming Example](../examples/react/nextjs-suspense-streaming) and the [Advanced Rendering & Hydration](./advanced-ssr.md) guide. +For more information, check out the [NextJs Suspense Streaming Example](../examples/nextjs-suspense-streaming) and the [Advanced Rendering & Hydration](./advanced-ssr.md) guide. ## Using `useQuery().promise` and `React.use()` (Experimental) From 62f02fcd3c4b0a275532929fad5e5af6023c60d7 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sat, 26 Apr 2025 19:19:33 +0900 Subject: [PATCH 021/432] test(react-query): use fake timers for useMutationState.test.tsx (#9055) --- .../src/__tests__/useMutationState.test.tsx | 80 +++++++++---------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/packages/react-query/src/__tests__/useMutationState.test.tsx b/packages/react-query/src/__tests__/useMutationState.test.tsx index f35206525c..71f713b42d 100644 --- a/packages/react-query/src/__tests__/useMutationState.test.tsx +++ b/packages/react-query/src/__tests__/useMutationState.test.tsx @@ -1,5 +1,13 @@ -import { describe, expect, expectTypeOf, it } from 'vitest' -import { fireEvent, render, waitFor } from '@testing-library/react' +import { + afterEach, + beforeEach, + describe, + expect, + expectTypeOf, + it, + vi, +} from 'vitest' +import { fireEvent, render } from '@testing-library/react' import * as React from 'react' import { useIsMutating, useMutationState } from '../useMutationState' import { useMutation } from '../useMutation' @@ -12,6 +20,14 @@ import { import type { MutationState, MutationStatus } from '@tanstack/query-core' describe('useIsMutating', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('should return the number of fetching mutations', async () => { const isMutatingArray: Array = [] const queryClient = createQueryClient() @@ -25,17 +41,11 @@ describe('useIsMutating', () => { function Mutations() { const { mutate: mutate1 } = useMutation({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(50) - return 'data' - }, + mutationFn: () => sleep(50).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ mutationKey: ['mutation2'], - mutationFn: async () => { - await sleep(10) - return 'data' - }, + mutationFn: () => sleep(10).then(() => 'data'), }) return ( @@ -57,7 +67,7 @@ describe('useIsMutating', () => { const rendered = renderWithClient(queryClient, ) fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) // we don't really care if this yields @@ -66,10 +76,10 @@ describe('useIsMutating', () => { // [ +0, 1, 2, 1, +0 ] // our batching strategy might yield different results - await waitFor(() => expect(isMutatingArray[0]).toEqual(0)) - await waitFor(() => expect(isMutatingArray[1]).toEqual(1)) - await waitFor(() => expect(isMutatingArray[2]).toEqual(2)) - await waitFor(() => + await vi.waitFor(() => expect(isMutatingArray[0]).toEqual(0)) + await vi.waitFor(() => expect(isMutatingArray[1]).toEqual(1)) + await vi.waitFor(() => expect(isMutatingArray[2]).toEqual(2)) + await vi.waitFor(() => expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0), ) }) @@ -87,17 +97,11 @@ describe('useIsMutating', () => { function Page() { const { mutate: mutate1 } = useMutation({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ mutationKey: ['mutation2'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), }) React.useEffect(() => { @@ -109,7 +113,7 @@ describe('useIsMutating', () => { } renderWithClient(queryClient, ) - await waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) }) it('should filter correctly by predicate', async () => { @@ -128,17 +132,11 @@ describe('useIsMutating', () => { function Page() { const { mutate: mutate1 } = useMutation({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), }) const { mutate: mutate2 } = useMutation({ mutationKey: ['mutation2'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), }) React.useEffect(() => { @@ -150,7 +148,7 @@ describe('useIsMutating', () => { } renderWithClient(queryClient, ) - await waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) }) it('should use provided custom queryClient', async () => { @@ -161,10 +159,7 @@ describe('useIsMutating', () => { const { mutate } = useMutation( { mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(10) - return 'data' - }, + mutationFn: () => sleep(10).then(() => 'data'), }, queryClient, ) @@ -182,7 +177,7 @@ describe('useIsMutating', () => { const rendered = render() - await waitFor(() => rendered.getByText('mutating: 1')) + await vi.waitFor(() => rendered.getByText('mutating: 1')) }) }) @@ -227,10 +222,7 @@ describe('useMutationState', () => { function Mutate() { const { mutate, data } = useMutation({ mutationKey, - mutationFn: async (input: number) => { - await sleep(150) - return 'data' + input - }, + mutationFn: (input: number) => sleep(150).then(() => 'data' + input), }) return ( @@ -252,11 +244,11 @@ describe('useMutationState', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: null')) + await vi.waitFor(() => rendered.getByText('data: null')) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => rendered.getByText('data: data1')) + await vi.waitFor(() => rendered.getByText('data: data1')) expect(variables).toEqual([[], [1], []]) }) From 83f01cd2c90b8dc409220cc960281037e5c66035 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Sat, 26 Apr 2025 19:29:06 +0900 Subject: [PATCH 022/432] test(query-persist-client-core): use fake timers for createPersister.test.ts (#9067) * test(query-persist-client-core): use fake timers for createPersister.test.ts * refactor: remove unnecessary export --------- Co-authored-by: Jonghyeon Ko --- .../src/__tests__/createPersister.test.ts | 23 ++++++++++++------- .../src/__tests__/utils.ts | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts index 95038813dc..c13b91305d 100644 --- a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts +++ b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts @@ -1,10 +1,9 @@ -import { describe, expect, test, vi } from 'vitest' +import { afterAll, beforeAll, describe, expect, test, vi } from 'vitest' import { Query, QueryClient, hashKey } from '@tanstack/query-core' import { PERSISTER_KEY_PREFIX, experimental_createPersister, } from '../createPersister' -import { sleep } from './utils' import type { QueryFunctionContext, QueryKey } from '@tanstack/query-core' import type { StoragePersisterOptions } from '../createPersister' @@ -60,6 +59,14 @@ function setupPersister( } describe('createPersister', () => { + beforeAll(() => { + vi.useFakeTimers() + }) + + afterAll(() => { + vi.useRealTimers() + }) + test('should fetch if storage is not provided', async () => { const { context, persisterFn, query, queryFn } = setupPersister(['foo'], { storage: undefined, @@ -215,7 +222,7 @@ describe('createPersister', () => { query.fetch = vi.fn() expect(query.state.dataUpdatedAt).toEqual(0) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) expect(query.fetch).toHaveBeenCalledTimes(0) @@ -243,7 +250,7 @@ describe('createPersister', () => { query.state.isInvalidated = true query.fetch = vi.fn() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) expect(query.fetch).toHaveBeenCalledTimes(1) @@ -266,7 +273,7 @@ describe('createPersister', () => { await persisterFn(queryFn, context, query) query.setData('baz') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledOnce() expect(queryFn).toHaveBeenCalledWith(context) @@ -308,7 +315,7 @@ describe('createPersister', () => { await persisterFn(queryFn, context, query) query.fetch = vi.fn() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(1) expect(query.fetch).toHaveBeenCalledTimes(0) @@ -337,7 +344,7 @@ describe('createPersister', () => { query.state.isInvalidated = true query.fetch = vi.fn() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) expect(query.fetch).toHaveBeenCalledTimes(1) @@ -362,7 +369,7 @@ describe('createPersister', () => { await persisterFn(queryFn, context, query) query.setData('baz') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledOnce() expect(queryFn).toHaveBeenCalledWith(context) diff --git a/packages/query-persist-client-core/src/__tests__/utils.ts b/packages/query-persist-client-core/src/__tests__/utils.ts index 01287a2422..ee5ac7f0d4 100644 --- a/packages/query-persist-client-core/src/__tests__/utils.ts +++ b/packages/query-persist-client-core/src/__tests__/utils.ts @@ -7,7 +7,7 @@ export function createQueryClient(config?: QueryClientConfig): QueryClient { return new QueryClient(config) } -export function sleep(timeout: number): Promise { +function sleep(timeout: number): Promise { return new Promise((resolve, _reject) => { setTimeout(resolve, timeout) }) From b8ea29ef82385592cb87f2b17a4f08a8083a0b41 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sun, 27 Apr 2025 03:43:23 +0900 Subject: [PATCH 023/432] test(react-query): use fake timers for QueryClientProvider.test.tsx (#9074) --- .../__tests__/QueryClientProvider.test.tsx | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx index 1a04474f29..53ebf7bafb 100644 --- a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx @@ -1,9 +1,17 @@ -import { describe, expect, test, vi } from 'vitest' -import { render, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { render } from '@testing-library/react' import { QueryCache, QueryClientProvider, useQuery, useQueryClient } from '..' import { createQueryClient, queryKey, sleep } from './utils' describe('QueryClientProvider', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('sets a specific cache for all queries to use', async () => { const key = queryKey() @@ -13,10 +21,7 @@ describe('QueryClientProvider', () => { function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) return ( @@ -32,7 +37,7 @@ describe('QueryClientProvider', () => { , ) - await waitFor(() => rendered.getByText('test')) + await vi.waitFor(() => rendered.getByText('test')) expect(queryCache.find({ queryKey: key })).toBeDefined() }) @@ -50,10 +55,7 @@ describe('QueryClientProvider', () => { function Page1() { const { data } = useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'test1' - }, + queryFn: () => sleep(10).then(() => 'test1'), }) return ( @@ -65,10 +67,7 @@ describe('QueryClientProvider', () => { function Page2() { const { data } = useQuery({ queryKey: key2, - queryFn: async () => { - await sleep(10) - return 'test2' - }, + queryFn: () => sleep(10).then(() => 'test2'), }) return ( @@ -89,8 +88,8 @@ describe('QueryClientProvider', () => { , ) - await waitFor(() => rendered.getByText('test1')) - await waitFor(() => rendered.getByText('test2')) + await vi.waitFor(() => rendered.getByText('test1')) + await vi.waitFor(() => rendered.getByText('test2')) expect(queryCache1.find({ queryKey: key1 })).toBeDefined() expect(queryCache1.find({ queryKey: key2 })).not.toBeDefined() @@ -114,10 +113,7 @@ describe('QueryClientProvider', () => { function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) return ( @@ -133,7 +129,7 @@ describe('QueryClientProvider', () => { , ) - await waitFor(() => rendered.getByText('test')) + await vi.waitFor(() => rendered.getByText('test')) expect(queryCache.find({ queryKey: key })).toBeDefined() expect(queryCache.find({ queryKey: key })?.options.gcTime).toBe(Infinity) From e45dea84a7fa34d7dd0601488b9d475fcc16265e Mon Sep 17 00:00:00 2001 From: Sol Lee <82362278+saul-atomrigs@users.noreply.github.com> Date: Sun, 27 Apr 2025 23:54:28 +0900 Subject: [PATCH 024/432] fix(vue-query): update `initialData` type to allow `InitialDataFunction` and `NonUndefinedGuard`, similar to react-query (#9073) * fix(vue-query): update `initialData` type to allow InitialDataFunction and NonUndefinedGuard, similar to react-query * ci: apply automated fixes * test: update types to include `undefined` in useQueries and useQuery tests in vue-query * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/vue-query/src/__tests__/useQueries.test-d.ts | 6 ++++-- packages/vue-query/src/__tests__/useQuery.test-d.ts | 6 +++--- packages/vue-query/src/useQuery.ts | 6 +++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/vue-query/src/__tests__/useQueries.test-d.ts b/packages/vue-query/src/__tests__/useQueries.test-d.ts index c67de7b1a9..9e13e2f465 100644 --- a/packages/vue-query/src/__tests__/useQueries.test-d.ts +++ b/packages/vue-query/src/__tests__/useQueries.test-d.ts @@ -35,7 +35,7 @@ describe('UseQueries config object overload', () => { }) expectTypeOf(queriesState[0].data).toEqualTypeOf<{ wow: boolean }>() - expectTypeOf(queriesState[1].data).toEqualTypeOf() + expectTypeOf(queriesState[1].data).toEqualTypeOf() expectTypeOf(queriesState[2].data).toEqualTypeOf() }) @@ -54,7 +54,9 @@ describe('UseQueries config object overload', () => { const { value: queriesState } = useQueries({ queries: [options] }) - expectTypeOf(queriesState[0].data).toEqualTypeOf<{ wow: boolean }>() + expectTypeOf(queriesState[0].data).toEqualTypeOf< + { wow: boolean } | undefined + >() }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQueries', () => { diff --git a/packages/vue-query/src/__tests__/useQuery.test-d.ts b/packages/vue-query/src/__tests__/useQuery.test-d.ts index a02ee4b638..21ebfa8d6e 100644 --- a/packages/vue-query/src/__tests__/useQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/useQuery.test-d.ts @@ -23,7 +23,7 @@ describe('useQuery', () => { }), ) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() }) it('TData should be defined when passed through queryOptions', () => { @@ -40,7 +40,7 @@ describe('useQuery', () => { }) const { data } = reactive(useQuery(options)) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { @@ -74,7 +74,7 @@ describe('useQuery', () => { }), ) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() }) it('TData should have undefined in the union when initialData is NOT provided', () => { diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index a27258c2aa..c767f54207 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -3,6 +3,7 @@ import { useBaseQuery } from './useBaseQuery' import type { DefaultError, DefinedQueryObserverResult, + InitialDataFunction, QueryKey, QueryObserverOptions, } from '@tanstack/query-core' @@ -64,7 +65,10 @@ export type UndefinedInitialQueryOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions & { - initialData?: undefined + initialData?: + | undefined + | InitialDataFunction> + | NonUndefinedGuard } export type DefinedInitialQueryOptions< From fcb3d4add621e6440ddc29616a1417c61b038510 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sun, 27 Apr 2025 15:02:14 +0000 Subject: [PATCH 025/432] release: v5.74.7 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +++--- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 10 +++++----- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 10 +++++----- .../react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 6 +++--- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- .../angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/eslint-plugin-query/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- .../query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 79 files changed, 139 insertions(+), 139 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index bc99d91b86..e394c7d6aa 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 1f3e6ef221..2503b2a40f 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.74.6", + "@tanstack/query-sync-storage-persister": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "^0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index f7a4649bd8..0e051b4ad6 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 08f8ee29c7..cac535cd0c 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.74.6", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-devtools-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 2fa8a98850..2b9d54152e 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 64e1a59e7b..8de9b59d25 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 7c2de01168..0022d6c5ab 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 9cb1edd4dc..2676967b8e 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index b7f251b0b8..543835e597 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 4c1fc68e65..519e232e94 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 90c5da9376..badf5e5189 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.6", + "@tanstack/angular-query-experimental": "^5.74.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index b42437f903..47be455ab9 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.73.3", + "@tanstack/eslint-plugin-query": "^5.74.7", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 08898c8eb0..68c7bd11d2 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index b31b8eeaf6..135abfec25 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index b970816394..f36db41a25 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.6", - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", - "@tanstack/react-query-persist-client": "^5.74.6", + "@tanstack/query-sync-storage-persister": "^5.74.7", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query-persist-client": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.73.3", + "@tanstack/eslint-plugin-query": "^5.74.7", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index d67925a2bd..bb7f09e8fa 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index dd0f8826fe..7d42640095 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index b5038f0e64..766d2eea2e 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 1f95e725a3..d07ea7c45c 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.6", - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", - "@tanstack/react-query-persist-client": "^5.74.6", + "@tanstack/query-sync-storage-persister": "^5.74.7", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query-persist-client": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.73.3", + "@tanstack/eslint-plugin-query": "^5.74.7", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 1b0f018ffe..9207273b97 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index f15f709cca..8a7c494724 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index be7d82aa66..ded147b4c3 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 3b295b3b33..78077b627f 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", - "@tanstack/react-query-next-experimental": "^5.74.4", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query-next-experimental": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index d3c615417f..ac380f075e 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index b940103d5b..47ac7a3a8f 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.6", + "@tanstack/query-sync-storage-persister": "^5.74.7", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", - "@tanstack/react-query-persist-client": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query-persist-client": "^5.74.7", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 2e175a2907..65e5abf1ce 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 6e837f465a..467ac1c448 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index ad9b58839b..29055a9851 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index a99b3a4343..49551ec07e 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index e6a8afb7df..ea94566f89 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index a4cd7cf074..f4db3fb4b4 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index a714ad941e..03928efa3e 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 4380d2b63e..e90f40ef13 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 53d8f11f9e..8977237dd4 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index f1ccdf9d43..64d4c77aa5 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 6661083e29..bdea11bf7e 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index f3614ef85a..154605c6d3 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.4", - "@tanstack/react-query-devtools": "^5.74.6", + "@tanstack/react-query": "^5.74.7", + "@tanstack/react-query-devtools": "^5.74.7", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index dfa76e145f..c3e862b497 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.6", + "@tanstack/solid-query": "^5.74.7", + "@tanstack/solid-query-devtools": "^5.74.7", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 9beee43d27..45a812006f 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.6", + "@tanstack/solid-query": "^5.74.7", + "@tanstack/solid-query-devtools": "^5.74.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 389f4d7223..8f6e75302f 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.6", + "@tanstack/solid-query": "^5.74.7", + "@tanstack/solid-query-devtools": "^5.74.7", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 6ee4500685..b189352bd2 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.6", + "@tanstack/solid-query": "^5.74.7", + "@tanstack/solid-query-devtools": "^5.74.7", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 9d6686c706..c0d1d29e4c 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.6", + "@tanstack/solid-query": "^5.74.7", + "@tanstack/solid-query-devtools": "^5.74.7", "solid-js": "^1.9.5" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.73.3", + "@tanstack/eslint-plugin-query": "^5.74.7", "typescript": "5.8.3", "vite": "^6.2.4", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 9493ad0e57..d06bbe553a 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.74.4", - "@tanstack/solid-query-devtools": "^5.74.6", + "@tanstack/solid-query": "^5.74.7", + "@tanstack/solid-query-devtools": "^5.74.7", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 1e4759841f..5390380e3c 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6" + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 7a82bf0c04..c50abae22f 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.6", - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6", - "@tanstack/svelte-query-persist-client": "^5.74.6" + "@tanstack/query-sync-storage-persister": "^5.74.7", + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7", + "@tanstack/svelte-query-persist-client": "^5.74.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index b6fcc264da..db660601dd 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6" + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index fe137246f4..0c1836fecc 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6" + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 720ce1b930..d9318df44f 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6" + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index aff3354abb..cfc997465c 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6" + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 8f27cea255..3023cbed2d 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6" + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 3ef620cac4..b27f63cc3e 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.4", - "@tanstack/svelte-query-devtools": "^5.74.6" + "@tanstack/svelte-query": "^5.74.7", + "@tanstack/svelte-query-devtools": "^5.74.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 75d35b229c..f03a662dda 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.6", + "@tanstack/vue-query": "^5.74.7", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 0be678cd5e..f09b83379f 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.6", + "@tanstack/vue-query": "^5.74.7", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 77bece5f99..086c11d587 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.6", - "@tanstack/vue-query-devtools": "^5.74.6", + "@tanstack/vue-query": "^5.74.7", + "@tanstack/vue-query-devtools": "^5.74.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 705359ab93..2894681d2f 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.6", + "@tanstack/vue-query": "^5.74.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 44b504d935..3c5be7c413 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.74.6" + "@tanstack/vue-query": "^5.74.7" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 599bc3fa07..55d7c1e951 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.74.4", - "@tanstack/query-persist-client-core": "^5.74.6", - "@tanstack/query-sync-storage-persister": "^5.74.6", - "@tanstack/vue-query": "^5.74.6", + "@tanstack/query-core": "^5.74.7", + "@tanstack/query-persist-client-core": "^5.74.7", + "@tanstack/query-sync-storage-persister": "^5.74.7", + "@tanstack/vue-query": "^5.74.7", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 69903688bf..22da379b7e 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.6", - "@tanstack/vue-query-devtools": "^5.74.6", + "@tanstack/vue-query": "^5.74.7", + "@tanstack/vue-query-devtools": "^5.74.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 76587b1896..8f83262ef0 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.74.6", + "version": "5.74.7", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index b1a73b3976..4dac1f14e0 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.74.6", + "version": "5.74.7", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 53a3918fc4..c9df4ba4e1 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.73.3", + "version": "5.74.7", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index a50662bc57..c3d7c13f2f 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.74.6", + "version": "5.74.7", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index fa8dd3fb5a..04dbce9e3f 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.74.4", + "version": "5.74.7", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 836de5e7e6..e0bd7114b1 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.74.4", + "version": "5.74.7", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 9d9ba4341d..4414e03894 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.74.6", + "version": "5.74.7", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index b713eebf47..698a238e28 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.74.6", + "version": "5.74.7", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 9ac2c57a8c..942284dd67 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.74.6", + "version": "5.74.7", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 5556461c8c..a70e962e8b 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.74.6", + "version": "5.74.7", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 028bb75afc..82c719d20c 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.74.4", + "version": "5.74.7", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index eec285ab19..be38de1b42 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.74.6", + "version": "5.74.7", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 34b4c35525..4b4bd170a6 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.74.4", + "version": "5.74.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 6b3e82c252..1b7599b26d 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.74.6", + "version": "5.74.7", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index eee8187b74..c4cd4d4cf2 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.74.6", + "version": "5.74.7", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index c8b3acd820..fc82a5bb69 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.74.4", + "version": "5.74.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index e3fc929cf5..8f8fd13c3c 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.74.6", + "version": "5.74.7", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 1d7148ce54..8f7de3199a 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.74.6", + "version": "5.74.7", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index e0b1ea07dd..66d1a87fc5 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.74.4", + "version": "5.74.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index c5e6a5a0dd..d58312b95d 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.74.6", + "version": "5.74.7", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 1bd7dbda82..0e3d89f8d5 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.74.6", + "version": "5.74.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From b397fba936a38d55e7609ac0e8562eeba16998ec Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Mon, 28 Apr 2025 09:21:01 +0900 Subject: [PATCH 026/432] test(react-query): use test-d file for useMutationState (#9075) --- .../src/__tests__/useMutationState.test-d.tsx | 23 +++++++++++ .../src/__tests__/useMutationState.test.tsx | 39 +------------------ packages/react-query/src/__tests__/utils.tsx | 2 - 3 files changed, 25 insertions(+), 39 deletions(-) create mode 100644 packages/react-query/src/__tests__/useMutationState.test-d.tsx diff --git a/packages/react-query/src/__tests__/useMutationState.test-d.tsx b/packages/react-query/src/__tests__/useMutationState.test-d.tsx new file mode 100644 index 0000000000..795995aa44 --- /dev/null +++ b/packages/react-query/src/__tests__/useMutationState.test-d.tsx @@ -0,0 +1,23 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { useMutationState } from '../useMutationState' +import type { MutationState, MutationStatus } from '@tanstack/query-core' + +describe('useMutationState', () => { + it('should default to QueryState', () => { + const result = useMutationState({ + filters: { status: 'pending' }, + }) + + expectTypeOf(result).toEqualTypeOf< + Array> + >() + }) + it('should infer with select', () => { + const result = useMutationState({ + filters: { status: 'pending' }, + select: (mutation) => mutation.state.status, + }) + + expectTypeOf(result).toEqualTypeOf>() + }) +}) diff --git a/packages/react-query/src/__tests__/useMutationState.test.tsx b/packages/react-query/src/__tests__/useMutationState.test.tsx index 71f713b42d..cd6bcda438 100644 --- a/packages/react-query/src/__tests__/useMutationState.test.tsx +++ b/packages/react-query/src/__tests__/useMutationState.test.tsx @@ -1,23 +1,9 @@ -import { - afterEach, - beforeEach, - describe, - expect, - expectTypeOf, - it, - vi, -} from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' import { useIsMutating, useMutationState } from '../useMutationState' import { useMutation } from '../useMutation' -import { - createQueryClient, - doNotExecute, - renderWithClient, - sleep, -} from './utils' -import type { MutationState, MutationStatus } from '@tanstack/query-core' +import { createQueryClient, renderWithClient, sleep } from './utils' describe('useIsMutating', () => { beforeEach(() => { @@ -182,27 +168,6 @@ describe('useIsMutating', () => { }) describe('useMutationState', () => { - describe('types', () => { - it('should default to QueryState', () => { - doNotExecute(() => { - const result = useMutationState({ - filters: { status: 'pending' }, - }) - - expectTypeOf(result).toEqualTypeOf>() - }) - }) - it('should infer with select', () => { - doNotExecute(() => { - const result = useMutationState({ - filters: { status: 'pending' }, - select: (mutation) => mutation.state.status, - }) - - expectTypeOf(result).toEqualTypeOf>() - }) - }) - }) it('should return variables after calling mutate', async () => { const queryClient = createQueryClient() const variables: Array> = [] diff --git a/packages/react-query/src/__tests__/utils.tsx b/packages/react-query/src/__tests__/utils.tsx index 7e25177768..d3536bf98d 100644 --- a/packages/react-query/src/__tests__/utils.tsx +++ b/packages/react-query/src/__tests__/utils.tsx @@ -92,5 +92,3 @@ export function setIsServer(isServer: boolean) { }) } } - -export const doNotExecute = (_func: () => void) => true From 66151ca851d1def7e9dcefe125a90dc0af33c420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B0=A8=EC=8A=B9=ED=95=98?= <75566149+ss0526100@users.noreply.github.com> Date: Tue, 29 Apr 2025 17:01:28 +0900 Subject: [PATCH 027/432] fix(vue-query): fix initialData Type Inference Bug in useQuery (#9077) * fix: Correct bug where non-undefined values in initialData are not treated as defined * test: Update test to ensure data is TData only when initialData is defined * fix: Modified to recognize UndefinedInitialQueryOptions when a function returning undefined is used in initialData. * test: update test result values for case where a function returning TData is passed to initialData --- packages/vue-query/src/__tests__/useQueries.test-d.ts | 6 ++---- packages/vue-query/src/__tests__/useQuery.test-d.ts | 6 +++--- packages/vue-query/src/useQuery.ts | 6 +----- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/packages/vue-query/src/__tests__/useQueries.test-d.ts b/packages/vue-query/src/__tests__/useQueries.test-d.ts index 9e13e2f465..c67de7b1a9 100644 --- a/packages/vue-query/src/__tests__/useQueries.test-d.ts +++ b/packages/vue-query/src/__tests__/useQueries.test-d.ts @@ -35,7 +35,7 @@ describe('UseQueries config object overload', () => { }) expectTypeOf(queriesState[0].data).toEqualTypeOf<{ wow: boolean }>() - expectTypeOf(queriesState[1].data).toEqualTypeOf() + expectTypeOf(queriesState[1].data).toEqualTypeOf() expectTypeOf(queriesState[2].data).toEqualTypeOf() }) @@ -54,9 +54,7 @@ describe('UseQueries config object overload', () => { const { value: queriesState } = useQueries({ queries: [options] }) - expectTypeOf(queriesState[0].data).toEqualTypeOf< - { wow: boolean } | undefined - >() + expectTypeOf(queriesState[0].data).toEqualTypeOf<{ wow: boolean }>() }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQueries', () => { diff --git a/packages/vue-query/src/__tests__/useQuery.test-d.ts b/packages/vue-query/src/__tests__/useQuery.test-d.ts index 21ebfa8d6e..a02ee4b638 100644 --- a/packages/vue-query/src/__tests__/useQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/useQuery.test-d.ts @@ -23,7 +23,7 @@ describe('useQuery', () => { }), ) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) it('TData should be defined when passed through queryOptions', () => { @@ -40,7 +40,7 @@ describe('useQuery', () => { }) const { data } = reactive(useQuery(options)) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { @@ -74,7 +74,7 @@ describe('useQuery', () => { }), ) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) it('TData should have undefined in the union when initialData is NOT provided', () => { diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index c767f54207..9ac47bd953 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -3,7 +3,6 @@ import { useBaseQuery } from './useBaseQuery' import type { DefaultError, DefinedQueryObserverResult, - InitialDataFunction, QueryKey, QueryObserverOptions, } from '@tanstack/query-core' @@ -65,10 +64,7 @@ export type UndefinedInitialQueryOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions & { - initialData?: - | undefined - | InitialDataFunction> - | NonUndefinedGuard + initialData?: undefined | (() => undefined) } export type DefinedInitialQueryOptions< From c8baa4c92b45673c34b3503dbc12b5c3d7cc7055 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 29 Apr 2025 08:04:24 +0000 Subject: [PATCH 028/432] release: v5.74.8 --- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 2 +- examples/vue/simple/package.json | 4 ++-- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 39 files changed, 71 insertions(+), 71 deletions(-) diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 47be455ab9..10ea6ff8a0 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 68c7bd11d2..0d95b17c30 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 135abfec25..82f1b11879 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index f36db41a25..d4c860be87 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.74.7", - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", - "@tanstack/react-query-persist-client": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query-persist-client": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index bb7f09e8fa..fd182cc2ba 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 7d42640095..6f7b9fd552 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 766d2eea2e..7805c16a30 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index d07ea7c45c..06ec09d282 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.74.7", - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", - "@tanstack/react-query-persist-client": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query-persist-client": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 9207273b97..23946c9d55 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 8a7c494724..fa90c51c5f 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index ded147b4c3..bbc33d7617 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 78077b627f..d738ae261b 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", - "@tanstack/react-query-next-experimental": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query-next-experimental": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index ac380f075e..52f5866c71 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 47ac7a3a8f..8e37c2bf8f 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-sync-storage-persister": "^5.74.7", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", - "@tanstack/react-query-persist-client": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query-persist-client": "^5.74.8", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 65e5abf1ce..0e3d4e3ea3 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 467ac1c448..cc552d9d45 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 29055a9851..82d5c6696c 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 49551ec07e..3ebc04cb68 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index ea94566f89..99fbec70f4 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index f4db3fb4b4..c2d4be5b62 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 03928efa3e..edddc150f8 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index e90f40ef13..e331fbf0c5 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 8977237dd4..c78cabfdab 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 64d4c77aa5..0529f4e541 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index bdea11bf7e..adc8dbaba9 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 154605c6d3..d11bad0f76 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.7", - "@tanstack/react-query-devtools": "^5.74.7", + "@tanstack/react-query": "^5.74.8", + "@tanstack/react-query-devtools": "^5.74.8", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index f03a662dda..1d4b97d75b 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.7", + "@tanstack/vue-query": "^5.74.8", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index f09b83379f..16b05a5253 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.7", + "@tanstack/vue-query": "^5.74.8", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 086c11d587..b4c766eb26 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.7", - "@tanstack/vue-query-devtools": "^5.74.7", + "@tanstack/vue-query": "^5.74.8", + "@tanstack/vue-query-devtools": "^5.74.8", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 2894681d2f..40589c47bc 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.7", + "@tanstack/vue-query": "^5.74.8", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 3c5be7c413..1dccb93dd2 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.74.7" + "@tanstack/vue-query": "^5.74.8" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 55d7c1e951..c15bfde1e8 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -11,7 +11,7 @@ "@tanstack/query-core": "^5.74.7", "@tanstack/query-persist-client-core": "^5.74.7", "@tanstack/query-sync-storage-persister": "^5.74.7", - "@tanstack/vue-query": "^5.74.7", + "@tanstack/vue-query": "^5.74.8", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 22da379b7e..23b180807b 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.7", - "@tanstack/vue-query-devtools": "^5.74.7", + "@tanstack/vue-query": "^5.74.8", + "@tanstack/vue-query-devtools": "^5.74.8", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index a70e962e8b..13eb3f1282 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.74.7", + "version": "5.74.8", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 82c719d20c..2f6c1f474b 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.74.7", + "version": "5.74.8", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index be38de1b42..028bf36d45 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.74.7", + "version": "5.74.8", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 4b4bd170a6..8d325853ce 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.74.7", + "version": "5.74.8", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index d58312b95d..d7cdce9453 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.74.7", + "version": "5.74.8", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 0e3d89f8d5..ebd3c583f6 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.74.7", + "version": "5.74.8", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 8c7df6369ff4e03ec24ae5fef3b75df0e69c254d Mon Sep 17 00:00:00 2001 From: Emma Segal-Grossman Date: Tue, 29 Apr 2025 05:18:25 -0400 Subject: [PATCH 029/432] docs: Fix broken links on QueryCache reference page (#9033) * Fix broken link to TkDodo's Blog page from QueryCache page It looks like the `docs` part of the url was being removed, so there's now one less `../` in the relative url. * Fix other broken links on page & add `.md` extension to relative links as suggested by @TkDodo --- docs/reference/QueryCache.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reference/QueryCache.md b/docs/reference/QueryCache.md index ffa4a20440..cd3e0f2a51 100644 --- a/docs/reference/QueryCache.md +++ b/docs/reference/QueryCache.md @@ -75,8 +75,8 @@ const queries = queryCache.findAll(queryKey) **Options** -- `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys) -- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters#query-filters) +- `queryKey?: QueryKey`: [Query Keys](../framework/react/guides/query-keys.md) +- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters.md#query-filters) **Returns** @@ -118,6 +118,6 @@ queryCache.clear() ## Further reading To get a better understanding how the QueryCache works internally, have a look at [#18: Inside React Query -](../../framework/react/community/tkdodos-blog#18-inside-react-query) from the Community Resources. +](../framework/react/community/tkdodos-blog.md#18-inside-react-query) from the Community Resources. [//]: # 'Materials' From 10493efa8a87670c1104ab04dcf4fd6aa7e6ed77 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Tue, 29 Apr 2025 12:48:29 +0200 Subject: [PATCH 030/432] refactor(core): switch from Object.defineProperty to Proxies (#9079) * ref: switch from Object.defineProperty to Proxies * test: improve the test that tracks property access --- .../react/guides/render-optimizations.md | 4 +-- packages/query-core/src/queryObserver.ts | 20 ++++--------- .../src/__tests__/useQuery.test.tsx | 28 +++++++++---------- 3 files changed, 21 insertions(+), 31 deletions(-) diff --git a/docs/framework/react/guides/render-optimizations.md b/docs/framework/react/guides/render-optimizations.md index 51ca5b17d2..75775eab34 100644 --- a/docs/framework/react/guides/render-optimizations.md +++ b/docs/framework/react/guides/render-optimizations.md @@ -17,11 +17,11 @@ The top level object returned from `useQuery`, `useInfiniteQuery`, `useMutation` ## tracked properties -React Query will only trigger a re-render if one of the properties returned from `useQuery` is actually "used". This is done by using [custom getters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#custom_setters_and_getters). This avoids a lot of unnecessary re-renders, e.g. because properties like `isFetching` or `isStale` might change often, but are not used in the component. +React Query will only trigger a re-render if one of the properties returned from `useQuery` is actually "used". This is done by using [Proxy object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy). This avoids a lot of unnecessary re-renders, e.g. because properties like `isFetching` or `isStale` might change often, but are not used in the component. You can customize this feature by setting `notifyOnChangeProps` manually globally or on a per-query basis. If you want to turn that feature off, you can set `notifyOnChangeProps: 'all'`. -> Note: Custom getters are invoked by accessing a property, either via destructuring or by accessing it directly. If you use object rest destructuring, you will disable this optimization. We have a [lint rule](../../../eslint/no-rest-destructuring.md) to guard against this pitfall. +> Note: The get trap of a proxy is invoked by accessing a property, either via destructuring or by accessing it directly. If you use object rest destructuring, you will disable this optimization. We have a [lint rule](../../../eslint/no-rest-destructuring.md) to guard against this pitfall. ## select diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index 6f01860d30..174dc72bf5 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -268,21 +268,13 @@ export class QueryObserver< result: QueryObserverResult, onPropTracked?: (key: keyof QueryObserverResult) => void, ): QueryObserverResult { - const trackedResult = {} as QueryObserverResult - - Object.keys(result).forEach((key) => { - Object.defineProperty(trackedResult, key, { - configurable: false, - enumerable: true, - get: () => { - this.trackProp(key as keyof QueryObserverResult) - onPropTracked?.(key as keyof QueryObserverResult) - return result[key as keyof QueryObserverResult] - }, - }) + return new Proxy(result, { + get: (target, key) => { + this.trackProp(key as keyof QueryObserverResult) + onPropTracked?.(key as keyof QueryObserverResult) + return Reflect.get(target, key) + }, }) - - return trackedResult } trackProp(key: keyof QueryObserverResult) { diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 935b0734c1..dfea088fd0 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -905,42 +905,40 @@ describe('useQuery', () => { it('should track properties and only re-render when a tracked property changes', async () => { const key = queryKey() const states: Array> = [] + let count = 0 function Page() { const state = useQuery({ queryKey: key, queryFn: async () => { await sleep(10) - return 'test' + count++ + return 'test' + count }, }) states.push(state) - const { refetch, data } = state - - React.useEffect(() => { - setActTimeout(() => { - if (data) { - refetch() - } - }, 20) - }, [refetch, data]) - return (
-

{data ?? null}

+

{state.data ?? null}

+
) } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('test')) + await waitFor(() => rendered.getByText('test1')) - expect(states.length).toBe(2) + fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) + + await waitFor(() => rendered.getByText('test2')) + + expect(states.length).toBe(3) expect(states[0]).toMatchObject({ data: undefined }) - expect(states[1]).toMatchObject({ data: 'test' }) + expect(states[1]).toMatchObject({ data: 'test1' }) + expect(states[2]).toMatchObject({ data: 'test2' }) }) it('should always re-render if we are tracking props but not using any', async () => { From 8226d41ba819c6a90b934a22f993d8d68df15db1 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 29 Apr 2025 10:50:19 +0000 Subject: [PATCH 031/432] release: v5.74.9 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e394c7d6aa..1c609858cf 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 2503b2a40f..6c58125de0 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.74.7", + "@tanstack/query-sync-storage-persister": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "^0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 0e051b4ad6..79639ef8fa 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index cac535cd0c..4f29a06b1e 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.74.7", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-devtools-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 2b9d54152e..445fef726d 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 8de9b59d25..946409c232 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 0022d6c5ab..a3cabda7a5 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 2676967b8e..8e99822523 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 543835e597..d3aaa4c74b 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 519e232e94..663dd320bb 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index badf5e5189..5820a7b200 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.7", + "@tanstack/angular-query-experimental": "^5.74.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 10ea6ff8a0..2746236f1c 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 0d95b17c30..867662572c 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 82f1b11879..01ed0141b1 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index d4c860be87..c62e0ab3a8 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.7", - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", - "@tanstack/react-query-persist-client": "^5.74.8", + "@tanstack/query-sync-storage-persister": "^5.74.9", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query-persist-client": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index fd182cc2ba..959c42a0b7 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 6f7b9fd552..f998dc06b6 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 7805c16a30..9ea742f753 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 06ec09d282..f8af104633 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.7", - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", - "@tanstack/react-query-persist-client": "^5.74.8", + "@tanstack/query-sync-storage-persister": "^5.74.9", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query-persist-client": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 23946c9d55..ba01ed4e58 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index fa90c51c5f..cb5eff38aa 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index bbc33d7617..aee21eae1a 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index d738ae261b..f03fd6e7de 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", - "@tanstack/react-query-next-experimental": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query-next-experimental": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 52f5866c71..846fb23128 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 8e37c2bf8f..bee280394e 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.7", + "@tanstack/query-sync-storage-persister": "^5.74.9", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", - "@tanstack/react-query-persist-client": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query-persist-client": "^5.74.9", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 0e3d4e3ea3..7efebe5b4c 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index cc552d9d45..4d69f73737 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 82d5c6696c..6b21c072b6 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 3ebc04cb68..954f95630b 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 99fbec70f4..cf3b39d086 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index c2d4be5b62..974ef16965 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index edddc150f8..5c7f3dae59 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index e331fbf0c5..4c24b07ace 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index c78cabfdab..0e69dcfc6a 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 0529f4e541..7e1c08567f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index adc8dbaba9..59ccd6fdf6 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index d11bad0f76..18e6ef4fff 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.8", - "@tanstack/react-query-devtools": "^5.74.8", + "@tanstack/react-query": "^5.74.9", + "@tanstack/react-query-devtools": "^5.74.9", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index c3e862b497..792ee6b3b9 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.74.7", - "@tanstack/solid-query-devtools": "^5.74.7", + "@tanstack/solid-query": "^5.74.9", + "@tanstack/solid-query-devtools": "^5.74.9", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 45a812006f..e61fdc784b 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.7", - "@tanstack/solid-query-devtools": "^5.74.7", + "@tanstack/solid-query": "^5.74.9", + "@tanstack/solid-query-devtools": "^5.74.9", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 8f6e75302f..11f487e7bd 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.7", - "@tanstack/solid-query-devtools": "^5.74.7", + "@tanstack/solid-query": "^5.74.9", + "@tanstack/solid-query-devtools": "^5.74.9", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index b189352bd2..fd86803014 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.7", - "@tanstack/solid-query-devtools": "^5.74.7", + "@tanstack/solid-query": "^5.74.9", + "@tanstack/solid-query-devtools": "^5.74.9", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index c0d1d29e4c..cde2afc419 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.7", - "@tanstack/solid-query-devtools": "^5.74.7", + "@tanstack/solid-query": "^5.74.9", + "@tanstack/solid-query-devtools": "^5.74.9", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index d06bbe553a..a940eea9a8 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.74.7", - "@tanstack/solid-query-devtools": "^5.74.7", + "@tanstack/solid-query": "^5.74.9", + "@tanstack/solid-query-devtools": "^5.74.9", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 5390380e3c..05d851cdbc 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7" + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index c50abae22f..be50f9a902 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.7", - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7", - "@tanstack/svelte-query-persist-client": "^5.74.7" + "@tanstack/query-sync-storage-persister": "^5.74.9", + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9", + "@tanstack/svelte-query-persist-client": "^5.74.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index db660601dd..99b5dc6567 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7" + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 0c1836fecc..73d36c9634 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7" + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index d9318df44f..fccde0f5db 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7" + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index cfc997465c..6946f9c3fb 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7" + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 3023cbed2d..65a591192e 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7" + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index b27f63cc3e..9ad63b0771 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.7", - "@tanstack/svelte-query-devtools": "^5.74.7" + "@tanstack/svelte-query": "^5.74.9", + "@tanstack/svelte-query-devtools": "^5.74.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 1d4b97d75b..9686ab0b4e 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.8", + "@tanstack/vue-query": "^5.74.9", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 16b05a5253..3ef671bc63 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.8", + "@tanstack/vue-query": "^5.74.9", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index b4c766eb26..284d7541a2 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.8", - "@tanstack/vue-query-devtools": "^5.74.8", + "@tanstack/vue-query": "^5.74.9", + "@tanstack/vue-query-devtools": "^5.74.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 40589c47bc..247b53a0cf 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.8", + "@tanstack/vue-query": "^5.74.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 1dccb93dd2..b45e3f4c11 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.74.8" + "@tanstack/vue-query": "^5.74.9" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index c15bfde1e8..e771f4a16c 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.74.7", - "@tanstack/query-persist-client-core": "^5.74.7", - "@tanstack/query-sync-storage-persister": "^5.74.7", - "@tanstack/vue-query": "^5.74.8", + "@tanstack/query-core": "^5.74.9", + "@tanstack/query-persist-client-core": "^5.74.9", + "@tanstack/query-sync-storage-persister": "^5.74.9", + "@tanstack/vue-query": "^5.74.9", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 23b180807b..3c734b944d 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.8", - "@tanstack/vue-query-devtools": "^5.74.8", + "@tanstack/vue-query": "^5.74.9", + "@tanstack/vue-query-devtools": "^5.74.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 8f83262ef0..66e079669d 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.74.7", + "version": "5.74.9", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 4dac1f14e0..044e94c8b5 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.74.7", + "version": "5.74.9", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index c3d7c13f2f..4ededb026e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.74.7", + "version": "5.74.9", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 04dbce9e3f..e8af44953c 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.74.7", + "version": "5.74.9", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index e0bd7114b1..15b47b8b3b 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.74.7", + "version": "5.74.9", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 698a238e28..117c9abc2d 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.74.7", + "version": "5.74.9", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 942284dd67..95cfcc4ca6 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.74.7", + "version": "5.74.9", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 13eb3f1282..9b8123ee36 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.74.8", + "version": "5.74.9", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 2f6c1f474b..3d4cc403f9 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.74.8", + "version": "5.74.9", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 028bf36d45..ed9a48aaf8 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.74.8", + "version": "5.74.9", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 8d325853ce..1a972e1bff 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.74.8", + "version": "5.74.9", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 1b7599b26d..9cf7b2615a 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.74.7", + "version": "5.74.9", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index c4cd4d4cf2..fe61f2c91c 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.74.7", + "version": "5.74.9", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index fc82a5bb69..de9751a69e 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.74.7", + "version": "5.74.9", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 8f8fd13c3c..d1d7b26f1f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.74.7", + "version": "5.74.9", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 8f7de3199a..cdbc067abf 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.74.7", + "version": "5.74.9", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 66d1a87fc5..1f1aa9a22d 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.74.7", + "version": "5.74.9", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index d7cdce9453..0a07cf3629 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.74.8", + "version": "5.74.9", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index ebd3c583f6..8f1d74914c 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.74.8", + "version": "5.74.9", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From e786913dbf053f38a5709998b52802f830c09d38 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Tue, 29 Apr 2025 20:26:12 +0900 Subject: [PATCH 032/432] test(solid-query): simplify type inference tests in useQueryOptions (#9080) --- .../src/__tests__/useQueryOptions.test-d.tsx | 74 +++++++++---------- 1 file changed, 34 insertions(+), 40 deletions(-) diff --git a/packages/solid-query/src/__tests__/useQueryOptions.test-d.tsx b/packages/solid-query/src/__tests__/useQueryOptions.test-d.tsx index e4aee2be37..d0f4d60446 100644 --- a/packages/solid-query/src/__tests__/useQueryOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/useQueryOptions.test-d.tsx @@ -8,8 +8,6 @@ import type { UndefinedInitialDataInfiniteOptions, } from '../infiniteQueryOptions' -const doNotRun = (_callback: () => void) => {} - describe('infiniteQueryOptions', () => { it('should infer defined types', () => { const options = infiniteQueryOptions({ @@ -23,27 +21,25 @@ describe('infiniteQueryOptions', () => { initialPageParam: 0, }) - doNotRun(() => { - expectTypeOf(useInfiniteQuery(() => options).data).toEqualTypeOf< - InfiniteData<{ wow: boolean }, unknown> - >() + expectTypeOf(useInfiniteQuery(() => options).data).toEqualTypeOf< + InfiniteData<{ wow: boolean }, unknown> + >() - expectTypeOf(options).toMatchTypeOf< - ReturnType< - DefinedInitialDataInfiniteOptions< - { wow: boolean }, - Error, - InfiniteData<{ wow: boolean }, unknown>, - Array, - number | undefined - > + expectTypeOf(options).toMatchTypeOf< + ReturnType< + DefinedInitialDataInfiniteOptions< + { wow: boolean }, + Error, + InfiniteData<{ wow: boolean }, unknown>, + Array, + number | undefined > - >() + > + >() - expectTypeOf(options.queryKey[dataTagSymbol]).toEqualTypeOf< - InfiniteData<{ wow: boolean }> - >() - }) + expectTypeOf(options.queryKey[dataTagSymbol]).toEqualTypeOf< + InfiniteData<{ wow: boolean }> + >() }) it('should work without defined types', () => { @@ -54,28 +50,26 @@ describe('infiniteQueryOptions', () => { initialPageParam: 0, }) - doNotRun(() => { - expectTypeOf(() => useInfiniteQuery(() => options).data).toEqualTypeOf< - () => InfiniteData<{ wow: boolean }, unknown> | undefined - >() + expectTypeOf(() => useInfiniteQuery(() => options).data).toEqualTypeOf< + () => InfiniteData<{ wow: boolean }, unknown> | undefined + >() - expectTypeOf(options).toMatchTypeOf< - ReturnType< - UndefinedInitialDataInfiniteOptions< - { wow: boolean }, - Error, - InfiniteData<{ wow: boolean }, unknown>, - Array, - number - > + expectTypeOf(options).toMatchTypeOf< + ReturnType< + UndefinedInitialDataInfiniteOptions< + { wow: boolean }, + Error, + InfiniteData<{ wow: boolean }, unknown>, + Array, + number > - >() + > + >() - expectTypeOf(options.queryKey[dataTagSymbol]).toEqualTypeOf< - InfiniteData<{ - wow: boolean - }> - >() - }) + expectTypeOf(options.queryKey[dataTagSymbol]).toEqualTypeOf< + InfiniteData<{ + wow: boolean + }> + >() }) }) From eb5816eee240b6a78bfbc9884bc0fcf0edbf5cbd Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Tue, 29 Apr 2025 23:06:51 +0900 Subject: [PATCH 033/432] test(solid-query): use fake timers for useMutation.test.tsx (#9081) --- .../src/__tests__/useMutation.test.tsx | 134 +++++++++--------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index 4c23bf383e..d1d4a8a579 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -1,11 +1,11 @@ -import { describe, expect, it, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { ErrorBoundary, createEffect, createRenderEffect, createSignal, } from 'solid-js' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { fireEvent, render } from '@solidjs/testing-library' import { MutationCache, QueryCache, QueryClientProvider, useMutation } from '..' import { createQueryClient, @@ -17,6 +17,14 @@ import { import type { UseMutationResult } from '../types' describe('useMutation', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const mutationCache = new MutationCache() const queryClient = createQueryClient({ queryCache, mutationCache }) @@ -46,15 +54,14 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByRole('heading').textContent).toBe('mutation') }) fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - await waitFor(() => { - expect(rendered.getByRole('heading').textContent).toBe('empty') - }) + await vi.waitFor(() => {}) + expect(rendered.getByRole('heading').textContent).toBe('empty') }) it('should be able to reset `error`', async () => { @@ -86,13 +93,11 @@ describe('useMutation', () => { )) - await waitFor(() => { - expect(rendered.queryByRole('heading')).toBeNull() - }) + expect(rendered.queryByRole('heading')).toBeNull() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByRole('heading').textContent).toBe( 'Expected mock error. All is well!', ) @@ -100,7 +105,7 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByRole('heading')).toBeNull() }) @@ -150,11 +155,11 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByRole('heading').textContent).toBe('3') }) - await waitFor(() => { + await vi.waitFor(() => { expect(onSuccessMock).toHaveBeenCalledTimes(3) }) @@ -162,7 +167,7 @@ describe('useMutation', () => { expect(onSuccessMock).toHaveBeenCalledWith(2) expect(onSuccessMock).toHaveBeenCalledWith(3) - await waitFor(() => { + await vi.waitFor(() => { expect(onSettledMock).toHaveBeenCalledTimes(3) }) @@ -177,14 +182,11 @@ describe('useMutation', () => { const mutateFn = vi.fn<(value: Value) => Promise>() - mutateFn.mockImplementationOnce(() => { - return Promise.reject(new Error('Error test Jonas')) - }) + mutateFn.mockImplementationOnce(() => + Promise.reject(new Error('Error test Jonas')), + ) - mutateFn.mockImplementation(async (value) => { - await sleep(10) - return Promise.resolve(value) - }) + mutateFn.mockImplementation((value) => sleep(10).then(() => value)) function Page() { const mutation = useMutation(() => ({ @@ -215,20 +217,22 @@ describe('useMutation', () => { )) - await waitFor(() => rendered.getByText('Data')) + rendered.getByText('Data') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => rendered.getByText('Data')) - await waitFor(() => rendered.getByText('Status error')) - await waitFor(() => rendered.getByText('Failed 1 times')) - await waitFor(() => rendered.getByText('Failed because Error test Jonas')) + rendered.getByText('Data') + await vi.waitFor(() => rendered.getByText('Status error')) + await vi.waitFor(() => rendered.getByText('Failed 1 times')) + await vi.waitFor(() => + rendered.getByText('Failed because Error test Jonas'), + ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => rendered.getByText('Status pending')) - await waitFor(() => rendered.getByText('Status success')) - await waitFor(() => rendered.getByText('Data 2')) - await waitFor(() => rendered.getByText('Failed 0 times')) - await waitFor(() => rendered.getByText('Failed because null')) + await vi.waitFor(() => rendered.getByText('Status pending')) + await vi.waitFor(() => rendered.getByText('Status success')) + await vi.waitFor(() => rendered.getByText('Data 2')) + await vi.waitFor(() => rendered.getByText('Failed 0 times')) + await vi.waitFor(() => rendered.getByText('Failed because null')) }) it('should be able to call `onError` and `onSettled` after each failed mutate', async () => { @@ -280,11 +284,11 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByRole('heading').textContent).toBe('3') }) - await waitFor(() => { + await vi.waitFor(() => { expect(onErrorMock).toHaveBeenCalledTimes(3) }) expect(onErrorMock).toHaveBeenCalledWith( @@ -297,7 +301,7 @@ describe('useMutation', () => { 'Expected mock error. All is well! 3', ) - await waitFor(() => { + await vi.waitFor(() => { expect(onSettledMock).toHaveBeenCalledTimes(3) }) expect(onSettledMock).toHaveBeenCalledWith( @@ -351,7 +355,7 @@ describe('useMutation', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(10) expect(callbacks).toEqual([ 'useMutation.onSuccess', @@ -367,7 +371,7 @@ describe('useMutation', () => { function Page() { const mutation = useMutation(() => ({ - mutationFn: async (_text: string) => Promise.reject(new Error('oops')), + mutationFn: (_text: string) => Promise.reject(new Error('oops')), onError: () => { callbacks.push('useMutation.onError') @@ -404,7 +408,7 @@ describe('useMutation', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(10) expect(callbacks).toEqual([ 'useMutation.onError', @@ -419,10 +423,7 @@ describe('useMutation', () => { const key = queryKey() queryClient.setMutationDefaults(key, { - mutationFn: async (text: string) => { - await sleep(10) - return text - }, + mutationFn: (text: string) => sleep(10).then(() => text), }) const states: Array> = [] @@ -452,7 +453,7 @@ describe('useMutation', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(20) expect(states.length).toBe(3) expect(states[0]).toMatchObject({ data: undefined, isPending: false }) @@ -489,7 +490,7 @@ describe('useMutation', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(20) expect(count).toBe(2) }) @@ -529,34 +530,27 @@ describe('useMutation', () => { )) - await waitFor(() => { - expect( - rendered.getByText('error: null, status: idle, isPaused: false'), - ).toBeInTheDocument() - }) + expect( + rendered.getByText('error: null, status: idle, isPaused: false'), + ).toBeInTheDocument() window.dispatchEvent(new Event('offline')) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => { - expect( - rendered.getByText('error: null, status: pending, isPaused: true'), - ).toBeInTheDocument() - }) + expect( + rendered.getByText('error: null, status: pending, isPaused: true'), + ).toBeInTheDocument() expect(count).toBe(0) onlineMock.mockRestore() window.dispatchEvent(new Event('online')) - await sleep(100) - - await waitFor(() => { - expect( - rendered.getByText('error: oops, status: error, isPaused: false'), - ).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(5) + expect( + rendered.getByText('error: oops, status: error, isPaused: false'), + ).toBeInTheDocument() expect(count).toBe(2) }) @@ -607,6 +601,7 @@ describe('useMutation', () => { onlineMock.mockRestore() window.dispatchEvent(new Event('online')) + await vi.advanceTimersByTimeAsync(10) await rendered.findByText('data: 1, status: success, isPaused: false') expect(onMutate).toHaveBeenCalledTimes(1) @@ -661,6 +656,7 @@ describe('useMutation', () => { onlineMock.mockReturnValue(true) window.dispatchEvent(new Event('online')) + await vi.advanceTimersByTimeAsync(10) await rendered.findByText('data: 1, status: success, isPaused: false') onlineMock.mockRestore() @@ -707,7 +703,7 @@ describe('useMutation', () => { )) - await sleep(50) + await vi.advanceTimersByTimeAsync(16) expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -738,7 +734,7 @@ describe('useMutation', () => { onlineMock.mockRestore() window.dispatchEvent(new Event('online')) - await sleep(50) + await vi.advanceTimersByTimeAsync(1) expect(states.length).toBe(6) expect(states[4]).toMatchObject({ @@ -818,7 +814,7 @@ describe('useMutation', () => { fireEvent.click(rendered.getByText('mutate')) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('error')).not.toBeNull() }) @@ -868,13 +864,13 @@ describe('useMutation', () => { // first error goes to component fireEvent.click(rendered.getByText('mutate')) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('mock error')).not.toBeNull() }) // second error goes to boundary fireEvent.click(rendered.getByText('mutate')) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('error boundary')).not.toBeNull() }) @@ -930,7 +926,7 @@ describe('useMutation', () => { fireEvent.click(rendered.getByText('succeed')) fireEvent.click(rendered.getByText('error')) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('successTest')).not.toBeNull() expect(rendered.queryByText('errorTest')).not.toBeNull() }) @@ -1003,7 +999,7 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await waitFor(() => { + await vi.waitFor(() => { expect( queryClient.getMutationCache().findAll({ mutationKey: mutationKey }), ).toHaveLength(0) @@ -1065,6 +1061,7 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(10) await rendered.findByText('data: result2, status: success') expect(count).toBe(2) @@ -1114,6 +1111,7 @@ describe('useMutation', () => { rendered.getByRole('button', { name: /mutate/i }).click() + await vi.advanceTimersByTimeAsync(10) await rendered.findByText('status: error') expect(onError).toHaveBeenCalledWith(error, 'todo', undefined) @@ -1154,6 +1152,7 @@ describe('useMutation', () => { rendered.getByRole('button', { name: /mutate/i }).click() + await vi.advanceTimersByTimeAsync(10) await rendered.findByText('error: mutateFnError, status: error') }) @@ -1194,6 +1193,7 @@ describe('useMutation', () => { rendered.getByRole('button', { name: /mutate/i }).click() + await vi.advanceTimersByTimeAsync(10) await rendered.findByText('error: mutateFnError, status: error') expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined) From f9e4f6ba1bcc8813e2b2e013a257cb192b2a17b6 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Tue, 29 Apr 2025 16:45:09 +0200 Subject: [PATCH 034/432] fix(angular-query): align query options with react-query (#9084) --- .../angular-query-experimental/src/index.ts | 55 +++++++++--- .../src/infinite-query-options.ts | 87 ++++++++++++++++--- .../src/query-options.ts | 76 +++++++++++++--- .../angular-query-experimental/src/types.ts | 5 -- 4 files changed, 186 insertions(+), 37 deletions(-) diff --git a/packages/angular-query-experimental/src/index.ts b/packages/angular-query-experimental/src/index.ts index da68067d33..360be005e6 100644 --- a/packages/angular-query-experimental/src/index.ts +++ b/packages/angular-query-experimental/src/index.ts @@ -8,24 +8,57 @@ export * from './types' export type { DefinedInitialDataOptions, UndefinedInitialDataOptions, + UnusedSkipTokenOptions, } from './query-options' export { queryOptions } from './query-options' -export { mutationOptions } from './mutation-options' + export type { CreateMutationOptions } from './mutation-options' +export { mutationOptions } from './mutation-options' export type { DefinedInitialDataInfiniteOptions, UndefinedInitialDataInfiniteOptions, + UnusedSkipTokenInfiniteOptions, } from './infinite-query-options' export { infiniteQueryOptions } from './infinite-query-options' -export * from './inject-infinite-query' -export * from './inject-is-fetching' -export * from './inject-is-mutating' -export * from './inject-is-restoring' -export * from './inject-mutation' -export * from './inject-mutation-state' -export * from './inject-queries' -export * from './inject-query' -export * from './inject-query-client' -export * from './providers' +export type { InjectInfiniteQueryOptions } from './inject-infinite-query' +export { injectInfiniteQuery } from './inject-infinite-query' + +export type { InjectIsFetchingOptions } from './inject-is-fetching' +export { injectIsFetching } from './inject-is-fetching' + +export type { InjectIsMutatingOptions } from './inject-is-mutating' +export { injectIsMutating } from './inject-is-mutating' + +export { injectIsRestoring, provideIsRestoring } from './inject-is-restoring' + +export type { InjectMutationOptions } from './inject-mutation' +export { injectMutation } from './inject-mutation' + +export type { InjectMutationStateOptions } from './inject-mutation-state' +export { injectMutationState } from './inject-mutation-state' + +export type { QueriesOptions, QueriesResults } from './inject-queries' +export { injectQueries } from './inject-queries' + +export type { InjectQueryOptions } from './inject-query' +export { injectQuery } from './inject-query' + +export { injectQueryClient } from './inject-query-client' + +export type { + DeveloperToolsFeature, + DevtoolsOptions, + PersistQueryClientFeature, + QueryFeature, + QueryFeatureKind, + QueryFeatures, +} from './providers' +export { + provideQueryClient, + provideTanStackQuery, + queryFeature, + queryFeatures, + withDevtools, +} from './providers' diff --git a/packages/angular-query-experimental/src/infinite-query-options.ts b/packages/angular-query-experimental/src/infinite-query-options.ts index 266df37910..5b8844c78f 100644 --- a/packages/angular-query-experimental/src/infinite-query-options.ts +++ b/packages/angular-query-experimental/src/infinite-query-options.ts @@ -2,13 +2,13 @@ import type { DataTag, DefaultError, InfiniteData, + InitialDataFunction, + OmitKeyof, QueryKey, + SkipToken, } from '@tanstack/query-core' -import type { CreateInfiniteQueryOptions, NonUndefinedGuard } from './types' +import type { CreateInfiniteQueryOptions } from './types' -/** - * @public - */ export type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, @@ -23,12 +23,46 @@ export type UndefinedInitialDataInfiniteOptions< TQueryKey, TPageParam > & { - initialData?: undefined + initialData?: + | undefined + | NonUndefinedGuard> + | InitialDataFunction< + NonUndefinedGuard> + > } -/** - * @public - */ +export type UnusedSkipTokenInfiniteOptions< + TQueryFnData, + TError = DefaultError, + TData = InfiniteData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = unknown, +> = OmitKeyof< + CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey, + TPageParam + >, + 'queryFn' +> & { + queryFn?: Exclude< + CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey, + TPageParam + >['queryFn'], + SkipToken | undefined + > +} + +type NonUndefinedGuard = T extends undefined ? never : T + export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, @@ -46,6 +80,7 @@ export type DefinedInitialDataInfiniteOptions< initialData: | NonUndefinedGuard> | (() => NonUndefinedGuard>) + | undefined } /** @@ -77,7 +112,39 @@ export function infiniteQueryOptions< TQueryKey, TPageParam > & { - queryKey: DataTag> + queryKey: DataTag, TError> +} + +/** + * Allows to share and re-use infinite query options in a type-safe way. + * + * The `queryKey` will be tagged with the type from `queryFn`. + * @param options - The infinite query options to tag with the type from `queryFn`. + * @returns The tagged infinite query options. + * @public + */ +export function infiniteQueryOptions< + TQueryFnData, + TError = DefaultError, + TData = InfiniteData, + TQueryKey extends QueryKey = QueryKey, + TPageParam = unknown, +>( + options: UnusedSkipTokenInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + >, +): UnusedSkipTokenInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam +> & { + queryKey: DataTag, TError> } /** @@ -109,7 +176,7 @@ export function infiniteQueryOptions< TQueryKey, TPageParam > & { - queryKey: DataTag> + queryKey: DataTag, TError> } /** diff --git a/packages/angular-query-experimental/src/query-options.ts b/packages/angular-query-experimental/src/query-options.ts index 3dc91a6d0a..2c48f49711 100644 --- a/packages/angular-query-experimental/src/query-options.ts +++ b/packages/angular-query-experimental/src/query-options.ts @@ -2,34 +2,55 @@ import type { DataTag, DefaultError, InitialDataFunction, + OmitKeyof, + QueryFunction, QueryKey, + SkipToken, } from '@tanstack/query-core' -import type { CreateQueryOptions, NonUndefinedGuard } from './types' +import type { CreateQueryOptions } from './types' -/** - * @public - */ export type UndefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = CreateQueryOptions & { - initialData?: undefined | InitialDataFunction> + initialData?: + | undefined + | InitialDataFunction> + | NonUndefinedGuard } -/** - * @public - */ +export type UnusedSkipTokenOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> = OmitKeyof< + CreateQueryOptions, + 'queryFn' +> & { + queryFn?: Exclude< + CreateQueryOptions['queryFn'], + SkipToken | undefined + > +} + +type NonUndefinedGuard = T extends undefined ? never : T + export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = CreateQueryOptions & { +> = Omit< + CreateQueryOptions, + 'queryFn' +> & { initialData: | NonUndefinedGuard | (() => NonUndefinedGuard) + queryFn?: QueryFunction } /** @@ -62,7 +83,40 @@ export function queryOptions< >( options: DefinedInitialDataOptions, ): DefinedInitialDataOptions & { - queryKey: DataTag + queryKey: DataTag +} + +/** + * Allows to share and re-use query options in a type-safe way. + * + * The `queryKey` will be tagged with the type from `queryFn`. + * + * **Example** + * + * ```ts + * const { queryKey } = queryOptions({ + * queryKey: ['key'], + * queryFn: () => Promise.resolve(5), + * // ^? Promise + * }) + * + * const queryClient = new QueryClient() + * const data = queryClient.getQueryData(queryKey) + * // ^? number | undefined + * ``` + * @param options - The query options to tag with the type from `queryFn`. + * @returns The tagged query options. + * @public + */ +export function queryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +>( + options: UnusedSkipTokenOptions, +): UnusedSkipTokenOptions & { + queryKey: DataTag } /** @@ -95,7 +149,7 @@ export function queryOptions< >( options: UndefinedInitialDataOptions, ): UndefinedInitialDataOptions & { - queryKey: DataTag + queryKey: DataTag } /** diff --git a/packages/angular-query-experimental/src/types.ts b/packages/angular-query-experimental/src/types.ts index 5c0e096457..eb65ae5b56 100644 --- a/packages/angular-query-experimental/src/types.ts +++ b/packages/angular-query-experimental/src/types.ts @@ -308,8 +308,3 @@ export type CreateMutationResult< >, > = BaseMutationNarrowing & MapToSignals> - -/** - * @public - */ -export type NonUndefinedGuard = T extends undefined ? never : T From a507c5f3f55e33343c2ce5dd6947c10dd006bdd5 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 29 Apr 2025 14:49:09 +0000 Subject: [PATCH 035/432] release: v5.74.10 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- 22 files changed, 29 insertions(+), 29 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 1c609858cf..8ad5138cc8 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 6c58125de0..d45732f7ec 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-sync-storage-persister": "^5.74.9", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 79639ef8fa..790cfd9061 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 4f29a06b1e..5f886c572f 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.74.9", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-devtools-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 445fef726d..a80c4cb51b 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 946409c232..2b5148ac57 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index a3cabda7a5..d064e6bb31 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 8e99822523..8bdc114963 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index d3aaa4c74b..39d62eab47 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 663dd320bb..a0bf864d10 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 5820a7b200..549f6ef04b 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.9", + "@tanstack/angular-query-experimental": "^5.74.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 792ee6b3b9..69a88fb6b2 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.74.9", - "@tanstack/solid-query-devtools": "^5.74.9", + "@tanstack/solid-query": "^5.74.10", + "@tanstack/solid-query-devtools": "^5.74.10", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index e61fdc784b..a9c3f7844e 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.9", - "@tanstack/solid-query-devtools": "^5.74.9", + "@tanstack/solid-query": "^5.74.10", + "@tanstack/solid-query-devtools": "^5.74.10", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 11f487e7bd..cc5422fead 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.9", - "@tanstack/solid-query-devtools": "^5.74.9", + "@tanstack/solid-query": "^5.74.10", + "@tanstack/solid-query-devtools": "^5.74.10", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index fd86803014..b012b4d86b 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.9", - "@tanstack/solid-query-devtools": "^5.74.9", + "@tanstack/solid-query": "^5.74.10", + "@tanstack/solid-query-devtools": "^5.74.10", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index cde2afc419..f3ac768876 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.9", - "@tanstack/solid-query-devtools": "^5.74.9", + "@tanstack/solid-query": "^5.74.10", + "@tanstack/solid-query-devtools": "^5.74.10", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index a940eea9a8..dd541496e3 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.74.9", - "@tanstack/solid-query-devtools": "^5.74.9", + "@tanstack/solid-query": "^5.74.10", + "@tanstack/solid-query-devtools": "^5.74.10", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 66e079669d..75c9157b6f 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.74.9", + "version": "5.74.10", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 044e94c8b5..c5dc5c1dc3 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.74.9", + "version": "5.74.10", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 9cf7b2615a..1131001f88 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.74.9", + "version": "5.74.10", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index fe61f2c91c..7e067061c0 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.74.9", + "version": "5.74.10", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index de9751a69e..69422ff6d6 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.74.9", + "version": "5.74.10", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", From 3111e8afd317348af30221b3d3c362afcc9931b3 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Tue, 29 Apr 2025 23:58:53 +0900 Subject: [PATCH 036/432] test(react-query): use test-d file for useQuery (#9082) --- .../src/__tests__/useQuery.test-d.tsx | 394 +++++++++++++----- .../src/__tests__/useQuery.test.tsx | 170 +------- 2 files changed, 285 insertions(+), 279 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index 505344d6e8..c7feaf3c86 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -1,149 +1,321 @@ import { describe, expectTypeOf, it } from 'vitest' import { useQuery } from '../useQuery' import { queryOptions } from '../queryOptions' -import type { OmitKeyof } from '..' -import type { UseQueryOptions } from '../types' - -describe('initialData', () => { - describe('Config object overload', () => { - it('TData should always be defined when initialData is provided as an object', () => { - const { data } = useQuery({ - queryKey: ['key'], - queryFn: () => ({ wow: true }), - initialData: { wow: true }, - }) +import { queryKey } from './utils' +import type { OmitKeyof, QueryFunction, UseQueryOptions } from '..' + +describe('useQuery', () => { + const key = queryKey() + + // unspecified query function should default to unknown + const noQueryFn = useQuery({ queryKey: key }) + expectTypeOf(noQueryFn.data).toEqualTypeOf() + expectTypeOf(noQueryFn.error).toEqualTypeOf() + + // it should infer the result type from the query function + const fromQueryFn = useQuery({ queryKey: key, queryFn: () => 'test' }) + expectTypeOf(fromQueryFn.data).toEqualTypeOf() + expectTypeOf(fromQueryFn.error).toEqualTypeOf() + expectTypeOf(fromQueryFn.promise).toEqualTypeOf>() + + // it should be possible to specify the result type + const withResult = useQuery({ + queryKey: key, + queryFn: () => 'test', + }) + expectTypeOf(withResult.data).toEqualTypeOf() + expectTypeOf(withResult.error).toEqualTypeOf() + + // it should be possible to specify the error type + const withError = useQuery({ + queryKey: key, + queryFn: () => 'test', + }) + expectTypeOf(withError.data).toEqualTypeOf() + expectTypeOf(withError.error).toEqualTypeOf() + + // it should provide the result type in the configuration + useQuery({ + queryKey: [key], + queryFn: () => Promise.resolve(true), + }) + + // it should be possible to specify a union type as result type + const unionTypeSync = useQuery({ + queryKey: key, + queryFn: () => (Math.random() > 0.5 ? ('a' as const) : ('b' as const)), + }) + expectTypeOf(unionTypeSync.data).toEqualTypeOf<'a' | 'b' | undefined>() + const unionTypeAsync = useQuery<'a' | 'b'>({ + queryKey: key, + queryFn: () => Promise.resolve(Math.random() > 0.5 ? 'a' : 'b'), + }) + expectTypeOf(unionTypeAsync.data).toEqualTypeOf<'a' | 'b' | undefined>() + + // should error when the query function result does not match with the specified type + // @ts-expect-error + useQuery({ queryKey: key, queryFn: () => 'test' }) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + // it should infer the result type from a generic query function + function queryFn(): Promise { + return Promise.resolve({} as T) + } + + const fromGenericQueryFn = useQuery({ + queryKey: key, + queryFn: () => queryFn(), + }) + expectTypeOf(fromGenericQueryFn.data).toEqualTypeOf() + expectTypeOf(fromGenericQueryFn.error).toEqualTypeOf() + + const fromGenericOptionsQueryFn = useQuery({ + queryKey: key, + queryFn: () => queryFn(), + }) + expectTypeOf(fromGenericOptionsQueryFn.data).toEqualTypeOf< + string | undefined + >() + expectTypeOf(fromGenericOptionsQueryFn.error).toEqualTypeOf() + + type MyData = number + type MyQueryKey = readonly ['my-data', number] + + const getMyDataArrayKey: QueryFunction = ({ + queryKey: [, n], + }) => { + return Promise.resolve(n + 42) + } + + useQuery({ + queryKey: ['my-data', 100], + queryFn: getMyDataArrayKey, + }) + + const getMyDataStringKey: QueryFunction = (context) => { + expectTypeOf(context.queryKey).toEqualTypeOf<['1']>() + return Promise.resolve(Number(context.queryKey[0]) + 42) + } + + useQuery({ + queryKey: ['1'], + queryFn: getMyDataStringKey, + }) + + // it should handle query-functions that return Promise + useQuery({ + queryKey: key, + queryFn: () => fetch('return Promise').then((resp) => resp.json()), + }) + + // handles wrapped queries with custom fetcher passed as inline queryFn + const useWrappedQuery = < + TQueryKey extends [string, Record?], + TQueryFnData, + TError, + TData = TQueryFnData, + >( + qk: TQueryKey, + fetcher: ( + obj: TQueryKey[1], + token: string, + // return type must be wrapped with TQueryFnReturn + ) => Promise, + options?: OmitKeyof< + UseQueryOptions, + 'queryKey' | 'queryFn' | 'initialData' + >, + ) => + useQuery({ + queryKey: qk, + queryFn: () => fetcher(qk[1], 'token'), + ...options, }) + const testQuery = useWrappedQuery([''], () => Promise.resolve('1')) + expectTypeOf(testQuery.data).toEqualTypeOf() - it('TData should be defined when passed through queryOptions', () => { - const options = queryOptions({ - queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: { - wow: true, - }, - }) - const { data } = useQuery(options) + // handles wrapped queries with custom fetcher passed directly to useQuery + const useWrappedFuncStyleQuery = < + TQueryKey extends [string, Record?], + TQueryFnData, + TError, + TData = TQueryFnData, + >( + qk: TQueryKey, + fetcher: () => Promise, + options?: OmitKeyof< + UseQueryOptions, + 'queryKey' | 'queryFn' | 'initialData' + >, + ) => useQuery({ queryKey: qk, queryFn: fetcher, ...options }) + const testFuncStyle = useWrappedFuncStyleQuery([''], () => + Promise.resolve(true), + ) + expectTypeOf(testFuncStyle.data).toEqualTypeOf() - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + it('should return the correct states for a successful query', async () => { + const state = useQuery({ + queryKey: key, + queryFn: () => Promise.resolve('test'), }) - it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { - const options = queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(1), - }) + if (state.isPending) { + expectTypeOf(state.data).toEqualTypeOf() + expectTypeOf(state.error).toEqualTypeOf() + return pending + } - const query = useQuery({ - ...options, - select: (data) => data > 1, - }) + if (state.isLoadingError) { + expectTypeOf(state.data).toEqualTypeOf() + expectTypeOf(state.error).toEqualTypeOf() + return {state.error.message} + } - expectTypeOf(query.data).toEqualTypeOf() - }) + expectTypeOf(state.data).toEqualTypeOf() + expectTypeOf(state.error).toEqualTypeOf() + return {state.data} + }) + + describe('initialData', () => { + describe('Config object overload', () => { + it('TData should always be defined when initialData is provided as an object', () => { + const { data } = useQuery({ + queryKey: ['key'], + queryFn: () => ({ wow: true }), + initialData: { wow: true }, + }) - it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { - const { data } = useQuery({ - queryKey: ['key'], - queryFn: () => { - return { + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) + + it('TData should be defined when passed through queryOptions', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: { wow: true, - } - }, - initialData: () => ({ - wow: true, - }), + }, + }) + const { data } = useQuery(options) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - }) + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into useQuery', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + }) - it('TData should have undefined in the union when initialData is NOT provided', () => { - const { data } = useQuery({ - queryKey: ['key'], - queryFn: () => { - return { + const query = useQuery({ + ...options, + select: (data) => data > 1, + }) + + expectTypeOf(query.data).toEqualTypeOf() + }) + + it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { + const { data } = useQuery({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => ({ wow: true, - } - }, + }), + }) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() }) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() - }) + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = useQuery({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + }) - it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { - const { data } = useQuery({ - queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: () => undefined as { wow: boolean } | undefined, + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() }) - expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() - }) + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const { data } = useQuery({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + }) - it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { - const { data, isSuccess } = useQuery({ - queryKey: ['key'], - queryFn: () => { - return { - wow: true, - } - }, - initialData: () => undefined as { wow: boolean } | undefined, + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() }) - if (isSuccess) { - expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() - } - }) + it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { + const { data, isSuccess } = useQuery({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + }) - it('data should not have undefined when initialData is provided', () => { - const { data } = useQuery({ - queryKey: ['query-key'], - initialData: 42, + if (isSuccess) { + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + } }) - expectTypeOf(data).toEqualTypeOf() + it('data should not have undefined when initialData is provided', () => { + const { data } = useQuery({ + queryKey: ['query-key'], + initialData: 42, + }) + + expectTypeOf(data).toEqualTypeOf() + }) }) - }) - describe('custom hook', () => { - it('should allow custom hooks using UseQueryOptions', () => { - type Data = string + describe('custom hook', () => { + it('should allow custom hooks using UseQueryOptions', () => { + type Data = string - const useCustomQuery = ( - options?: OmitKeyof, 'queryKey' | 'queryFn'>, - ) => { - return useQuery({ - ...options, - queryKey: ['todos-key'], - queryFn: () => Promise.resolve('data'), - }) - } + const useCustomQuery = ( + options?: OmitKeyof, 'queryKey' | 'queryFn'>, + ) => { + return useQuery({ + ...options, + queryKey: ['todos-key'], + queryFn: () => Promise.resolve('data'), + }) + } - const { data } = useCustomQuery() + const { data } = useCustomQuery() - expectTypeOf(data).toEqualTypeOf() + expectTypeOf(data).toEqualTypeOf() + }) }) - }) - describe('structuralSharing', () => { - it('should restrict to same types', () => { - useQuery({ - queryKey: ['key'], - queryFn: () => 5, - structuralSharing: (_oldData, newData) => { - return newData - }, + describe('structuralSharing', () => { + it('should restrict to same types', () => { + useQuery({ + queryKey: ['key'], + queryFn: () => 5, + structuralSharing: (_oldData, newData) => { + return newData + }, + }) }) }) }) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index dfea088fd0..a172b70f57 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -1,4 +1,4 @@ -import { describe, expect, expectTypeOf, it, test, vi } from 'vitest' +import { describe, expect, it, test, vi } from 'vitest' import { act, fireEvent, render, waitFor } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' @@ -14,13 +14,7 @@ import { setActTimeout, sleep, } from './utils' -import type { - DefinedUseQueryResult, - OmitKeyof, - QueryFunction, - UseQueryOptions, - UseQueryResult, -} from '..' +import type { DefinedUseQueryResult, QueryFunction, UseQueryResult } from '..' import type { Mock } from 'vitest' describe('useQuery', () => { @@ -29,160 +23,6 @@ describe('useQuery', () => { queryCache, }) - it('should return the correct types', () => { - const key = queryKey() - - // @ts-expect-error - function Page() { - // unspecified query function should default to unknown - const noQueryFn = useQuery({ queryKey: key }) - expectTypeOf(noQueryFn.data).toEqualTypeOf() - expectTypeOf(noQueryFn.error).toEqualTypeOf() - - // it should infer the result type from the query function - const fromQueryFn = useQuery({ queryKey: key, queryFn: () => 'test' }) - expectTypeOf(fromQueryFn.data).toEqualTypeOf() - expectTypeOf(fromQueryFn.error).toEqualTypeOf() - expectTypeOf(fromQueryFn.promise).toEqualTypeOf>() - - // it should be possible to specify the result type - const withResult = useQuery({ - queryKey: key, - queryFn: () => 'test', - }) - expectTypeOf(withResult.data).toEqualTypeOf() - expectTypeOf(withResult.error).toEqualTypeOf() - - // it should be possible to specify the error type - const withError = useQuery({ - queryKey: key, - queryFn: () => 'test', - }) - expectTypeOf(withError.data).toEqualTypeOf() - expectTypeOf(withError.error).toEqualTypeOf() - - // it should provide the result type in the configuration - useQuery({ - queryKey: [key], - queryFn: () => Promise.resolve(true), - }) - - // it should be possible to specify a union type as result type - const unionTypeSync = useQuery({ - queryKey: key, - queryFn: () => (Math.random() > 0.5 ? ('a' as const) : ('b' as const)), - }) - expectTypeOf(unionTypeSync.data).toEqualTypeOf<'a' | 'b' | undefined>() - const unionTypeAsync = useQuery<'a' | 'b'>({ - queryKey: key, - queryFn: () => Promise.resolve(Math.random() > 0.5 ? 'a' : 'b'), - }) - expectTypeOf(unionTypeAsync.data).toEqualTypeOf<'a' | 'b' | undefined>() - - // should error when the query function result does not match with the specified type - // @ts-expect-error - useQuery({ queryKey: key, queryFn: () => 'test' }) - - // it should infer the result type from a generic query function - function queryFn(): Promise { - return Promise.resolve({} as T) - } - - const fromGenericQueryFn = useQuery({ - queryKey: key, - queryFn: () => queryFn(), - }) - expectTypeOf(fromGenericQueryFn.data).toEqualTypeOf() - expectTypeOf(fromGenericQueryFn.error).toEqualTypeOf() - - const fromGenericOptionsQueryFn = useQuery({ - queryKey: key, - queryFn: () => queryFn(), - }) - expectTypeOf(fromGenericOptionsQueryFn.data).toEqualTypeOf< - string | undefined - >() - expectTypeOf( - fromGenericOptionsQueryFn.error, - ).toEqualTypeOf() - - type MyData = number - type MyQueryKey = readonly ['my-data', number] - - const getMyDataArrayKey: QueryFunction = ({ - queryKey: [, n], - }) => { - return Promise.resolve(n + 42) - } - - useQuery({ - queryKey: ['my-data', 100], - queryFn: getMyDataArrayKey, - }) - - const getMyDataStringKey: QueryFunction = (context) => { - expectTypeOf(context.queryKey).toEqualTypeOf<['1']>() - return Promise.resolve(Number(context.queryKey[0]) + 42) - } - - useQuery({ - queryKey: ['1'], - queryFn: getMyDataStringKey, - }) - - // it should handle query-functions that return Promise - useQuery({ - queryKey: key, - queryFn: () => fetch('return Promise').then((resp) => resp.json()), - }) - - // handles wrapped queries with custom fetcher passed as inline queryFn - const useWrappedQuery = < - TQueryKey extends [string, Record?], - TQueryFnData, - TError, - TData = TQueryFnData, - >( - qk: TQueryKey, - fetcher: ( - obj: TQueryKey[1], - token: string, - // return type must be wrapped with TQueryFnReturn - ) => Promise, - options?: OmitKeyof< - UseQueryOptions, - 'queryKey' | 'queryFn' | 'initialData' - >, - ) => - useQuery({ - queryKey: qk, - queryFn: () => fetcher(qk[1], 'token'), - ...options, - }) - const testQuery = useWrappedQuery([''], () => Promise.resolve('1')) - expectTypeOf(testQuery.data).toEqualTypeOf() - - // handles wrapped queries with custom fetcher passed directly to useQuery - const useWrappedFuncStyleQuery = < - TQueryKey extends [string, Record?], - TQueryFnData, - TError, - TData = TQueryFnData, - >( - qk: TQueryKey, - fetcher: () => Promise, - options?: OmitKeyof< - UseQueryOptions, - 'queryKey' | 'queryFn' | 'initialData' - >, - ) => useQuery({ queryKey: qk, queryFn: fetcher, ...options }) - const testFuncStyle = useWrappedFuncStyleQuery([''], () => - Promise.resolve(true), - ) - expectTypeOf(testFuncStyle.data).toEqualTypeOf() - } - }) - // See https://github.com/tannerlinsley/react-query/issues/105 it('should allow to set default data value', async () => { const key = queryKey() @@ -226,19 +66,13 @@ describe('useQuery', () => { states.push(state) if (state.isPending) { - expectTypeOf(state.data).toEqualTypeOf() - expectTypeOf(state.error).toEqualTypeOf() return pending } if (state.isLoadingError) { - expectTypeOf(state.data).toEqualTypeOf() - expectTypeOf(state.error).toEqualTypeOf() return {state.error.message} } - expectTypeOf(state.data).toEqualTypeOf() - expectTypeOf(state.error).toEqualTypeOf() return {state.data} } From aa60c074620f4901e017a6ceb5a84dccb92dff12 Mon Sep 17 00:00:00 2001 From: Yoomin Kang Date: Wed, 30 Apr 2025 02:47:50 +0900 Subject: [PATCH 037/432] fix(angular-query): fix injectInfiniteQuery to narrow type after isSuccess (#9016) --- .../__tests__/inject-infinite-query.test-d.ts | 41 +++++++++++++++++++ .../angular-query-experimental/src/types.ts | 3 +- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts new file mode 100644 index 0000000000..4d4e28e6a8 --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts @@ -0,0 +1,41 @@ +import { TestBed } from '@angular/core/testing' +import { afterEach } from 'vitest' +import { provideExperimentalZonelessChangeDetection } from '@angular/core' +import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' +import { infiniteFetcher } from './test-utils' +import type { InfiniteData } from '@tanstack/query-core' + +describe('injectInfiniteQuery', () => { + let queryClient: QueryClient + + beforeEach(() => { + queryClient = new QueryClient() + vi.useFakeTimers() + TestBed.configureTestingModule({ + providers: [ + provideExperimentalZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + }) + + afterEach(() => { + vi.useRealTimers() + }) + + test('should narrow type after isSuccess', async () => { + const query = TestBed.runInInjectionContext(() => { + return injectInfiniteQuery(() => ({ + queryKey: ['infiniteQuery'], + queryFn: infiniteFetcher, + initialPageParam: 0, + getNextPageParam: () => 12, + })) + }) + + if (query.isSuccess()) { + const data = query.data() + expectTypeOf(data).toEqualTypeOf>() + } + }) +}) diff --git a/packages/angular-query-experimental/src/types.ts b/packages/angular-query-experimental/src/types.ts index eb65ae5b56..8cdb820965 100644 --- a/packages/angular-query-experimental/src/types.ts +++ b/packages/angular-query-experimental/src/types.ts @@ -145,7 +145,8 @@ export type DefinedCreateQueryResult< export type CreateInfiniteQueryResult< TData = unknown, TError = DefaultError, -> = MapToSignals> +> = BaseQueryNarrowing & + MapToSignals> /** * @public From 9883f1b43dda47f694ceceb4fc9d91a8e56af600 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 29 Apr 2025 17:52:40 +0000 Subject: [PATCH 038/432] release: v5.74.11 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- 43 files changed, 74 insertions(+), 74 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 8ad5138cc8..122d6f57ad 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index d45732f7ec..b0a9d402a8 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-sync-storage-persister": "^5.74.9", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 790cfd9061..f2a1ccb417 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 5f886c572f..b6d0d120ea 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.74.10", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-devtools-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index a80c4cb51b..14f53437c8 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 2b5148ac57..1cde959f67 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index d064e6bb31..5764849949 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 8bdc114963..6a1324ce12 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 39d62eab47..a22a432b66 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index a0bf864d10..1129d93eb8 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 549f6ef04b..4c3ef4a92f 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.10", + "@tanstack/angular-query-experimental": "^5.74.11", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 2746236f1c..7f3e7116d0 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 867662572c..c23d423879 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 01ed0141b1..2298a8030e 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index c62e0ab3a8..b017092dec 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.74.9", - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", - "@tanstack/react-query-persist-client": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query-persist-client": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 959c42a0b7..6705a9d370 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index f998dc06b6..08903bfe5a 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 9ea742f753..19699c1408 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index f8af104633..9d70793d76 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.74.9", - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", - "@tanstack/react-query-persist-client": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query-persist-client": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index ba01ed4e58..6d80f3f8f8 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index cb5eff38aa..48d3067855 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index aee21eae1a..cb3bdb30fa 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index f03fd6e7de..60510ed707 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", - "@tanstack/react-query-next-experimental": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query-next-experimental": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 846fb23128..d378b33774 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index bee280394e..776506f024 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-sync-storage-persister": "^5.74.9", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", - "@tanstack/react-query-persist-client": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query-persist-client": "^5.74.11", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 7efebe5b4c..0fbb18f0a9 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 4d69f73737..88b5bbf0a9 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 6b21c072b6..b2048ecbae 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 954f95630b..6b4510c4cb 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index cf3b39d086..61e91e8e7a 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 974ef16965..f7d4df611f 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 5c7f3dae59..ea92c796b2 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 4c24b07ace..c56743b809 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 0e69dcfc6a..fcf0404ea4 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 7e1c08567f..b02649710f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 59ccd6fdf6..099531c242 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 18e6ef4fff..b3b4d03bb3 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.9", - "@tanstack/react-query-devtools": "^5.74.9", + "@tanstack/react-query": "^5.74.11", + "@tanstack/react-query-devtools": "^5.74.11", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 75c9157b6f..907c464d31 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.74.10", + "version": "5.74.11", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index c5dc5c1dc3..0e6be5d28c 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.74.10", + "version": "5.74.11", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 9b8123ee36..9973d92a77 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.74.9", + "version": "5.74.11", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 3d4cc403f9..f03a6a418e 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.74.9", + "version": "5.74.11", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index ed9a48aaf8..1ec4d10227 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.74.9", + "version": "5.74.11", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 1a972e1bff..856ba54004 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.74.9", + "version": "5.74.11", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", From 7d25373b930410efc5d1096187c01aa7eeb7a98d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 03:01:24 +0000 Subject: [PATCH 039/432] chore(deps): update dependency vite to v6.2.7 [security] (#9090) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 1870 ++++++++++++++++++++++++------------------------ 1 file changed, 943 insertions(+), 927 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9bd065902c..ed65e18469 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,13 +45,13 @@ importers: version: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) '@tanstack/config': specifier: ^0.14.2 - version: 0.14.2(@types/node@22.14.1)(esbuild@0.25.2)(eslint@9.15.0(jiti@2.4.2))(rollup@4.39.0)(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.1)(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 '@types/node': specifier: ^22.9.3 - version: 22.14.1 + version: 22.15.3 '@types/react': specifier: ^19.0.1 version: 19.0.1 @@ -60,10 +60,10 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitest/coverage-istanbul': specifier: ^3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@vitest/eslint-plugin': specifier: ^1.1.36 - version: 1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -81,7 +81,7 @@ importers: version: 25.0.1 knip: specifier: ^5.50.2 - version: 5.50.2(@types/node@22.14.1)(typescript@5.8.3) + version: 5.50.2(@types/node@22.15.3)(typescript@5.8.3) nx: specifier: 20.7.2 version: 20.7.2 @@ -108,7 +108,7 @@ importers: version: 1.0.0 tsup: specifier: ^8.4.0 - version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) + version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) typescript: specifier: 5.8.3 version: 5.8.3 @@ -138,10 +138,10 @@ importers: version: typescript@5.7.2 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vitest: specifier: ^3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/angular/auto-refetching: dependencies: @@ -175,10 +175,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -218,10 +218,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -267,10 +267,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -316,10 +316,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -359,10 +359,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -405,10 +405,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -448,10 +448,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -494,10 +494,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -540,10 +540,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -586,10 +586,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -629,10 +629,10 @@ importers: devDependencies: '@angular/build': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -669,13 +669,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/auto-refetching: dependencies: @@ -737,13 +737,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/basic-graphql-request: dependencies: @@ -768,10 +768,10 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/chat: dependencies: @@ -790,10 +790,10 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.0.14 - version: 4.0.14(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) tailwindcss: specifier: ^4.0.14 version: 4.0.14 @@ -802,7 +802,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/default-query-function: dependencies: @@ -821,13 +821,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/devtools-panel: dependencies: @@ -846,13 +846,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/eslint-legacy: dependencies: @@ -886,13 +886,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/infinite-query-with-max-pages: dependencies: @@ -1056,7 +1056,7 @@ importers: version: link:../../../packages/react-query-persist-client msw: specifier: ^2.6.6 - version: 2.6.6(@types/node@22.14.1)(typescript@5.8.3) + version: 2.6.6(@types/node@22.15.3)(typescript@5.8.3) react: specifier: ^19.0.0 version: 19.0.0 @@ -1069,13 +1069,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/optimistic-updates-cache: dependencies: @@ -1178,13 +1178,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/prefetching: dependencies: @@ -1319,13 +1319,13 @@ importers: version: 1.2.3 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/rick-morty: dependencies: @@ -1362,13 +1362,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/shadow-dom: dependencies: @@ -1393,13 +1393,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/simple: dependencies: @@ -1418,13 +1418,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/star-wars: dependencies: @@ -1461,13 +1461,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/react/suspense: dependencies: @@ -1492,13 +1492,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/solid/astro: dependencies: @@ -1507,16 +1507,16 @@ importers: version: 0.9.4(prettier@3.5.3)(typescript@5.8.3) '@astrojs/node': specifier: ^9.1.3 - version: 9.1.3(astro@5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1)) + version: 9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1)) '@astrojs/solid-js': specifier: ^5.0.7 - version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(yaml@2.6.1) + version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(yaml@2.6.1) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7) + version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.39.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.40.1)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1525,7 +1525,7 @@ importers: version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 - version: 5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + version: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) solid-js: specifier: ^1.9.5 version: 1.9.5 @@ -1553,10 +1553,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) examples/solid/basic-graphql-request: dependencies: @@ -1581,10 +1581,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) examples/solid/default-query-function: dependencies: @@ -1603,10 +1603,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) examples/solid/simple: dependencies: @@ -1628,10 +1628,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) examples/solid/solid-start-streaming: dependencies: @@ -1643,7 +1643,7 @@ importers: version: 0.15.3(solid-js@1.9.5) '@solidjs/start': specifier: ^1.1.3 - version: 1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) + version: 1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1655,7 +1655,7 @@ importers: version: 1.9.5 vinxi: specifier: ^0.5.3 - version: 0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/auto-refetching: dependencies: @@ -1668,13 +1668,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1686,7 +1686,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/basic: dependencies: @@ -1705,13 +1705,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1723,7 +1723,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/load-more-infinite-scroll: dependencies: @@ -1736,13 +1736,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1754,7 +1754,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/optimistic-updates: dependencies: @@ -1767,13 +1767,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1785,7 +1785,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/playground: dependencies: @@ -1798,13 +1798,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1816,7 +1816,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/simple: dependencies: @@ -1829,7 +1829,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@tsconfig/svelte': specifier: ^5.0.4 version: 5.0.4 @@ -1844,7 +1844,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/ssr: dependencies: @@ -1857,13 +1857,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1875,7 +1875,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/svelte/star-wars: dependencies: @@ -1888,13 +1888,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) autoprefixer: specifier: ^10.4.20 version: 10.4.21(postcss@8.5.3) @@ -1915,7 +1915,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/vue/basic: dependencies: @@ -1931,13 +1931,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/vue/dependent-queries: dependencies: @@ -1950,13 +1950,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/vue/persister: dependencies: @@ -1981,13 +1981,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) examples/vue/simple: dependencies: @@ -2003,13 +2003,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) integrations/angular-cli-19: dependencies: @@ -2043,10 +2043,10 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.2.5 - version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) + version: 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': specifier: ^19.2.5 - version: 19.2.5(@types/node@22.14.1)(chokidar@4.0.3) + version: 19.2.5(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.2.4 version: 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) @@ -2120,7 +2120,7 @@ importers: version: link:../../packages/react-query-devtools '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) react: specifier: ^19.0.0 version: 19.0.0 @@ -2129,7 +2129,7 @@ importers: version: 19.0.0(react@19.0.0) vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) integrations/react-webpack-4: dependencies: @@ -2203,7 +2203,7 @@ importers: version: 5.6.3(webpack@5.98.0) webpack: specifier: ^5.96.1 - version: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + version: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 version: 5.1.4(webpack@5.98.0) @@ -2221,16 +2221,16 @@ importers: version: 1.9.5 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) integrations/svelte-vite: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@tanstack/svelte-query': specifier: workspace:* version: link:../../packages/svelte-query @@ -2242,7 +2242,7 @@ importers: version: 5.26.1 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) integrations/vue-vite: dependencies: @@ -2255,13 +2255,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vue-tsc: specifier: ^2.2.8 version: 2.2.8(typescript@5.8.3) @@ -2459,10 +2459,10 @@ importers: version: 2.2.1 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.2)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.3)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) packages/query-persist-client-core: dependencies: @@ -2510,7 +2510,7 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) eslint-plugin-react-compiler: specifier: 19.0.0-beta-df7b47d-20241124 version: 19.0.0-beta-df7b47d-20241124(eslint@9.15.0(jiti@2.4.2)) @@ -2544,7 +2544,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2562,7 +2562,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) next: specifier: ^15.1.2 version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) @@ -2590,7 +2590,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2615,10 +2615,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.2)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.3)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) packages/solid-query-devtools: dependencies: @@ -2637,10 +2637,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.2)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.3)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) packages/solid-query-persist-client: dependencies: @@ -2662,10 +2662,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.2)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.3)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) packages/svelte-query: dependencies: @@ -2678,10 +2678,10 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@testing-library/svelte': specifier: ^5.2.6 - version: 5.2.6(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.2.6(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1) @@ -2706,7 +2706,7 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query @@ -2731,13 +2731,13 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query '@testing-library/svelte': specifier: ^5.2.6 - version: 5.2.6(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + version: 5.2.6(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1) @@ -2765,7 +2765,7 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) '@vue/composition-api': specifier: 1.7.2 version: 1.7.2(vue@3.4.35(typescript@5.8.3)) @@ -2793,7 +2793,7 @@ importers: version: link:../vue-query '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^9.27.0 version: 9.27.0(eslint@9.15.0(jiti@2.4.2)) @@ -2802,7 +2802,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vue: specifier: ^3.4.27 version: 3.4.35(typescript@5.8.3) @@ -3109,6 +3109,10 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.8': resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} @@ -3125,8 +3129,8 @@ packages: resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.0': - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} + '@babel/generator@7.27.1': + resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.25.9': @@ -3176,8 +3180,8 @@ packages: resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} '@babel/helper-remap-async-to-generator@7.25.9': @@ -3200,12 +3204,12 @@ packages: resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.25.9': @@ -3224,8 +3228,8 @@ packages: resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.0': - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} + '@babel/parser@7.27.1': + resolution: {integrity: sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -3364,8 +3368,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3412,8 +3416,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3821,16 +3825,16 @@ packages: resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.0': - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} + '@babel/template@7.27.1': + resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.0': - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} + '@babel/traverse@7.27.1': + resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.0': - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} + '@babel/types@7.27.1': + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} '@bundled-es-modules/cookie@2.0.1': @@ -4207,8 +4211,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.2': - resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} + '@esbuild/aix-ppc64@0.25.3': + resolution: {integrity: sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -4231,8 +4235,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.2': - resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} + '@esbuild/android-arm64@0.25.3': + resolution: {integrity: sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -4255,8 +4259,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.2': - resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} + '@esbuild/android-arm@0.25.3': + resolution: {integrity: sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -4279,8 +4283,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.2': - resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} + '@esbuild/android-x64@0.25.3': + resolution: {integrity: sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -4303,8 +4307,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.2': - resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} + '@esbuild/darwin-arm64@0.25.3': + resolution: {integrity: sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -4327,8 +4331,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.2': - resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} + '@esbuild/darwin-x64@0.25.3': + resolution: {integrity: sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -4351,8 +4355,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.2': - resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} + '@esbuild/freebsd-arm64@0.25.3': + resolution: {integrity: sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -4375,8 +4379,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.2': - resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} + '@esbuild/freebsd-x64@0.25.3': + resolution: {integrity: sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -4399,8 +4403,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.2': - resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} + '@esbuild/linux-arm64@0.25.3': + resolution: {integrity: sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -4423,8 +4427,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.2': - resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} + '@esbuild/linux-arm@0.25.3': + resolution: {integrity: sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -4447,8 +4451,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.2': - resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} + '@esbuild/linux-ia32@0.25.3': + resolution: {integrity: sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -4471,8 +4475,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.2': - resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} + '@esbuild/linux-loong64@0.25.3': + resolution: {integrity: sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -4495,8 +4499,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.2': - resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} + '@esbuild/linux-mips64el@0.25.3': + resolution: {integrity: sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -4519,8 +4523,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.2': - resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} + '@esbuild/linux-ppc64@0.25.3': + resolution: {integrity: sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -4543,8 +4547,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.2': - resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} + '@esbuild/linux-riscv64@0.25.3': + resolution: {integrity: sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -4567,8 +4571,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.2': - resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} + '@esbuild/linux-s390x@0.25.3': + resolution: {integrity: sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -4591,8 +4595,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.2': - resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} + '@esbuild/linux-x64@0.25.3': + resolution: {integrity: sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -4609,8 +4613,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.2': - resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} + '@esbuild/netbsd-arm64@0.25.3': + resolution: {integrity: sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -4633,8 +4637,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.2': - resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} + '@esbuild/netbsd-x64@0.25.3': + resolution: {integrity: sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -4651,8 +4655,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.2': - resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} + '@esbuild/openbsd-arm64@0.25.3': + resolution: {integrity: sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -4675,8 +4679,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.2': - resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} + '@esbuild/openbsd-x64@0.25.3': + resolution: {integrity: sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -4699,8 +4703,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.2': - resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} + '@esbuild/sunos-x64@0.25.3': + resolution: {integrity: sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -4723,8 +4727,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.2': - resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} + '@esbuild/win32-arm64@0.25.3': + resolution: {integrity: sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -4747,8 +4751,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.2': - resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} + '@esbuild/win32-ia32@0.25.3': + resolution: {integrity: sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -4771,8 +4775,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.2': - resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} + '@esbuild/win32-x64@0.25.3': + resolution: {integrity: sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -6129,8 +6133,8 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.39.0': - resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==} + '@rollup/rollup-android-arm-eabi@4.40.1': + resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==} cpu: [arm] os: [android] @@ -6139,8 +6143,8 @@ packages: cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.39.0': - resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==} + '@rollup/rollup-android-arm64@4.40.1': + resolution: {integrity: sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==} cpu: [arm64] os: [android] @@ -6149,8 +6153,8 @@ packages: cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.39.0': - resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==} + '@rollup/rollup-darwin-arm64@4.40.1': + resolution: {integrity: sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==} cpu: [arm64] os: [darwin] @@ -6159,8 +6163,8 @@ packages: cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.39.0': - resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==} + '@rollup/rollup-darwin-x64@4.40.1': + resolution: {integrity: sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==} cpu: [x64] os: [darwin] @@ -6169,8 +6173,8 @@ packages: cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.39.0': - resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==} + '@rollup/rollup-freebsd-arm64@4.40.1': + resolution: {integrity: sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==} cpu: [arm64] os: [freebsd] @@ -6179,8 +6183,8 @@ packages: cpu: [x64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.39.0': - resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==} + '@rollup/rollup-freebsd-x64@4.40.1': + resolution: {integrity: sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==} cpu: [x64] os: [freebsd] @@ -6189,8 +6193,8 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.39.0': - resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==} + '@rollup/rollup-linux-arm-gnueabihf@4.40.1': + resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==} cpu: [arm] os: [linux] @@ -6199,8 +6203,8 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.39.0': - resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==} + '@rollup/rollup-linux-arm-musleabihf@4.40.1': + resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==} cpu: [arm] os: [linux] @@ -6209,8 +6213,8 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.39.0': - resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==} + '@rollup/rollup-linux-arm64-gnu@4.40.1': + resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==} cpu: [arm64] os: [linux] @@ -6219,8 +6223,8 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.39.0': - resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==} + '@rollup/rollup-linux-arm64-musl@4.40.1': + resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==} cpu: [arm64] os: [linux] @@ -6229,8 +6233,8 @@ packages: cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.39.0': - resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==} + '@rollup/rollup-linux-loongarch64-gnu@4.40.1': + resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==} cpu: [loong64] os: [linux] @@ -6239,8 +6243,8 @@ packages: cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': - resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': + resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==} cpu: [ppc64] os: [linux] @@ -6249,13 +6253,13 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.39.0': - resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==} + '@rollup/rollup-linux-riscv64-gnu@4.40.1': + resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.39.0': - resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==} + '@rollup/rollup-linux-riscv64-musl@4.40.1': + resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==} cpu: [riscv64] os: [linux] @@ -6264,8 +6268,8 @@ packages: cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.39.0': - resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==} + '@rollup/rollup-linux-s390x-gnu@4.40.1': + resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==} cpu: [s390x] os: [linux] @@ -6274,8 +6278,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.39.0': - resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==} + '@rollup/rollup-linux-x64-gnu@4.40.1': + resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==} cpu: [x64] os: [linux] @@ -6284,8 +6288,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.39.0': - resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==} + '@rollup/rollup-linux-x64-musl@4.40.1': + resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==} cpu: [x64] os: [linux] @@ -6294,8 +6298,8 @@ packages: cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.39.0': - resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==} + '@rollup/rollup-win32-arm64-msvc@4.40.1': + resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==} cpu: [arm64] os: [win32] @@ -6304,8 +6308,8 @@ packages: cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.39.0': - resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==} + '@rollup/rollup-win32-ia32-msvc@4.40.1': + resolution: {integrity: sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==} cpu: [ia32] os: [win32] @@ -6314,8 +6318,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.39.0': - resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==} + '@rollup/rollup-win32-x64-msvc@4.40.1': + resolution: {integrity: sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==} cpu: [x64] os: [win32] @@ -6891,8 +6895,8 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@22.14.1': - resolution: {integrity: sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==} + '@types/node@22.15.3': + resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -9243,8 +9247,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.25.2: - resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} + esbuild@0.25.3: + resolution: {integrity: sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==} engines: {node: '>=18'} hasBin: true @@ -9666,8 +9670,8 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + fdir@6.4.4: + resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -13553,8 +13557,8 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.39.0: - resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==} + rollup@4.40.1: + resolution: {integrity: sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -14482,8 +14486,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + tinyglobby@0.2.13: + resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} tinypool@1.0.2: @@ -15259,8 +15263,8 @@ packages: yaml: optional: true - vite@6.2.6: - resolution: {integrity: sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==} + vite@6.3.4: + resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -16005,13 +16009,13 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1)': + '@angular-devkit/build-angular@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(html-webpack-plugin@5.6.3(webpack@5.98.0(esbuild@0.25.1)))(jiti@2.4.2)(lightningcss@1.29.2)(tailwindcss@4.0.14)(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) '@angular-devkit/build-webpack': 0.1902.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.1)))(webpack@5.98.0(esbuild@0.25.1)) '@angular-devkit/core': 19.2.5(chokidar@4.0.3) - '@angular/build': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + '@angular/build': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) '@angular/compiler-cli': 19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3) '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -16024,7 +16028,7 @@ snapshots: '@babel/runtime': 7.26.10 '@discoveryjs/json-ext': 0.6.3 '@ngtools/webpack': 19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.1)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.1)) @@ -16125,7 +16129,7 @@ snapshots: '@angular/core': 19.2.4(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1)': + '@angular/build@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.2)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) @@ -16135,8 +16139,8 @@ snapshots: '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@inquirer/confirm': 5.1.6(@types/node@22.14.1) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) + '@inquirer/confirm': 5.1.6(@types/node@22.15.3) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) beasties: 0.2.0 browserslist: 4.24.4 esbuild: 0.25.1 @@ -16154,7 +16158,7 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.21 typescript: 5.8.3 - vite: 6.2.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: less: 4.2.2 @@ -16174,7 +16178,7 @@ snapshots: - tsx - yaml - '@angular/build@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.14.1)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1)': + '@angular/build@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(@angular/compiler@19.2.4)(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) @@ -16184,8 +16188,8 @@ snapshots: '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@inquirer/confirm': 5.1.6(@types/node@22.14.1) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) + '@inquirer/confirm': 5.1.6(@types/node@22.15.3) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1)) beasties: 0.2.0 browserslist: 4.24.4 esbuild: 0.25.1 @@ -16203,7 +16207,7 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.21 typescript: 5.8.3 - vite: 6.2.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: less: 4.2.2 @@ -16223,13 +16227,13 @@ snapshots: - tsx - yaml - '@angular/cli@19.2.5(@types/node@22.14.1)(chokidar@4.0.3)': + '@angular/cli@19.2.5(@types/node@22.15.3)(chokidar@4.0.3)': dependencies: '@angular-devkit/architect': 0.1902.5(chokidar@4.0.3) '@angular-devkit/core': 19.2.5(chokidar@4.0.3) '@angular-devkit/schematics': 19.2.5(chokidar@4.0.3) - '@inquirer/prompts': 7.3.2(@types/node@22.14.1) - '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@22.14.1)) + '@inquirer/prompts': 7.3.2(@types/node@22.15.3) + '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@22.15.3)) '@schematics/angular': 19.2.5(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 @@ -16396,10 +16400,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))': + '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))': dependencies: '@astrojs/internal-helpers': 0.6.1 - astro: 5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) send: 1.2.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -16409,11 +16413,11 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(yaml@2.6.1)': + '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(yaml@2.6.1)': dependencies: solid-js: 1.9.5 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -16429,9 +16433,9 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7)': + '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7)': dependencies: - astro: 5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) autoprefixer: 10.4.21(postcss@8.5.3) postcss: 8.5.3 postcss-load-config: 4.0.2(postcss@8.5.3) @@ -16451,16 +16455,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.39.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.40.1)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@vercel/edge': 1.2.1 - '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.39.0) + '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.1) '@vercel/routing-utils': 5.0.4 - astro: 5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) - esbuild: 0.25.2 - tinyglobby: 0.2.12 + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1) + esbuild: 0.25.3 + tinyglobby: 0.2.13 transitivePeerDependencies: - '@remix-run/react' - '@sveltejs/kit' @@ -16483,7 +16487,13 @@ snapshots: '@babel/code-frame@7.26.2': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -16492,15 +16502,15 @@ snapshots: '@babel/core@7.26.10': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -16512,15 +16522,15 @@ snapshots: '@babel/core@7.26.9': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -16531,23 +16541,23 @@ snapshots: '@babel/generator@7.26.10': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 - '@babel/generator@7.27.0': + '@babel/generator@7.27.1': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 '@babel/helper-compilation-targets@7.26.5': dependencies: @@ -16565,7 +16575,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.25.9 '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.27.1 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -16581,7 +16591,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.0 lodash.debounce: 4.0.8 resolve: 1.22.10 @@ -16590,19 +16600,19 @@ snapshots: '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color @@ -16610,8 +16620,8 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color @@ -16619,23 +16629,23 @@ snapshots: dependencies: '@babel/core': 7.26.9 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 - '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-plugin-utils@7.27.1': {} '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color @@ -16644,73 +16654,73 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 - '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} '@babel/helper-validator-option@7.25.9': {} '@babel/helper-wrap-function@7.25.9': dependencies: - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color '@babel/helpers@7.27.0': dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.27.0': + '@babel/parser@7.27.1': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) transitivePeerDependencies: @@ -16719,8 +16729,8 @@ snapshots: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color @@ -16728,7 +16738,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -16736,7 +16746,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.26.10) transitivePeerDependencies: - supports-color @@ -16744,19 +16754,19 @@ snapshots: '@babel/plugin-proposal-export-default-from@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.26.10) '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) transitivePeerDependencies: @@ -16769,130 +16779,130 @@ snapshots: '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color @@ -16900,7 +16910,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) transitivePeerDependencies: - supports-color @@ -16908,18 +16918,18 @@ snapshots: '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -16927,7 +16937,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -16936,9 +16946,9 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) - '@babel/traverse': 7.27.0 + '@babel/traverse': 7.27.1 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -16946,56 +16956,56 @@ snapshots: '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.27.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.1 '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.26.10) '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color @@ -17004,36 +17014,36 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.27.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17041,7 +17051,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17049,9 +17059,9 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color @@ -17059,7 +17069,7 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17067,34 +17077,34 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) transitivePeerDependencies: - supports-color @@ -17102,12 +17112,12 @@ snapshots: '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color @@ -17115,13 +17125,13 @@ snapshots: '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17130,19 +17140,19 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.10)': dependencies: @@ -17154,21 +17164,21 @@ snapshots: '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color @@ -17176,30 +17186,30 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 regenerator-transform: 0.15.2 '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-runtime@7.26.10(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.10) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.10) @@ -17210,12 +17220,12 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color @@ -17223,58 +17233,58 @@ snapshots: '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typeof-symbol@7.27.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) transitivePeerDependencies: - supports-color '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/preset-env@7.26.9(@babel/core@7.26.10)': dependencies: '@babel/compat-data': 7.26.8 '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.10) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.10) @@ -17347,21 +17357,21 @@ snapshots: '@babel/preset-flow@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.26.10) '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.27.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.27.1 esutils: 2.0.3 '@babel/preset-react@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.25.9 '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.10) @@ -17373,9 +17383,9 @@ snapshots: '@babel/preset-typescript@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.26.10) transitivePeerDependencies: @@ -17398,28 +17408,28 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.27.0': + '@babel/template@7.27.1': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 - '@babel/traverse@7.27.0': + '@babel/traverse@7.27.1': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.27.0': + '@babel/types@7.27.1': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 '@bundled-es-modules/cookie@2.0.1': dependencies: @@ -17818,7 +17828,7 @@ snapshots: '@esbuild/aix-ppc64@0.25.1': optional: true - '@esbuild/aix-ppc64@0.25.2': + '@esbuild/aix-ppc64@0.25.3': optional: true '@esbuild/android-arm64@0.20.2': @@ -17830,7 +17840,7 @@ snapshots: '@esbuild/android-arm64@0.25.1': optional: true - '@esbuild/android-arm64@0.25.2': + '@esbuild/android-arm64@0.25.3': optional: true '@esbuild/android-arm@0.20.2': @@ -17842,7 +17852,7 @@ snapshots: '@esbuild/android-arm@0.25.1': optional: true - '@esbuild/android-arm@0.25.2': + '@esbuild/android-arm@0.25.3': optional: true '@esbuild/android-x64@0.20.2': @@ -17854,7 +17864,7 @@ snapshots: '@esbuild/android-x64@0.25.1': optional: true - '@esbuild/android-x64@0.25.2': + '@esbuild/android-x64@0.25.3': optional: true '@esbuild/darwin-arm64@0.20.2': @@ -17866,7 +17876,7 @@ snapshots: '@esbuild/darwin-arm64@0.25.1': optional: true - '@esbuild/darwin-arm64@0.25.2': + '@esbuild/darwin-arm64@0.25.3': optional: true '@esbuild/darwin-x64@0.20.2': @@ -17878,7 +17888,7 @@ snapshots: '@esbuild/darwin-x64@0.25.1': optional: true - '@esbuild/darwin-x64@0.25.2': + '@esbuild/darwin-x64@0.25.3': optional: true '@esbuild/freebsd-arm64@0.20.2': @@ -17890,7 +17900,7 @@ snapshots: '@esbuild/freebsd-arm64@0.25.1': optional: true - '@esbuild/freebsd-arm64@0.25.2': + '@esbuild/freebsd-arm64@0.25.3': optional: true '@esbuild/freebsd-x64@0.20.2': @@ -17902,7 +17912,7 @@ snapshots: '@esbuild/freebsd-x64@0.25.1': optional: true - '@esbuild/freebsd-x64@0.25.2': + '@esbuild/freebsd-x64@0.25.3': optional: true '@esbuild/linux-arm64@0.20.2': @@ -17914,7 +17924,7 @@ snapshots: '@esbuild/linux-arm64@0.25.1': optional: true - '@esbuild/linux-arm64@0.25.2': + '@esbuild/linux-arm64@0.25.3': optional: true '@esbuild/linux-arm@0.20.2': @@ -17926,7 +17936,7 @@ snapshots: '@esbuild/linux-arm@0.25.1': optional: true - '@esbuild/linux-arm@0.25.2': + '@esbuild/linux-arm@0.25.3': optional: true '@esbuild/linux-ia32@0.20.2': @@ -17938,7 +17948,7 @@ snapshots: '@esbuild/linux-ia32@0.25.1': optional: true - '@esbuild/linux-ia32@0.25.2': + '@esbuild/linux-ia32@0.25.3': optional: true '@esbuild/linux-loong64@0.20.2': @@ -17950,7 +17960,7 @@ snapshots: '@esbuild/linux-loong64@0.25.1': optional: true - '@esbuild/linux-loong64@0.25.2': + '@esbuild/linux-loong64@0.25.3': optional: true '@esbuild/linux-mips64el@0.20.2': @@ -17962,7 +17972,7 @@ snapshots: '@esbuild/linux-mips64el@0.25.1': optional: true - '@esbuild/linux-mips64el@0.25.2': + '@esbuild/linux-mips64el@0.25.3': optional: true '@esbuild/linux-ppc64@0.20.2': @@ -17974,7 +17984,7 @@ snapshots: '@esbuild/linux-ppc64@0.25.1': optional: true - '@esbuild/linux-ppc64@0.25.2': + '@esbuild/linux-ppc64@0.25.3': optional: true '@esbuild/linux-riscv64@0.20.2': @@ -17986,7 +17996,7 @@ snapshots: '@esbuild/linux-riscv64@0.25.1': optional: true - '@esbuild/linux-riscv64@0.25.2': + '@esbuild/linux-riscv64@0.25.3': optional: true '@esbuild/linux-s390x@0.20.2': @@ -17998,7 +18008,7 @@ snapshots: '@esbuild/linux-s390x@0.25.1': optional: true - '@esbuild/linux-s390x@0.25.2': + '@esbuild/linux-s390x@0.25.3': optional: true '@esbuild/linux-x64@0.20.2': @@ -18010,7 +18020,7 @@ snapshots: '@esbuild/linux-x64@0.25.1': optional: true - '@esbuild/linux-x64@0.25.2': + '@esbuild/linux-x64@0.25.3': optional: true '@esbuild/netbsd-arm64@0.24.2': @@ -18019,7 +18029,7 @@ snapshots: '@esbuild/netbsd-arm64@0.25.1': optional: true - '@esbuild/netbsd-arm64@0.25.2': + '@esbuild/netbsd-arm64@0.25.3': optional: true '@esbuild/netbsd-x64@0.20.2': @@ -18031,7 +18041,7 @@ snapshots: '@esbuild/netbsd-x64@0.25.1': optional: true - '@esbuild/netbsd-x64@0.25.2': + '@esbuild/netbsd-x64@0.25.3': optional: true '@esbuild/openbsd-arm64@0.24.2': @@ -18040,7 +18050,7 @@ snapshots: '@esbuild/openbsd-arm64@0.25.1': optional: true - '@esbuild/openbsd-arm64@0.25.2': + '@esbuild/openbsd-arm64@0.25.3': optional: true '@esbuild/openbsd-x64@0.20.2': @@ -18052,7 +18062,7 @@ snapshots: '@esbuild/openbsd-x64@0.25.1': optional: true - '@esbuild/openbsd-x64@0.25.2': + '@esbuild/openbsd-x64@0.25.3': optional: true '@esbuild/sunos-x64@0.20.2': @@ -18064,7 +18074,7 @@ snapshots: '@esbuild/sunos-x64@0.25.1': optional: true - '@esbuild/sunos-x64@0.25.2': + '@esbuild/sunos-x64@0.25.3': optional: true '@esbuild/win32-arm64@0.20.2': @@ -18076,7 +18086,7 @@ snapshots: '@esbuild/win32-arm64@0.25.1': optional: true - '@esbuild/win32-arm64@0.25.2': + '@esbuild/win32-arm64@0.25.3': optional: true '@esbuild/win32-ia32@0.20.2': @@ -18088,7 +18098,7 @@ snapshots: '@esbuild/win32-ia32@0.25.1': optional: true - '@esbuild/win32-ia32@0.25.2': + '@esbuild/win32-ia32@0.25.3': optional: true '@esbuild/win32-x64@0.20.2': @@ -18100,7 +18110,7 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@esbuild/win32-x64@0.25.2': + '@esbuild/win32-x64@0.25.3': optional: true '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.2))': @@ -18455,9 +18465,9 @@ snapshots: '@expo/metro-config@0.19.4': dependencies: '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@expo/config': 10.0.5 '@expo/env': 0.4.0 '@expo/json-file': 9.0.0 @@ -18655,34 +18665,34 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@inquirer/checkbox@4.1.4(@types/node@22.14.1)': + '@inquirer/checkbox@4.1.4(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/type': 3.0.5(@types/node@22.15.3) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/confirm@5.1.6(@types/node@22.14.1)': + '@inquirer/confirm@5.1.6(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/confirm@5.1.8(@types/node@22.14.1)': + '@inquirer/confirm@5.1.8(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/core@10.1.9(@types/node@22.14.1)': + '@inquirer/core@10.1.9(@types/node@22.15.3)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/type': 3.0.5(@types/node@22.15.3) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -18690,97 +18700,97 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/editor@4.2.9(@types/node@22.14.1)': + '@inquirer/editor@4.2.9(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) external-editor: 3.1.0 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/expand@4.0.11(@types/node@22.14.1)': + '@inquirer/expand@4.0.11(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@inquirer/figures@1.0.11': {} - '@inquirer/input@4.1.8(@types/node@22.14.1)': + '@inquirer/input@4.1.8(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/number@3.0.11(@types/node@22.14.1)': + '@inquirer/number@3.0.11(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/password@4.0.11(@types/node@22.14.1)': + '@inquirer/password@4.0.11(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 22.14.1 - - '@inquirer/prompts@7.3.2(@types/node@22.14.1)': - dependencies: - '@inquirer/checkbox': 4.1.4(@types/node@22.14.1) - '@inquirer/confirm': 5.1.8(@types/node@22.14.1) - '@inquirer/editor': 4.2.9(@types/node@22.14.1) - '@inquirer/expand': 4.0.11(@types/node@22.14.1) - '@inquirer/input': 4.1.8(@types/node@22.14.1) - '@inquirer/number': 3.0.11(@types/node@22.14.1) - '@inquirer/password': 4.0.11(@types/node@22.14.1) - '@inquirer/rawlist': 4.0.11(@types/node@22.14.1) - '@inquirer/search': 3.0.11(@types/node@22.14.1) - '@inquirer/select': 4.1.0(@types/node@22.14.1) + '@types/node': 22.15.3 + + '@inquirer/prompts@7.3.2(@types/node@22.15.3)': + dependencies: + '@inquirer/checkbox': 4.1.4(@types/node@22.15.3) + '@inquirer/confirm': 5.1.8(@types/node@22.15.3) + '@inquirer/editor': 4.2.9(@types/node@22.15.3) + '@inquirer/expand': 4.0.11(@types/node@22.15.3) + '@inquirer/input': 4.1.8(@types/node@22.15.3) + '@inquirer/number': 3.0.11(@types/node@22.15.3) + '@inquirer/password': 4.0.11(@types/node@22.15.3) + '@inquirer/rawlist': 4.0.11(@types/node@22.15.3) + '@inquirer/search': 3.0.11(@types/node@22.15.3) + '@inquirer/select': 4.1.0(@types/node@22.15.3) optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/rawlist@4.0.11(@types/node@22.14.1)': + '@inquirer/rawlist@4.0.11(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) + '@inquirer/type': 3.0.5(@types/node@22.15.3) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/search@3.0.11(@types/node@22.14.1)': + '@inquirer/search@3.0.11(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/type': 3.0.5(@types/node@22.15.3) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@inquirer/select@4.1.0(@types/node@22.14.1)': + '@inquirer/select@4.1.0(@types/node@22.15.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.1) + '@inquirer/core': 10.1.9(@types/node@22.15.3) '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.14.1) + '@inquirer/type': 3.0.5(@types/node@22.15.3) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@inquirer/type@1.5.5': dependencies: mute-stream: 1.0.0 - '@inquirer/type@3.0.5(@types/node@22.14.1)': + '@inquirer/type@3.0.5(@types/node@22.15.3)': optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@internationalized/date@3.5.5': dependencies: @@ -18825,7 +18835,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.14.1 + '@types/node': 22.15.3 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -18843,7 +18853,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.14.1 + '@types/node': 22.15.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -18885,7 +18895,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/yargs': 15.0.19 chalk: 4.1.2 optional: true @@ -18895,7 +18905,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -18974,9 +18984,9 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@22.14.1))': + '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@22.15.3))': dependencies: - '@inquirer/prompts': 7.3.2(@types/node@22.14.1) + '@inquirer/prompts': 7.3.2(@types/node@22.15.3) '@inquirer/type': 1.5.5 '@lmdb/lmdb-darwin-arm64@3.2.6': @@ -19010,32 +19020,32 @@ snapshots: - encoding - supports-color - '@microsoft/api-extractor-model@7.29.4(@types/node@22.14.1)': + '@microsoft/api-extractor-model@7.29.4(@types/node@22.15.3)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.5.1(@types/node@22.14.1) + '@rushstack/node-core-library': 5.5.1(@types/node@22.15.3) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.30.1(@types/node@22.14.1)': + '@microsoft/api-extractor-model@7.30.1(@types/node@22.15.3)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.10.1(@types/node@22.14.1) + '@rushstack/node-core-library': 5.10.1(@types/node@22.15.3) transitivePeerDependencies: - '@types/node' optional: true - '@microsoft/api-extractor@7.47.4(@types/node@22.14.1)': + '@microsoft/api-extractor@7.47.4(@types/node@22.15.3)': dependencies: - '@microsoft/api-extractor-model': 7.29.4(@types/node@22.14.1) + '@microsoft/api-extractor-model': 7.29.4(@types/node@22.15.3) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.5.1(@types/node@22.14.1) + '@rushstack/node-core-library': 5.5.1(@types/node@22.15.3) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.13.3(@types/node@22.14.1) - '@rushstack/ts-command-line': 4.22.3(@types/node@22.14.1) + '@rushstack/terminal': 0.13.3(@types/node@22.15.3) + '@rushstack/ts-command-line': 4.22.3(@types/node@22.15.3) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -19045,15 +19055,15 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.48.1(@types/node@22.14.1)': + '@microsoft/api-extractor@7.48.1(@types/node@22.15.3)': dependencies: - '@microsoft/api-extractor-model': 7.30.1(@types/node@22.14.1) + '@microsoft/api-extractor-model': 7.30.1(@types/node@22.15.3) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.10.1(@types/node@22.14.1) + '@rushstack/node-core-library': 5.10.1(@types/node@22.15.3) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.4(@types/node@22.14.1) - '@rushstack/ts-command-line': 4.23.2(@types/node@22.14.1) + '@rushstack/terminal': 0.14.4(@types/node@22.15.3) + '@rushstack/ts-command-line': 4.23.2(@types/node@22.15.3) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.10 @@ -19634,7 +19644,7 @@ snapshots: '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.26.10) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.10) - '@babel/template': 7.27.0 + '@babel/template': 7.27.1 '@react-native/babel-plugin-codegen': 0.76.3(@babel/preset-env@7.26.9(@babel/core@7.26.10)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.10) @@ -19645,7 +19655,7 @@ snapshots: '@react-native/codegen@0.76.3(@babel/preset-env@7.26.9(@babel/core@7.26.10))': dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@babel/preset-env': 7.26.9(@babel/core@7.26.10) glob: 7.2.3 hermes-parser: 0.23.1 @@ -19771,187 +19781,187 @@ snapshots: '@remix-run/router@1.18.0': {} - '@rollup/plugin-alias@5.1.1(rollup@4.39.0)': + '@rollup/plugin-alias@5.1.1(rollup@4.40.1)': optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 - '@rollup/plugin-commonjs@28.0.3(rollup@4.39.0)': + '@rollup/plugin-commonjs@28.0.3(rollup@4.40.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.3(picomatch@4.0.2) + fdir: 6.4.4(picomatch@4.0.2) is-reference: 1.2.1 magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 - '@rollup/plugin-inject@5.0.5(rollup@4.39.0)': + '@rollup/plugin-inject@5.0.5(rollup@4.40.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) estree-walker: 2.0.2 magic-string: 0.30.17 optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 - '@rollup/plugin-json@6.1.0(rollup@4.39.0)': + '@rollup/plugin-json@6.1.0(rollup@4.40.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 - '@rollup/plugin-node-resolve@16.0.1(rollup@4.39.0)': + '@rollup/plugin-node-resolve@16.0.1(rollup@4.40.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 - '@rollup/plugin-replace@6.0.2(rollup@4.39.0)': + '@rollup/plugin-replace@6.0.2(rollup@4.40.1)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) magic-string: 0.30.17 optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 - '@rollup/plugin-terser@0.4.4(rollup@4.39.0)': + '@rollup/plugin-terser@0.4.4(rollup@4.40.1)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.39.0 optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 - '@rollup/pluginutils@5.1.4(rollup@4.39.0)': + '@rollup/pluginutils@5.1.4(rollup@4.40.1)': dependencies: '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 '@rollup/rollup-android-arm-eabi@4.34.8': optional: true - '@rollup/rollup-android-arm-eabi@4.39.0': + '@rollup/rollup-android-arm-eabi@4.40.1': optional: true '@rollup/rollup-android-arm64@4.34.8': optional: true - '@rollup/rollup-android-arm64@4.39.0': + '@rollup/rollup-android-arm64@4.40.1': optional: true '@rollup/rollup-darwin-arm64@4.34.8': optional: true - '@rollup/rollup-darwin-arm64@4.39.0': + '@rollup/rollup-darwin-arm64@4.40.1': optional: true '@rollup/rollup-darwin-x64@4.34.8': optional: true - '@rollup/rollup-darwin-x64@4.39.0': + '@rollup/rollup-darwin-x64@4.40.1': optional: true '@rollup/rollup-freebsd-arm64@4.34.8': optional: true - '@rollup/rollup-freebsd-arm64@4.39.0': + '@rollup/rollup-freebsd-arm64@4.40.1': optional: true '@rollup/rollup-freebsd-x64@4.34.8': optional: true - '@rollup/rollup-freebsd-x64@4.39.0': + '@rollup/rollup-freebsd-x64@4.40.1': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.34.8': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.39.0': + '@rollup/rollup-linux-arm-gnueabihf@4.40.1': optional: true '@rollup/rollup-linux-arm-musleabihf@4.34.8': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.39.0': + '@rollup/rollup-linux-arm-musleabihf@4.40.1': optional: true '@rollup/rollup-linux-arm64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-arm64-gnu@4.39.0': + '@rollup/rollup-linux-arm64-gnu@4.40.1': optional: true '@rollup/rollup-linux-arm64-musl@4.34.8': optional: true - '@rollup/rollup-linux-arm64-musl@4.39.0': + '@rollup/rollup-linux-arm64-musl@4.40.1': optional: true '@rollup/rollup-linux-loongarch64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.39.0': + '@rollup/rollup-linux-loongarch64-gnu@4.40.1': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': optional: true '@rollup/rollup-linux-riscv64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.39.0': + '@rollup/rollup-linux-riscv64-gnu@4.40.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.39.0': + '@rollup/rollup-linux-riscv64-musl@4.40.1': optional: true '@rollup/rollup-linux-s390x-gnu@4.34.8': optional: true - '@rollup/rollup-linux-s390x-gnu@4.39.0': + '@rollup/rollup-linux-s390x-gnu@4.40.1': optional: true '@rollup/rollup-linux-x64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-x64-gnu@4.39.0': + '@rollup/rollup-linux-x64-gnu@4.40.1': optional: true '@rollup/rollup-linux-x64-musl@4.34.8': optional: true - '@rollup/rollup-linux-x64-musl@4.39.0': + '@rollup/rollup-linux-x64-musl@4.40.1': optional: true '@rollup/rollup-win32-arm64-msvc@4.34.8': optional: true - '@rollup/rollup-win32-arm64-msvc@4.39.0': + '@rollup/rollup-win32-arm64-msvc@4.40.1': optional: true '@rollup/rollup-win32-ia32-msvc@4.34.8': optional: true - '@rollup/rollup-win32-ia32-msvc@4.39.0': + '@rollup/rollup-win32-ia32-msvc@4.40.1': optional: true '@rollup/rollup-win32-x64-msvc@4.34.8': optional: true - '@rollup/rollup-win32-x64-msvc@4.39.0': + '@rollup/rollup-win32-x64-msvc@4.40.1': optional: true - '@rushstack/node-core-library@5.10.1(@types/node@22.14.1)': + '@rushstack/node-core-library@5.10.1(@types/node@22.15.3)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -19962,10 +19972,10 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 optional: true - '@rushstack/node-core-library@5.5.1(@types/node@22.14.1)': + '@rushstack/node-core-library@5.5.1(@types/node@22.15.3)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -19976,40 +19986,40 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.13.3(@types/node@22.14.1)': + '@rushstack/terminal@0.13.3(@types/node@22.15.3)': dependencies: - '@rushstack/node-core-library': 5.5.1(@types/node@22.14.1) + '@rushstack/node-core-library': 5.5.1(@types/node@22.15.3) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@rushstack/terminal@0.14.4(@types/node@22.14.1)': + '@rushstack/terminal@0.14.4(@types/node@22.15.3)': dependencies: - '@rushstack/node-core-library': 5.10.1(@types/node@22.14.1) + '@rushstack/node-core-library': 5.10.1(@types/node@22.15.3) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 optional: true - '@rushstack/ts-command-line@4.22.3(@types/node@22.14.1)': + '@rushstack/ts-command-line@4.22.3(@types/node@22.15.3)': dependencies: - '@rushstack/terminal': 0.13.3(@types/node@22.14.1) + '@rushstack/terminal': 0.13.3(@types/node@22.15.3) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.23.2(@types/node@22.14.1)': + '@rushstack/ts-command-line@4.23.2(@types/node@22.15.3)': dependencies: - '@rushstack/terminal': 0.14.4(@types/node@22.14.1) + '@rushstack/terminal': 0.14.4(@types/node@22.15.3) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -20222,11 +20232,11 @@ snapshots: dependencies: solid-js: 1.9.5 - '@solidjs/start@1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1)': + '@solidjs/start@1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(solid-js@1.9.5)(terser@5.39.0)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(yaml@2.6.1)': dependencies: - '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) - '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.11 @@ -20236,9 +20246,9 @@ snapshots: shiki: 1.29.2 source-map-js: 1.2.1 terracotta: 1.0.5(solid-js@1.9.5) - tinyglobby: 0.2.12 - vinxi: 0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + tinyglobby: 0.2.13 + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -20276,14 +20286,14 @@ snapshots: dependencies: acorn: 8.14.1 - '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))': + '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))': dependencies: - '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -20296,7 +20306,7 @@ snapshots: set-cookie-parser: 2.7.1 sirv: 3.0.0 svelte: 5.26.1 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) '@sveltejs/package@2.3.10(svelte@5.26.1)(typescript@5.8.3)': dependencies: @@ -20309,25 +20319,25 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) debug: 4.4.0 svelte: 5.26.1 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.26.1 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) transitivePeerDependencies: - supports-color @@ -20390,22 +20400,22 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.0.14 '@tailwindcss/oxide-win32-x64-msvc': 4.0.14 - '@tailwindcss/vite@4.0.14(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@tailwindcss/vite@4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: '@tailwindcss/node': 4.0.14 '@tailwindcss/oxide': 4.0.14 lightningcss: 1.29.2 tailwindcss: 4.0.14 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - '@tanstack/config@0.14.2(@types/node@22.14.1)(esbuild@0.25.2)(eslint@9.15.0(jiti@2.4.2))(rollup@4.39.0)(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@tanstack/config@0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.1)(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: '@commitlint/parse': 19.5.0 '@eslint/js': 9.17.0 '@stylistic/eslint-plugin-js': 2.11.0(eslint@9.15.0(jiti@2.4.2)) commander: 12.1.0 current-git-branch: 1.1.0 - esbuild-register: 3.6.0(esbuild@0.25.2) + esbuild-register: 3.6.0(esbuild@0.25.3) eslint-plugin-import-x: 4.6.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) eslint-plugin-n: 17.14.0(eslint@9.15.0(jiti@2.4.2)) globals: 15.14.0 @@ -20413,7 +20423,7 @@ snapshots: jsonfile: 6.1.0 liftoff: 5.0.0 minimist: 1.2.8 - rollup-plugin-preserve-directives: 0.4.0(rollup@4.39.0) + rollup-plugin-preserve-directives: 0.4.0(rollup@4.40.1) semver: 7.7.1 simple-git: 3.27.0 typedoc: 0.27.5(typescript@5.8.3) @@ -20421,9 +20431,9 @@ snapshots: typedoc-plugin-markdown: 4.3.3(typedoc@0.27.5(typescript@5.8.3)) typescript-eslint: 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) v8flags: 4.0.1 - vite-plugin-dts: 4.0.3(@types/node@22.14.1)(rollup@4.39.0)(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) - vite-plugin-externalize-deps: 0.8.0(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) - vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + vite-plugin-dts: 4.0.3(@types/node@22.15.3)(rollup@4.40.1)(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + vite-plugin-externalize-deps: 0.8.0(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) transitivePeerDependencies: - '@types/node' - esbuild @@ -20433,20 +20443,20 @@ snapshots: - typescript - vite - '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)': + '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.10 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 '@tanstack/router-utils': 1.114.29 babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 - vite: 6.1.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -20475,21 +20485,21 @@ snapshots: '@tanstack/router-utils@1.114.29': dependencies: - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 ansis: 3.17.0 diff: 7.0.0 - '@tanstack/server-functions-plugin@1.114.32(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)': + '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.10 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 - '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.14.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 @@ -20520,7 +20530,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.26.10 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -20567,13 +20577,13 @@ snapshots: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@testing-library/svelte@5.2.6(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@testing-library/svelte@5.2.6(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: '@testing-library/dom': 10.4.0 svelte: 5.26.1 optionalDependencies: - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) '@tsconfig/svelte@5.0.4': {} @@ -20594,48 +20604,48 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/braces@3.0.4': {} '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.5 - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/connect@3.4.38': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/cookie@0.6.0': {} @@ -20661,7 +20671,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -20675,7 +20685,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/hammerjs@2.0.45': {} @@ -20691,7 +20701,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/istanbul-lib-coverage@2.0.6': {} @@ -20728,9 +20738,9 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 - '@types/node@22.14.1': + '@types/node@22.15.3': dependencies: undici-types: 6.21.0 @@ -20763,7 +20773,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/serve-index@1.9.4': dependencies: @@ -20772,12 +20782,12 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/send': 0.17.4 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/sort-by@1.2.3': {} @@ -20799,13 +20809,13 @@ snapshots: '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/source-list-map': 0.1.6 source-map: 0.7.4 '@types/webpack@4.41.38': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -20814,7 +20824,7 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 '@types/yargs-parser@21.0.3': {} @@ -20931,9 +20941,9 @@ snapshots: '@urql/core': 5.0.8(graphql@16.9.0) wonka: 6.3.4 - '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': optionalDependencies: - '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) next: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) react: 19.0.0 svelte: 5.26.1 @@ -20941,10 +20951,10 @@ snapshots: '@vercel/edge@1.2.1': {} - '@vercel/nft@0.29.2(encoding@0.1.13)(rollup@4.39.0)': + '@vercel/nft@0.29.2(encoding@0.1.13)(rollup@4.40.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13) - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) acorn: 8.14.1 acorn-import-attributes: 1.9.5(acorn@8.14.1) async-sema: 3.1.1 @@ -20987,9 +20997,9 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 acorn: 8.14.1 acorn-jsx: 5.3.2(acorn@8.14.1) acorn-loose: 8.4.0 @@ -20998,44 +21008,44 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) acorn: 8.14.1 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.14.1) astring: 1.8.6 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - vite: 6.2.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1) - '@vitejs/plugin-react@4.3.4(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': dependencies: - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) vue: 3.4.35(typescript@5.8.3) - '@vitest/coverage-istanbul@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@vitest/coverage-istanbul@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.0 @@ -21047,17 +21057,17 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.15.0(jiti@2.4.2) optionalDependencies: typescript: 5.8.3 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) '@vitest/expect@3.1.1': dependencies: @@ -21066,14 +21076,14 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.1(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': + '@vitest/mocker@3.1.1(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.6.6(@types/node@22.14.1)(typescript@5.8.3) - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + msw: 2.6.6(@types/node@22.15.3)(typescript@5.8.3) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) '@vitest/pretty-format@3.1.1': dependencies: @@ -21152,7 +21162,7 @@ snapshots: '@vue/compiler-core@3.4.35': dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@vue/shared': 3.4.35 entities: 4.5.0 estree-walker: 2.0.2 @@ -21160,7 +21170,7 @@ snapshots: '@vue/compiler-core@3.5.13': dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@vue/shared': 3.5.13 entities: 4.5.0 estree-walker: 2.0.2 @@ -21178,7 +21188,7 @@ snapshots: '@vue/compiler-sfc@2.7.16': dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 postcss: 8.5.3 source-map: 0.6.1 optionalDependencies: @@ -21186,7 +21196,7 @@ snapshots: '@vue/compiler-sfc@3.4.35': dependencies: - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@vue/compiler-core': 3.4.35 '@vue/compiler-dom': 3.4.35 '@vue/compiler-ssr': 3.4.35 @@ -21438,7 +21448,7 @@ snapshots: '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.98.0)': dependencies: - webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.98.0) '@webpack-cli/info@1.5.0(webpack-cli@4.10.0)': @@ -21448,7 +21458,7 @@ snapshots: '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.98.0)': dependencies: - webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.98.0) '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)': @@ -21457,7 +21467,7 @@ snapshots: '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.98.0)': dependencies: - webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.98.0) '@xmldom/xmldom@0.7.13': {} @@ -21772,14 +21782,14 @@ snapshots: astring@1.8.6: {} - astro@5.5.6(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.39.0)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1): + astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.11.0 '@astrojs/internal-helpers': 0.6.1 '@astrojs/markdown-remark': 6.3.1 '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) acorn: 8.14.1 aria-query: 5.3.2 axobject-query: 4.1.0 @@ -21796,7 +21806,7 @@ snapshots: dlv: 1.1.3 dset: 3.1.4 es-module-lexer: 1.6.0 - esbuild: 0.25.2 + esbuild: 0.25.3 estree-walker: 3.0.3 flattie: 1.1.1 github-slugger: 2.0.0 @@ -21817,14 +21827,14 @@ snapshots: semver: 7.7.1 shiki: 3.2.1 tinyexec: 0.3.2 - tinyglobby: 0.2.12 + tinyglobby: 0.2.13 tsconfck: 3.1.5(typescript@5.8.3) ultrahtml: 1.5.3 unist-util-visit: 5.0.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) vfile: 6.0.3 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.1 @@ -21925,9 +21935,9 @@ snapshots: babel-dead-code-elimination@1.0.10: dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 transitivePeerDependencies: - supports-color @@ -21965,13 +21975,13 @@ snapshots: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) babel-plugin-add-module-exports@0.2.1: {} babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -21981,8 +21991,8 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/template': 7.27.1 + '@babel/types': 7.27.1 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 @@ -21990,8 +22000,8 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) + '@babel/types': 7.27.1 html-entities: 2.3.3 validate-html-nesting: 1.2.2 @@ -22348,9 +22358,9 @@ snapshots: dependencies: run-applescript: 7.0.0 - bundle-require@5.1.0(esbuild@0.25.2): + bundle-require@5.1.0(esbuild@0.25.3): dependencies: - esbuild: 0.25.2 + esbuild: 0.25.3 load-tsconfig: 0.2.5 busboy@1.6.0: @@ -22565,7 +22575,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -22576,7 +22586,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -23602,20 +23612,20 @@ snapshots: esbuild-plugin-file-path-extensions@2.1.4: {} - esbuild-plugin-solid@0.5.0(esbuild@0.25.2)(solid-js@1.9.5): + esbuild-plugin-solid@0.5.0(esbuild@0.25.3)(solid-js@1.9.5): dependencies: '@babel/core': 7.26.10 '@babel/preset-typescript': 7.24.7(@babel/core@7.26.10) babel-preset-solid: 1.8.19(@babel/core@7.26.10) - esbuild: 0.25.2 + esbuild: 0.25.3 solid-js: 1.9.5 transitivePeerDependencies: - supports-color - esbuild-register@3.6.0(esbuild@0.25.2): + esbuild-register@3.6.0(esbuild@0.25.3): dependencies: debug: 4.4.0 - esbuild: 0.25.2 + esbuild: 0.25.3 transitivePeerDependencies: - supports-color @@ -23703,33 +23713,33 @@ snapshots: '@esbuild/win32-ia32': 0.25.1 '@esbuild/win32-x64': 0.25.1 - esbuild@0.25.2: + esbuild@0.25.3: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.2 - '@esbuild/android-arm': 0.25.2 - '@esbuild/android-arm64': 0.25.2 - '@esbuild/android-x64': 0.25.2 - '@esbuild/darwin-arm64': 0.25.2 - '@esbuild/darwin-x64': 0.25.2 - '@esbuild/freebsd-arm64': 0.25.2 - '@esbuild/freebsd-x64': 0.25.2 - '@esbuild/linux-arm': 0.25.2 - '@esbuild/linux-arm64': 0.25.2 - '@esbuild/linux-ia32': 0.25.2 - '@esbuild/linux-loong64': 0.25.2 - '@esbuild/linux-mips64el': 0.25.2 - '@esbuild/linux-ppc64': 0.25.2 - '@esbuild/linux-riscv64': 0.25.2 - '@esbuild/linux-s390x': 0.25.2 - '@esbuild/linux-x64': 0.25.2 - '@esbuild/netbsd-arm64': 0.25.2 - '@esbuild/netbsd-x64': 0.25.2 - '@esbuild/openbsd-arm64': 0.25.2 - '@esbuild/openbsd-x64': 0.25.2 - '@esbuild/sunos-x64': 0.25.2 - '@esbuild/win32-arm64': 0.25.2 - '@esbuild/win32-ia32': 0.25.2 - '@esbuild/win32-x64': 0.25.2 + '@esbuild/aix-ppc64': 0.25.3 + '@esbuild/android-arm': 0.25.3 + '@esbuild/android-arm64': 0.25.3 + '@esbuild/android-x64': 0.25.3 + '@esbuild/darwin-arm64': 0.25.3 + '@esbuild/darwin-x64': 0.25.3 + '@esbuild/freebsd-arm64': 0.25.3 + '@esbuild/freebsd-x64': 0.25.3 + '@esbuild/linux-arm': 0.25.3 + '@esbuild/linux-arm64': 0.25.3 + '@esbuild/linux-ia32': 0.25.3 + '@esbuild/linux-loong64': 0.25.3 + '@esbuild/linux-mips64el': 0.25.3 + '@esbuild/linux-ppc64': 0.25.3 + '@esbuild/linux-riscv64': 0.25.3 + '@esbuild/linux-s390x': 0.25.3 + '@esbuild/linux-x64': 0.25.3 + '@esbuild/netbsd-arm64': 0.25.3 + '@esbuild/netbsd-x64': 0.25.3 + '@esbuild/openbsd-arm64': 0.25.3 + '@esbuild/openbsd-x64': 0.25.3 + '@esbuild/sunos-x64': 0.25.3 + '@esbuild/win32-arm64': 0.25.3 + '@esbuild/win32-ia32': 0.25.3 + '@esbuild/win32-x64': 0.25.3 escalade@3.2.0: {} @@ -23815,7 +23825,7 @@ snapshots: eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124(eslint@9.15.0(jiti@2.4.2)): dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10) eslint: 9.15.0(jiti@2.4.2) hermes-parser: 0.25.1 @@ -24392,7 +24402,7 @@ snapshots: transitivePeerDependencies: - encoding - fdir@6.4.3(picomatch@4.0.2): + fdir@6.4.4(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -25137,7 +25147,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) htmlparser2@6.1.0: dependencies: @@ -25613,7 +25623,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -25623,7 +25633,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.1 @@ -25667,7 +25677,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.14.1 + '@types/node': 22.15.3 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -25677,7 +25687,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.14.1 + '@types/node': 22.15.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -25698,7 +25708,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -25711,7 +25721,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.14.1 + '@types/node': 22.15.3 jest-util: 29.7.0 jest-regex-util@29.6.3: {} @@ -25719,10 +25729,10 @@ snapshots: jest-snapshot@29.7.0: dependencies: '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 + '@babel/generator': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) + '@babel/types': 7.27.1 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -25744,7 +25754,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.14.1 + '@types/node': 22.15.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -25761,13 +25771,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -25808,7 +25818,7 @@ snapshots: jscodeshift@0.14.0(@babel/preset-env@7.26.9(@babel/core@7.26.10)): dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.10) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.10) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.10) @@ -25833,7 +25843,7 @@ snapshots: jscodeshift@17.3.0(@babel/preset-env@7.26.9(@babel/core@7.26.10)): dependencies: '@babel/core': 7.26.10 - '@babel/parser': 7.27.0 + '@babel/parser': 7.27.1 '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.10) @@ -25999,10 +26009,10 @@ snapshots: klona@2.0.6: {} - knip@5.50.2(@types/node@22.14.1)(typescript@5.8.3): + knip@5.50.2(@types/node@22.15.3)(typescript@5.8.3): dependencies: '@nodelib/fs.walk': 1.2.8 - '@types/node': 22.14.1 + '@types/node': 22.15.3 easy-table: 1.2.0 enhanced-resolve: 5.18.1 fast-glob: 3.3.3 @@ -26357,14 +26367,14 @@ snapshots: magicast@0.2.11: dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 recast: 0.23.11 magicast@0.3.5: dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 source-map-js: 1.2.1 make-dir@2.1.0: @@ -26704,9 +26714,9 @@ snapshots: metro-source-map@0.81.0: dependencies: - '@babel/traverse': 7.27.0 - '@babel/traverse--for-generate-function-map': '@babel/traverse@7.27.0' - '@babel/types': 7.27.0 + '@babel/traverse': 7.27.1 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.27.1' + '@babel/types': 7.27.1 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.81.0 @@ -26732,9 +26742,9 @@ snapshots: metro-transform-plugins@0.81.0: dependencies: '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 + '@babel/generator': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -26743,9 +26753,9 @@ snapshots: metro-transform-worker@0.81.0: dependencies: '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/types': 7.27.1 flow-enums-runtime: 0.0.6 metro: 0.81.0 metro-babel-transformer: 0.81.0 @@ -26762,13 +26772,13 @@ snapshots: metro@0.81.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@babel/core': 7.26.10 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/template': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -27212,12 +27222,12 @@ snapshots: msgpackr-extract: 3.0.3 optional: true - msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3): + msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.14.1) + '@inquirer/confirm': 5.1.8(@types/node@22.15.3) '@mswjs/interceptors': 0.37.1 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -27367,14 +27377,14 @@ snapshots: dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@netlify/functions': 3.0.4 - '@rollup/plugin-alias': 5.1.1(rollup@4.39.0) - '@rollup/plugin-commonjs': 28.0.3(rollup@4.39.0) - '@rollup/plugin-inject': 5.0.5(rollup@4.39.0) - '@rollup/plugin-json': 6.1.0(rollup@4.39.0) - '@rollup/plugin-node-resolve': 16.0.1(rollup@4.39.0) - '@rollup/plugin-replace': 6.0.2(rollup@4.39.0) - '@rollup/plugin-terser': 0.4.4(rollup@4.39.0) - '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.39.0) + '@rollup/plugin-alias': 5.1.1(rollup@4.40.1) + '@rollup/plugin-commonjs': 28.0.3(rollup@4.40.1) + '@rollup/plugin-inject': 5.0.5(rollup@4.40.1) + '@rollup/plugin-json': 6.1.0(rollup@4.40.1) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.40.1) + '@rollup/plugin-replace': 6.0.2(rollup@4.40.1) + '@rollup/plugin-terser': 0.4.4(rollup@4.40.1) + '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.1) archiver: 7.0.1 c12: 3.0.2(magicast@0.3.5) chokidar: 4.0.3 @@ -27389,7 +27399,7 @@ snapshots: defu: 6.1.4 destr: 2.0.3 dot-prop: 9.0.0 - esbuild: 0.25.2 + esbuild: 0.25.3 escape-string-regexp: 5.0.0 etag: 1.8.1 exsolve: 1.0.4 @@ -27416,8 +27426,8 @@ snapshots: pkg-types: 2.1.0 pretty-bytes: 6.1.1 radix3: 1.1.2 - rollup: 4.39.0 - rollup-plugin-visualizer: 5.14.0(rollup@4.39.0) + rollup: 4.40.1 + rollup-plugin-visualizer: 5.14.0(rollup@4.40.1) scule: 1.3.0 semver: 7.7.1 serve-placeholder: 2.0.2 @@ -28078,7 +28088,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -29167,20 +29177,20 @@ snapshots: hash-base: 3.1.0 inherits: 2.0.4 - rollup-plugin-preserve-directives@0.4.0(rollup@4.39.0): + rollup-plugin-preserve-directives@0.4.0(rollup@4.40.1): dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) magic-string: 0.30.17 - rollup: 4.39.0 + rollup: 4.40.1 - rollup-plugin-visualizer@5.14.0(rollup@4.39.0): + rollup-plugin-visualizer@5.14.0(rollup@4.40.1): dependencies: open: 8.4.2 picomatch: 4.0.2 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.39.0 + rollup: 4.40.1 rollup@4.34.8: dependencies: @@ -29207,30 +29217,30 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.34.8 fsevents: 2.3.3 - rollup@4.39.0: + rollup@4.40.1: dependencies: '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.39.0 - '@rollup/rollup-android-arm64': 4.39.0 - '@rollup/rollup-darwin-arm64': 4.39.0 - '@rollup/rollup-darwin-x64': 4.39.0 - '@rollup/rollup-freebsd-arm64': 4.39.0 - '@rollup/rollup-freebsd-x64': 4.39.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.39.0 - '@rollup/rollup-linux-arm-musleabihf': 4.39.0 - '@rollup/rollup-linux-arm64-gnu': 4.39.0 - '@rollup/rollup-linux-arm64-musl': 4.39.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.39.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.39.0 - '@rollup/rollup-linux-riscv64-gnu': 4.39.0 - '@rollup/rollup-linux-riscv64-musl': 4.39.0 - '@rollup/rollup-linux-s390x-gnu': 4.39.0 - '@rollup/rollup-linux-x64-gnu': 4.39.0 - '@rollup/rollup-linux-x64-musl': 4.39.0 - '@rollup/rollup-win32-arm64-msvc': 4.39.0 - '@rollup/rollup-win32-ia32-msvc': 4.39.0 - '@rollup/rollup-win32-x64-msvc': 4.39.0 + '@rollup/rollup-android-arm-eabi': 4.40.1 + '@rollup/rollup-android-arm64': 4.40.1 + '@rollup/rollup-darwin-arm64': 4.40.1 + '@rollup/rollup-darwin-x64': 4.40.1 + '@rollup/rollup-freebsd-arm64': 4.40.1 + '@rollup/rollup-freebsd-x64': 4.40.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.40.1 + '@rollup/rollup-linux-arm-musleabihf': 4.40.1 + '@rollup/rollup-linux-arm64-gnu': 4.40.1 + '@rollup/rollup-linux-arm64-musl': 4.40.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.40.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.40.1 + '@rollup/rollup-linux-riscv64-gnu': 4.40.1 + '@rollup/rollup-linux-riscv64-musl': 4.40.1 + '@rollup/rollup-linux-s390x-gnu': 4.40.1 + '@rollup/rollup-linux-x64-gnu': 4.40.1 + '@rollup/rollup-linux-x64-musl': 4.40.1 + '@rollup/rollup-win32-arm64-msvc': 4.40.1 + '@rollup/rollup-win32-ia32-msvc': 4.40.1 + '@rollup/rollup-win32-x64-msvc': 4.40.1 fsevents: 2.3.3 rooks@8.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): @@ -29737,9 +29747,9 @@ snapshots: solid-refresh@0.6.3(solid-js@1.9.5): dependencies: - '@babel/generator': 7.27.0 + '@babel/generator': 7.27.1 '@babel/helper-module-imports': 7.25.9 - '@babel/types': 7.27.0 + '@babel/types': 7.27.1 solid-js: 1.9.5 transitivePeerDependencies: - supports-color @@ -30085,7 +30095,7 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.3 - fdir: 6.4.3(picomatch@4.0.2) + fdir: 6.4.4(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 svelte: 5.26.1 @@ -30240,7 +30250,7 @@ snapshots: webpack-sources: 1.4.3 worker-farm: 1.7.0 - terser-webpack-plugin@5.3.11(esbuild@0.25.2)(webpack@5.98.0(esbuild@0.25.1)): + terser-webpack-plugin@5.3.11(esbuild@0.25.3)(webpack@5.98.0(esbuild@0.25.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 @@ -30249,18 +30259,18 @@ snapshots: terser: 5.39.0 webpack: 5.98.0(esbuild@0.25.1) optionalDependencies: - esbuild: 0.25.2 + esbuild: 0.25.3 - terser-webpack-plugin@5.3.11(esbuild@0.25.2)(webpack@5.98.0): + terser-webpack-plugin@5.3.11(esbuild@0.25.3)(webpack@5.98.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) optionalDependencies: - esbuild: 0.25.2 + esbuild: 0.25.3 terser@4.8.1: dependencies: @@ -30329,9 +30339,9 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.12: + tinyglobby@0.2.13: dependencies: - fdir: 6.4.3(picomatch@4.0.2) + fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 tinypool@1.0.2: {} @@ -30438,35 +30448,35 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.25.2)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)): + tsup-preset-solid@2.2.0(esbuild@0.25.3)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)): dependencies: - esbuild-plugin-solid: 0.5.0(esbuild@0.25.2)(solid-js@1.9.5) - tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) + esbuild-plugin-solid: 0.5.0(esbuild@0.25.3)(solid-js@1.9.5) + tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) transitivePeerDependencies: - esbuild - solid-js - supports-color - tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.14.1))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1): + tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1): dependencies: - bundle-require: 5.1.0(esbuild@0.25.2) + bundle-require: 5.1.0(esbuild@0.25.3) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.0 - esbuild: 0.25.2 + esbuild: 0.25.3 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.6.1) resolve-from: 5.0.0 - rollup: 4.39.0 + rollup: 4.40.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.12 + tinyglobby: 0.2.13 tree-kill: 1.2.2 optionalDependencies: - '@microsoft/api-extractor': 7.48.1(@types/node@22.14.1) + '@microsoft/api-extractor': 7.48.1(@types/node@22.15.3) postcss: 8.5.3 typescript: 5.8.3 transitivePeerDependencies: @@ -30688,7 +30698,7 @@ snapshots: pkg-types: 2.1.0 scule: 1.3.0 strip-literal: 3.0.0 - tinyglobby: 0.2.12 + tinyglobby: 0.2.13 unplugin: 2.2.2 unplugin-utils: 0.2.4 @@ -30939,11 +30949,11 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.5.3(@types/node@22.14.1)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): + vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): dependencies: '@babel/core': 7.26.10 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) '@types/micromatch': 4.0.9 '@vinxi/listhen': 1.5.6 boxen: 7.1.1 @@ -30973,7 +30983,7 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) zod: 3.24.2 transitivePeerDependencies: - '@azure/app-configuration' @@ -31017,13 +31027,13 @@ snapshots: - xml2js - yaml - vite-node@3.1.1(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): + vite-node@3.1.1(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - jiti @@ -31038,10 +31048,10 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.0.3(@types/node@22.14.1)(rollup@4.39.0)(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): + vite-plugin-dts@4.0.3(@types/node@22.15.3)(rollup@4.40.1)(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): dependencies: - '@microsoft/api-extractor': 7.47.4(@types/node@22.14.1) - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@microsoft/api-extractor': 7.47.4(@types/node@22.15.3) + '@rollup/pluginutils': 5.1.4(rollup@4.40.1) '@volar/typescript': 2.4.12 '@vue/language-core': 2.0.29(typescript@5.8.3) compare-versions: 6.1.1 @@ -31052,17 +31062,17 @@ snapshots: typescript: 5.8.3 vue-tsc: 2.0.29(typescript@5.8.3) optionalDependencies: - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): + vite-plugin-externalize-deps@0.8.0(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): dependencies: - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -31070,31 +31080,31 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) transitivePeerDependencies: - supports-color - typescript - vite@6.1.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): + vite@6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): dependencies: esbuild: 0.24.2 postcss: 8.5.3 - rollup: 4.39.0 + rollup: 4.40.1 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 fsevents: 2.3.3 jiti: 2.4.2 less: 4.2.2 @@ -31103,13 +31113,13 @@ snapshots: terser: 5.39.0 yaml: 2.6.1 - vite@6.2.3(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): + vite@6.2.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): dependencies: - esbuild: 0.25.2 + esbuild: 0.25.3 postcss: 8.5.3 - rollup: 4.39.0 + rollup: 4.40.1 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 fsevents: 2.3.3 jiti: 2.4.2 less: 4.2.2 @@ -31118,13 +31128,16 @@ snapshots: terser: 5.39.0 yaml: 2.6.1 - vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): + vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.6.1): dependencies: - esbuild: 0.25.2 + esbuild: 0.25.3 + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 postcss: 8.5.3 - rollup: 4.39.0 + rollup: 4.40.1 + tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 fsevents: 2.3.3 jiti: 2.4.2 less: 4.2.2 @@ -31133,13 +31146,16 @@ snapshots: terser: 5.39.0 yaml: 2.6.1 - vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): + vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): dependencies: - esbuild: 0.25.2 + esbuild: 0.25.3 + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 postcss: 8.5.3 - rollup: 4.39.0 + rollup: 4.40.1 + tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 22.14.1 + '@types/node': 22.15.3 fsevents: 2.3.3 jiti: 2.4.2 less: 4.2.2 @@ -31148,14 +31164,14 @@ snapshots: terser: 5.39.0 yaml: 2.6.1 - vitefu@1.0.6(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): + vitefu@1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)): optionalDependencies: - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.1)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.2.2)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(msw@2.6.6(@types/node@22.14.1)(typescript@5.8.3))(vite@6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) + '@vitest/mocker': 3.1.1(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -31171,12 +31187,12 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.6(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) - vite-node: 3.1.1(@types/node@22.14.1)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) + vite-node: 3.1.1(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.14.1 + '@types/node': 22.15.3 jsdom: 25.0.1 transitivePeerDependencies: - jiti @@ -31442,7 +31458,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4) + webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) webpack-merge: 5.10.0 webpack-dev-middleware@7.4.2(webpack@5.98.0(esbuild@0.25.1)): @@ -31573,7 +31589,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(esbuild@0.25.2)(webpack@5.98.0(esbuild@0.25.1)) + terser-webpack-plugin: 5.3.11(esbuild@0.25.3)(webpack@5.98.0(esbuild@0.25.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -31581,7 +31597,7 @@ snapshots: - esbuild - uglify-js - webpack@5.98.0(esbuild@0.25.2)(webpack-cli@5.1.4): + webpack@5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.7 @@ -31603,7 +31619,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(esbuild@0.25.2)(webpack@5.98.0) + terser-webpack-plugin: 5.3.11(esbuild@0.25.3)(webpack@5.98.0) watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: From a9fe406e986e9cf7b77e7e6b3aebb416377f1957 Mon Sep 17 00:00:00 2001 From: novice0840 <111696934+novice0840@users.noreply.github.com> Date: Thu, 1 May 2025 22:03:02 +0900 Subject: [PATCH 040/432] chore: remove unused common type (#8989) * refactor(query-core): make common type more readable * fix: revert WithRequired type * fix: remove blank * refactor(query-core): change Omitkeyof to Omit * refactor: remove unused common type * fix: revert type WithRequired --- packages/query-core/src/types.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 0aafb2f1af..f158f0fdd7 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -432,11 +432,6 @@ export interface QueryObserverOptions< export type WithRequired = TTarget & { [_ in TKey]: {} } -export type Optional = Pick< - Partial, - TKey -> & - OmitKeyof export type DefaultedQueryObserverOptions< TQueryFnData = unknown, From ff0131b142aaf860d1fd58a8a8fbb73fdf0a299d Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 1 May 2025 15:24:59 +0200 Subject: [PATCH 041/432] =?UTF-8?q?feat(query-core):=20refetchMode=20?= =?UTF-8?q?=E2=80=9Creplace=E2=80=9D=20for=20streamedQuery=20(#9092)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refetchmode replace * feat: refetchMode replace for streamedQuery * test: should allow arrays --- docs/reference/streamedQuery.md | 12 +- .../src/__tests__/streamedQuery.test.tsx | 119 +++++++++++++++++- packages/query-core/src/streamedQuery.ts | 59 +++++---- 3 files changed, 161 insertions(+), 29 deletions(-) diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index 7c47a7811d..1926b0fd68 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -26,8 +26,10 @@ const query = queryOptions({ - **Required** - The function that returns a Promise of an AsyncIterable of data to stream in. - Receives a [QueryFunctionContext](../guides/query-functions.md#queryfunctioncontext) -- `refetchMode?: 'append' | 'reset'` - - optional - - when set to `'reset'`, the query will erase all data and go back into `pending` state when a refetch occurs. - - when set to `'append'`, data will be appended on a refetch. - - defaults to `'reset'` +- `refetchMode?: 'append' | 'reset' | 'replace` + - Optional + - Defines how refetches are handled. + - Defaults to `'reset'` + - When set to `'reset'`, the query will erase all data and go back into `pending` state. + - When set to `'append'`, data will be appended to existing data. + - When set to `'replace'`, data will be written to the cache at the end of the stream. diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index c6f5c93107..eadeebea49 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -18,11 +18,11 @@ describe('streamedQuery', () => { vi.useRealTimers() }) - function createAsyncNumberGenerator(amount: number) { + function createAsyncNumberGenerator(amount: number, start = 0) { return { async *[Symbol.asyncIterator]() { - let num = 0 - while (num < amount) { + let num = start + while (num < amount + start) { await sleep(50) yield num++ } @@ -74,6 +74,61 @@ describe('streamedQuery', () => { unsubscribe() }) + test('should allow Arrays to be returned from the stream', async () => { + const key = queryKey() + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: streamedQuery({ + queryFn: async function* () { + for await (const num of createAsyncNumberGenerator(3)) { + yield [num, num] as const + } + }, + }), + }) + + const unsubscribe = observer.subscribe(vi.fn()) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'pending', + fetchStatus: 'fetching', + data: undefined, + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [[0, 0]], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [ + [0, 0], + [1, 1], + ], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: [ + [0, 0], + [1, 1], + [2, 2], + ], + }) + + unsubscribe() + }) + test('should replace on refetch', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { @@ -183,6 +238,64 @@ describe('streamedQuery', () => { unsubscribe() }) + test('should support refetchMode replace', async () => { + const key = queryKey() + let offset = 0 + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: streamedQuery({ + queryFn: () => createAsyncNumberGenerator(2, offset), + refetchMode: 'replace', + }), + }) + + const unsubscribe = observer.subscribe(vi.fn()) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'pending', + fetchStatus: 'fetching', + data: undefined, + }) + + await vi.advanceTimersByTimeAsync(100) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: [0, 1], + }) + + offset = 100 + + void observer.refetch() + + await vi.advanceTimersByTimeAsync(10) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0, 1], + }) + + await vi.advanceTimersByTimeAsync(40) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0, 1], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: [100, 101], + }) + + unsubscribe() + }) + test('should abort ongoing stream when refetch happens', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { diff --git a/packages/query-core/src/streamedQuery.ts b/packages/query-core/src/streamedQuery.ts index 72f3e4883d..b5b513434c 100644 --- a/packages/query-core/src/streamedQuery.ts +++ b/packages/query-core/src/streamedQuery.ts @@ -6,46 +6,63 @@ import type { QueryFunction, QueryFunctionContext, QueryKey } from './types' * The query will be in a 'pending' state until the first chunk of data is received, but will go to 'success' after that. * The query will stay in fetchStatus 'fetching' until the stream ends. * @param queryFn - The function that returns an AsyncIterable to stream data from. - * @param refetchMode - Defaults to 'reset', which replaces data when a refetch happens. Set to 'append' to append new data to the existing data. + * @param refetchMode - Defines how re-fetches are handled. + * Defaults to `'reset'`, erases all data and puts the query back into `pending` state. + * Set to `'append'` to append new data to the existing data. + * Set to `'replace'` to write the data to the cache at the end of the stream. */ export function streamedQuery< TQueryFnData = unknown, TQueryKey extends QueryKey = QueryKey, >({ queryFn, - refetchMode, + refetchMode = 'reset', }: { queryFn: ( context: QueryFunctionContext, ) => AsyncIterable | Promise> - refetchMode?: 'append' | 'reset' + refetchMode?: 'append' | 'reset' | 'replace' }): QueryFunction, TQueryKey> { return async (context) => { - if (refetchMode !== 'append') { - const query = context.client - .getQueryCache() - .find({ queryKey: context.queryKey, exact: true }) - if (query && query.state.data !== undefined) { - query.setState({ - status: 'pending', - data: undefined, - error: null, - fetchStatus: 'fetching', - }) - } + const query = context.client + .getQueryCache() + .find({ queryKey: context.queryKey, exact: true }) + const isRefetch = !!query && query.state.data !== undefined + + if (isRefetch && refetchMode === 'reset') { + query.setState({ + status: 'pending', + data: undefined, + error: null, + fetchStatus: 'fetching', + }) } + + const result: Array = [] const stream = await queryFn(context) + for await (const chunk of stream) { if (context.signal.aborted) { break } - context.client.setQueryData>( - context.queryKey, - (prev = []) => { - return prev.concat(chunk) - }, - ) + + // don't append to the cache directly when replace-refetching + if (!isRefetch || refetchMode !== 'replace') { + context.client.setQueryData>( + context.queryKey, + (prev = []) => { + return prev.concat([chunk]) + }, + ) + } + result.push(chunk) + } + + // finalize result: replace-refetching needs to write to the cache + if (isRefetch && refetchMode === 'replace' && !context.signal.aborted) { + context.client.setQueryData>(context.queryKey, result) } + return context.client.getQueryData(context.queryKey)! } } From b416643f9c3330f47e3fe78d85c54f8e7921ae22 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 1 May 2025 13:29:37 +0000 Subject: [PATCH 042/432] release: v5.75.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 122d6f57ad..e4b8a2009a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index b0a9d402a8..36c1c40674 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.74.9", + "@tanstack/query-sync-storage-persister": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "^0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index f2a1ccb417..395f535ae5 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index b6d0d120ea..d7fdec52df 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.74.11", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-devtools-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 14f53437c8..e667011577 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 1cde959f67..f2805e438d 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 5764849949..35824c4b46 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 6a1324ce12..b0bde7c11f 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index a22a432b66..1b2d38dff2 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 1129d93eb8..37e12b03c0 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 4c3ef4a92f..d62bfe243d 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.74.11", + "@tanstack/angular-query-experimental": "^5.75.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 7f3e7116d0..648b472e64 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index c23d423879..cbfe750663 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 2298a8030e..8c47ad2aad 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index b017092dec..29723b4533 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.9", - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", - "@tanstack/react-query-persist-client": "^5.74.11", + "@tanstack/query-sync-storage-persister": "^5.75.0", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query-persist-client": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 6705a9d370..389cde2fde 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 08903bfe5a..fe5a9e20a1 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 19699c1408..82d64efa81 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 9d70793d76..807391a867 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.9", - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", - "@tanstack/react-query-persist-client": "^5.74.11", + "@tanstack/query-sync-storage-persister": "^5.75.0", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query-persist-client": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 6d80f3f8f8..c13acde47f 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 48d3067855..e080d243be 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index cb3bdb30fa..64670c2f97 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 60510ed707..3bcf58da30 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", - "@tanstack/react-query-next-experimental": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query-next-experimental": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index d378b33774..c090a3ccd7 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 776506f024..c58b865131 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.9", + "@tanstack/query-sync-storage-persister": "^5.75.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", - "@tanstack/react-query-persist-client": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query-persist-client": "^5.75.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 0fbb18f0a9..707040723f 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 88b5bbf0a9..f406ef38fc 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index b2048ecbae..b338921654 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 6b4510c4cb..04756d4098 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 61e91e8e7a..4454e1a716 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index f7d4df611f..026e13aff2 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index ea92c796b2..386ed0cd50 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index c56743b809..231f17f6b2 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index fcf0404ea4..4d8716a025 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index b02649710f..a7376779be 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 099531c242..c652e681f7 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index b3b4d03bb3..ce9461b9fd 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.74.11", - "@tanstack/react-query-devtools": "^5.74.11", + "@tanstack/react-query": "^5.75.0", + "@tanstack/react-query-devtools": "^5.75.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 69a88fb6b2..dcfd0be956 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.74.10", - "@tanstack/solid-query-devtools": "^5.74.10", + "@tanstack/solid-query": "^5.75.0", + "@tanstack/solid-query-devtools": "^5.75.0", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index a9c3f7844e..a37a499c3e 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.10", - "@tanstack/solid-query-devtools": "^5.74.10", + "@tanstack/solid-query": "^5.75.0", + "@tanstack/solid-query-devtools": "^5.75.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index cc5422fead..f69fbd1b58 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.10", - "@tanstack/solid-query-devtools": "^5.74.10", + "@tanstack/solid-query": "^5.75.0", + "@tanstack/solid-query-devtools": "^5.75.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index b012b4d86b..ebee08ba9f 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.10", - "@tanstack/solid-query-devtools": "^5.74.10", + "@tanstack/solid-query": "^5.75.0", + "@tanstack/solid-query-devtools": "^5.75.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index f3ac768876..9ae7dfa56a 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.74.10", - "@tanstack/solid-query-devtools": "^5.74.10", + "@tanstack/solid-query": "^5.75.0", + "@tanstack/solid-query-devtools": "^5.75.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index dd541496e3..d31216d98c 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.74.10", - "@tanstack/solid-query-devtools": "^5.74.10", + "@tanstack/solid-query": "^5.75.0", + "@tanstack/solid-query-devtools": "^5.75.0", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 05d851cdbc..d398e3360e 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9" + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index be50f9a902..b93e506130 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.74.9", - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9", - "@tanstack/svelte-query-persist-client": "^5.74.9" + "@tanstack/query-sync-storage-persister": "^5.75.0", + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0", + "@tanstack/svelte-query-persist-client": "^5.75.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 99b5dc6567..b7a40faac6 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9" + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 73d36c9634..8c5476471a 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9" + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index fccde0f5db..c705bf53da 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9" + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 6946f9c3fb..ed25a8eaa1 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9" + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 65a591192e..e301df3df3 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9" + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 9ad63b0771..979b15990b 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.74.9", - "@tanstack/svelte-query-devtools": "^5.74.9" + "@tanstack/svelte-query": "^5.75.0", + "@tanstack/svelte-query-devtools": "^5.75.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 9686ab0b4e..af21e28c3a 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.9", + "@tanstack/vue-query": "^5.75.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 3ef671bc63..aa208a3ce4 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.9", + "@tanstack/vue-query": "^5.75.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 284d7541a2..46d142f0b9 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.9", - "@tanstack/vue-query-devtools": "^5.74.9", + "@tanstack/vue-query": "^5.75.0", + "@tanstack/vue-query-devtools": "^5.75.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 247b53a0cf..85afcf537b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.9", + "@tanstack/vue-query": "^5.75.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index b45e3f4c11..e6c6b7966b 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.74.9" + "@tanstack/vue-query": "^5.75.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index e771f4a16c..5618c62d84 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.74.9", - "@tanstack/query-persist-client-core": "^5.74.9", - "@tanstack/query-sync-storage-persister": "^5.74.9", - "@tanstack/vue-query": "^5.74.9", + "@tanstack/query-core": "^5.75.0", + "@tanstack/query-persist-client-core": "^5.75.0", + "@tanstack/query-sync-storage-persister": "^5.75.0", + "@tanstack/vue-query": "^5.75.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 3c734b944d..36edee1bf7 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.74.9", - "@tanstack/vue-query-devtools": "^5.74.9", + "@tanstack/vue-query": "^5.75.0", + "@tanstack/vue-query-devtools": "^5.75.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 907c464d31..8b73f8007f 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.74.11", + "version": "5.75.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 0e6be5d28c..dde9b933df 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.74.11", + "version": "5.75.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 4ededb026e..3749fc9b09 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.74.9", + "version": "5.75.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index e8af44953c..7f352fd1e0 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.74.9", + "version": "5.75.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 15b47b8b3b..b724ad6ace 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.74.9", + "version": "5.75.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 117c9abc2d..d691263172 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.74.9", + "version": "5.75.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 95cfcc4ca6..72f05e65cd 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.74.9", + "version": "5.75.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 9973d92a77..2de34eeca6 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.74.11", + "version": "5.75.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index f03a6a418e..df249d6ea1 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.74.11", + "version": "5.75.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 1ec4d10227..77efaf2350 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.74.11", + "version": "5.75.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 856ba54004..f331c48949 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.74.11", + "version": "5.75.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 1131001f88..2dcbd2bc9b 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.74.10", + "version": "5.75.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 7e067061c0..0c3d4a6425 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.74.10", + "version": "5.75.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 69422ff6d6..c1d32c2dd4 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.74.10", + "version": "5.75.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index d1d7b26f1f..527104f510 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.74.9", + "version": "5.75.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index cdbc067abf..c0f49d82aa 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.74.9", + "version": "5.75.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 1f1aa9a22d..f97d47f28a 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.74.9", + "version": "5.75.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 0a07cf3629..51fe17af30 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.74.9", + "version": "5.75.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 8f1d74914c..925013639c 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.74.9", + "version": "5.75.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From fd34b987005379740d246020d1913582970087ad Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Fri, 2 May 2025 01:27:07 +0900 Subject: [PATCH 043/432] test(react-query): use fake timers for useMutation.test.tsx (#9094) --- .../src/__tests__/useMutation.test.tsx | 154 +++++++++++------- 1 file changed, 94 insertions(+), 60 deletions(-) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 1bbf1f4a7e..668ac07f4b 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -1,7 +1,7 @@ import '@testing-library/jest-dom/vitest' -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' import { MutationCache, QueryCache, useMutation } from '..' @@ -16,9 +16,25 @@ import { import type { UseMutationResult } from '../types' describe('useMutation', () => { - const queryCache = new QueryCache() - const mutationCache = new MutationCache() - const queryClient = createQueryClient({ queryCache, mutationCache }) + let queryCache = new QueryCache() + let mutationCache = new MutationCache() + let queryClient = createQueryClient({ + queryCache, + mutationCache, + }) + + beforeEach(() => { + queryCache = new QueryCache() + mutationCache = new MutationCache() + queryClient = createQueryClient({ + queryCache, + }) + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) it('should be able to reset `data`', async () => { function Page() { @@ -43,13 +59,13 @@ describe('useMutation', () => { fireEvent.click(getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(getByRole('heading').textContent).toBe('mutation') }) fireEvent.click(getByRole('button', { name: /reset/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(getByRole('heading').textContent).toBe('empty') }) }) @@ -75,13 +91,13 @@ describe('useMutation', () => { const { getByRole, queryByRole } = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { expect(queryByRole('heading')).toBeNull() }) fireEvent.click(getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(getByRole('heading').textContent).toBe( 'Expected mock error. All is well!', ) @@ -89,7 +105,7 @@ describe('useMutation', () => { fireEvent.click(getByRole('button', { name: /reset/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(queryByRole('heading')).toBeNull() }) }) @@ -127,11 +143,11 @@ describe('useMutation', () => { fireEvent.click(getByRole('button', { name: /mutate/i })) fireEvent.click(getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(getByRole('heading').textContent).toBe('3') }) - await waitFor(() => { + await vi.waitFor(() => { expect(onSuccessMock).toHaveBeenCalledTimes(3) }) @@ -139,7 +155,7 @@ describe('useMutation', () => { expect(onSuccessMock).toHaveBeenCalledWith(2) expect(onSuccessMock).toHaveBeenCalledWith(3) - await waitFor(() => { + await vi.waitFor(() => { expect(onSettledMock).toHaveBeenCalledTimes(3) }) @@ -181,20 +197,22 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data')) + await vi.waitFor(() => rendered.getByText('Data')) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => rendered.getByText('Data')) - await waitFor(() => rendered.getByText('Status error')) - await waitFor(() => rendered.getByText('Failed 1 times')) - await waitFor(() => rendered.getByText('Failed because Error test Jonas')) + await vi.waitFor(() => rendered.getByText('Data')) + await vi.waitFor(() => rendered.getByText('Status error')) + await vi.waitFor(() => rendered.getByText('Failed 1 times')) + await vi.waitFor(() => + rendered.getByText('Failed because Error test Jonas'), + ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => rendered.getByText('Status pending')) - await waitFor(() => rendered.getByText('Status success')) - await waitFor(() => rendered.getByText('Data 2')) - await waitFor(() => rendered.getByText('Failed 0 times')) - await waitFor(() => rendered.getByText('Failed because null')) + await vi.waitFor(() => rendered.getByText('Status pending')) + await vi.waitFor(() => rendered.getByText('Status success')) + await vi.waitFor(() => rendered.getByText('Data 2')) + await vi.waitFor(() => rendered.getByText('Failed 0 times')) + await vi.waitFor(() => rendered.getByText('Failed because null')) }) it('should be able to call `onError` and `onSettled` after each failed mutate', async () => { @@ -235,11 +253,11 @@ describe('useMutation', () => { fireEvent.click(getByRole('button', { name: /mutate/i })) fireEvent.click(getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(getByRole('heading').textContent).toBe('3') }) - await waitFor(() => { + await vi.waitFor(() => { expect(onErrorMock).toHaveBeenCalledTimes(3) }) expect(onErrorMock).toHaveBeenCalledWith( @@ -252,7 +270,7 @@ describe('useMutation', () => { 'Expected mock error. All is well! 3', ) - await waitFor(() => { + await vi.waitFor(() => { expect(onSettledMock).toHaveBeenCalledTimes(3) }) expect(onSettledMock).toHaveBeenCalledWith( @@ -305,7 +323,7 @@ describe('useMutation', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(10) expect(callbacks).toEqual([ 'useMutation.onSuccess', @@ -356,7 +374,7 @@ describe('useMutation', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(10) expect(callbacks).toEqual([ 'useMutation.onError', @@ -397,7 +415,7 @@ describe('useMutation', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(30) expect(states.length).toBe(3) expect(states[0]).toMatchObject({ data: undefined, isPending: false }) @@ -429,7 +447,7 @@ describe('useMutation', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(15) expect(count).toBe(2) }) @@ -463,7 +481,7 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { expect( rendered.getByText('error: null, status: idle, isPaused: false'), ).toBeInTheDocument() @@ -471,7 +489,7 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect( rendered.getByText('error: null, status: pending, isPaused: true'), ).toBeInTheDocument() @@ -482,9 +500,7 @@ describe('useMutation', () => { onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - await sleep(100) - - await waitFor(() => { + await vi.waitFor(() => { expect( rendered.getByText('error: oops, status: error, isPaused: false'), ).toBeInTheDocument() @@ -522,11 +538,13 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('data: null, status: idle, isPaused: false') + rendered.findByText('data: null, status: idle, isPaused: false') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await rendered.findByText('data: null, status: pending, isPaused: true') + await vi.waitFor(() => + rendered.findByText('data: null, status: pending, isPaused: true'), + ) expect(onMutate).toHaveBeenCalledTimes(1) expect(onMutate).toHaveBeenCalledWith('todo') @@ -534,7 +552,9 @@ describe('useMutation', () => { onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - await rendered.findByText('data: 1, status: success, isPaused: false') + await vi.waitFor(() => + rendered.findByText('data: 1, status: success, isPaused: false'), + ) expect(onMutate).toHaveBeenCalledTimes(1) expect(count).toBe(1) @@ -571,11 +591,15 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('data: null, status: idle, isPaused: false') + await vi.waitFor(() => + rendered.findByText('data: null, status: idle, isPaused: false'), + ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await rendered.findByText('data: null, status: pending, isPaused: true') + await vi.waitFor(() => + rendered.findByText('data: null, status: pending, isPaused: true'), + ) // no intermediate 'pending, false' state is expected because we don't start mutating! expect(states[0]).toBe('idle, false') @@ -584,7 +608,9 @@ describe('useMutation', () => { onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - await rendered.findByText('data: 1, status: success, isPaused: false') + await vi.waitFor(() => + rendered.findByText('data: 1, status: success, isPaused: false'), + ) onlineMock.mockRestore() }) @@ -622,9 +648,9 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: idle')) + await vi.waitFor(() => rendered.getByText('status: idle')) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => rendered.getByText('isPaused: true')) + await vi.waitFor(() => rendered.getByText('isPaused: true')) expect( queryClient.getMutationCache().findAll({ mutationKey: key }).length, @@ -641,7 +667,7 @@ describe('useMutation', () => { onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - await waitFor(() => rendered.getByText('data: data2')) + await vi.waitFor(() => rendered.getByText('data: data2')) expect( queryClient.getMutationCache().findAll({ mutationKey: key })[0]?.state, @@ -713,7 +739,7 @@ describe('useMutation', () => { fireEvent.click(getByText('mutate')) - await waitFor(() => { + await vi.waitFor(() => { expect(queryByText('error')).not.toBeNull() }) @@ -762,14 +788,14 @@ describe('useMutation', () => { // first error goes to component fireEvent.click(getByText('mutate')) - await waitFor(() => { + await vi.waitFor(() => { expect(queryByText('mock error')).not.toBeNull() }) // second error goes to boundary boundary = true fireEvent.click(getByText('mutate')) - await waitFor(() => { + await vi.waitFor(() => { expect(queryByText('error boundary')).not.toBeNull() }) consoleMock.mockRestore() @@ -823,7 +849,7 @@ describe('useMutation', () => { fireEvent.click(getByText('succeed')) fireEvent.click(getByText('error')) - await waitFor(() => { + await vi.waitFor(() => { expect(queryByText('successTest')).not.toBeNull() expect(queryByText('errorTest')).not.toBeNull() }) @@ -887,12 +913,14 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('data: null, status: idle, isPaused: false') + await vi.waitFor(() => + rendered.findByText('data: null, status: idle, isPaused: false'), + ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await waitFor(() => { + await vi.waitFor(() => { expect( queryClient.getMutationCache().findAll({ mutationKey }), ).toHaveLength(0) @@ -956,12 +984,14 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('data: null, status: idle') + await vi.waitFor(() => rendered.findByText('data: null, status: idle')) fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) - await rendered.findByText('data: result-todo2, status: success') + await vi.waitFor(() => + rendered.findByText('data: result-todo2, status: success'), + ) expect(count).toBe(2) @@ -1018,11 +1048,11 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('status: idle') + await vi.waitFor(() => rendered.findByText('status: idle')) rendered.getByRole('button', { name: /mutate/i }).click() - await rendered.findByText('status: error') + await vi.waitFor(() => rendered.findByText('status: error')) expect(onError).toHaveBeenCalledWith(error, 'todo', undefined) }) @@ -1054,11 +1084,13 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('error: null, status: idle') + await vi.waitFor(() => rendered.findByText('error: null, status: idle')) rendered.getByRole('button', { name: /mutate/i }).click() - await rendered.findByText('error: mutateFnError, status: error') + await vi.waitFor(() => + rendered.findByText('error: mutateFnError, status: error'), + ) }) it('should go to error state if onSettled callback errors', async () => { @@ -1090,11 +1122,13 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('error: null, status: idle') + await vi.waitFor(() => rendered.findByText('error: null, status: idle')) rendered.getByRole('button', { name: /mutate/i }).click() - await rendered.findByText('error: mutateFnError, status: error') + await vi.waitFor(() => + rendered.findByText('error: mutateFnError, status: error'), + ) expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined) }) @@ -1124,11 +1158,11 @@ describe('useMutation', () => { const rendered = render() - await rendered.findByText('data: null, status: idle') + await vi.waitFor(() => rendered.findByText('data: null, status: idle')) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => + await vi.waitFor(() => rendered.findByText('data: custom client, status: success'), ) }) From df8e02b47f8a33bf2d7a9ad065efc626616deafc Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Fri, 2 May 2025 01:43:37 +0900 Subject: [PATCH 044/432] test(react-query): use fake timers for useQuery.test.tsx (#9086) --- .../src/__tests__/useQuery.test.tsx | 713 +++++++++--------- 1 file changed, 352 insertions(+), 361 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index a172b70f57..e401ee8612 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, test, vi } from 'vitest' -import { act, fireEvent, render, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' +import { act, fireEvent, render } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' import { dehydrate, hydrate, skipToken } from '@tanstack/query-core' @@ -18,11 +18,23 @@ import type { DefinedUseQueryResult, QueryFunction, UseQueryResult } from '..' import type { Mock } from 'vitest' describe('useQuery', () => { - const queryCache = new QueryCache() - const queryClient = createQueryClient({ + let queryCache = new QueryCache() + let queryClient = createQueryClient({ queryCache, }) + beforeEach(() => { + queryCache = new QueryCache() + queryClient = createQueryClient({ + queryCache, + }) + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + // See https://github.com/tannerlinsley/react-query/issues/105 it('should allow to set default data value', async () => { const key = queryKey() @@ -30,10 +42,7 @@ describe('useQuery', () => { function Page() { const { data = 'default' } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) return ( @@ -47,7 +56,7 @@ describe('useQuery', () => { rendered.getByText('default') - await waitFor(() => rendered.getByText('test')) + await vi.waitFor(() => rendered.getByText('test')) }) it('should return the correct states for a successful query', async () => { @@ -78,7 +87,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('test')) + await vi.waitFor(() => rendered.getByText('test')) expect(states.length).toEqual(2) @@ -169,7 +178,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Status: error')) + await vi.waitFor(() => rendered.getByText('Status: error')) expect(states[0]).toEqual({ data: undefined, @@ -287,7 +296,7 @@ describe('useQuery', () => { rendered.getByText('isFetched: true') rendered.getByText('isFetchedAfterMount: false') - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data: new data') rendered.getByText('isFetched: true') rendered.getByText('isFetchedAfterMount: true') @@ -324,7 +333,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(20) + await vi.advanceTimersByTimeAsync(15) // first refetch only, second refetch is ignored expect(fetchCount).toBe(1) }) @@ -359,7 +368,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(20) + await vi.advanceTimersByTimeAsync(15) // first refetch (gets cancelled) and second refetch expect(fetchCount).toBe(2) }) @@ -393,7 +402,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(20) + await vi.advanceTimersByTimeAsync(15) // first refetch will not get cancelled, second one gets skipped expect(fetchCount).toBe(1) }) @@ -412,8 +421,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) - + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) expect(states[1]).toMatchObject({ data: 'data' }) @@ -459,11 +467,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('data: 1') + await vi.waitFor(() => rendered.findByText('data: 1')) fireEvent.click(rendered.getByRole('button', { name: /toggle/i })) - await rendered.findByText('data: 2') + await vi.waitFor(() => rendered.findByText('data: 2')) expect(states.length).toBe(4) // First load @@ -530,19 +538,16 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data') }) fireEvent.click(rendered.getByRole('button', { name: 'remove' })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data') }) - // required to make sure no additional renders are happening after data is successfully fetched for the second time - await sleep(100) - expect(states.length).toBe(4) // First load expect(states[0]).toMatchObject({ @@ -586,9 +591,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) - - expect(states.length).toBe(2) + await vi.waitFor(() => expect(states.length).toBe(2)) expect(states[0]).toMatchObject({ data: undefined }) expect(states[1]).toMatchObject({ data: 'test' }) }) @@ -611,8 +614,6 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) - expect(states.length).toBe(1) expect(states[0]).toMatchObject({ data: 'prefetched' }) }) @@ -634,7 +635,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('test') }) @@ -660,7 +661,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('test') }) @@ -689,7 +690,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('error') }) @@ -726,13 +727,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('error: Select Error')) + await vi.waitFor(() => rendered.getByText('error: Select Error')) expect(runs).toEqual(1) fireEvent.click(rendered.getByRole('button', { name: 'rerender' })) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(runs).toEqual(1) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(runs).toEqual(2) }) @@ -763,11 +764,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('test1')) + await vi.waitFor(() => rendered.getByText('test1')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('test2')) + await vi.waitFor(() => rendered.getByText('test2')) expect(states.length).toBe(3) expect(states[0]).toMatchObject({ data: undefined }) @@ -798,14 +799,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await waitFor(() => { - expect(renderCount).toBe(2) - }) - - // give it a bit more time to make sure no additional renders are triggered - await sleep(20) - - expect(renderCount).toBe(2) + await vi.waitFor(() => expect(renderCount).toBe(2)) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) expect(states[1]).toMatchObject({ data: 'test' }) @@ -839,12 +833,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByRole('button', { name: /remove/i })) - await sleep(20) + await vi.advanceTimersByTimeAsync(20) fireEvent.click(rendered.getByRole('button', { name: /rerender/i })) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) expect(states.length).toBe(4) // Initial @@ -889,12 +883,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByRole('button', { name: /remove/i })) - await sleep(50) + await vi.advanceTimersByTimeAsync(50) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) expect(states.length).toBe(4) // Initial @@ -949,12 +943,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: false')) - await sleep(20) + await vi.waitFor(() => rendered.getByText('data: false')) + await vi.advanceTimersByTimeAsync(20) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('data: true')) + await vi.waitFor(() => rendered.getByText('data: true')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => expect(states.length).toBe(4)) const todos = states[2]?.data const todo1 = todos?.[0] @@ -1003,9 +997,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: set')) + await vi.waitFor(() => rendered.getByText('data: set')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('data: fetched')) + await vi.waitFor(() => rendered.getByText('data: fetched')) }) it('should update query stale state and refetch when invalidated with invalidateQueries', async () => { @@ -1038,14 +1032,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('data: 1, isStale: false, isFetching: false'), ) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('data: 1, isStale: true, isFetching: true'), ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('data: 2, isStale: false, isFetching: false'), ) }) @@ -1079,7 +1073,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(50) + await vi.advanceTimersByTimeAsync(50) expect(states.length).toBe(1) expect(states[0]).toMatchObject({ @@ -1119,8 +1113,6 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(50) - expect(states.length).toBe(1) expect(states[0]).toMatchObject({ data: undefined, @@ -1159,18 +1151,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: /increment/i })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('count: 1') rendered.getByText('data: undefined') }) - // making sure no additional fetches are triggered - await sleep(50) - expect(states.length).toBe(3) // Fetch query @@ -1221,11 +1210,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) // Initial expect(states[0]).toMatchObject({ @@ -1290,11 +1279,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) // Initial expect(states[0]).toMatchObject({ @@ -1365,13 +1354,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('data: 3')) + await vi.waitFor(() => rendered.getByText('data: 3')) const allPreviousKeysAreTheFirstQueryKey = keys.every( (k) => JSON.stringify(k) === JSON.stringify([key, 0]), @@ -1413,13 +1402,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('data: 3')) + await vi.waitFor(() => rendered.getByText('data: 3')) // Initial expect(states[0]).toMatchObject({ data: undefined, @@ -1494,13 +1483,13 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) act(() => rendered.rerender()) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) act(() => rendered.rerender()) - await waitFor(() => rendered.getByText('error: Error test')) + await vi.waitFor(() => rendered.getByText('error: Error test')) - await waitFor(() => expect(states.length).toBe(6)) + await vi.waitFor(() => expect(states.length).toBe(6)) // Initial expect(states[0]).toMatchObject({ data: undefined, @@ -1583,13 +1572,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('data: 0, count: 0, isFetching: false'), ) fireEvent.click(rendered.getByRole('button', { name: 'inc' })) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('data: 1, count: 1, isFetching: false'), ) @@ -1656,31 +1645,28 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data: undefined') }) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data: 0') }) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data: 0') }) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data: 1') }) - // making sure no additional renders are triggered - await sleep(20) - expect(states.length).toBe(6) // Disabled query @@ -1733,7 +1719,7 @@ describe('useQuery', () => { queryClient.setQueryData([key, 10], 10) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) function Page() { const [count, setCount] = React.useState(10) @@ -1770,7 +1756,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(5) @@ -1852,10 +1838,10 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => expect(states.length).toBe(4)) expect(states[0]).toMatchObject({ data: undefined, @@ -1877,7 +1863,7 @@ describe('useQuery', () => { const states1: Array> = [] const states2: Array> = [] - await queryClient.prefetchQuery({ + queryClient.prefetchQuery({ queryKey: key, queryFn: async () => { await sleep(10) @@ -1885,7 +1871,7 @@ describe('useQuery', () => { }, }) - await sleep(20) + await vi.advanceTimersByTimeAsync(20) function FirstComponent() { const state = useQuery({ @@ -1926,7 +1912,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(200) + await vi.advanceTimersByTimeAsync(200) expect(states1.length).toBe(4) expect(states2.length).toBe(3) @@ -1989,7 +1975,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(3) expect(states[0]).toMatchObject({ isStale: true }) @@ -2045,10 +2031,10 @@ describe('useQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /set id/i })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('User fetching status is fetching') }) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('UserInfo data is {"id":42,"name":"John"}') }) @@ -2080,13 +2066,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('test') }) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('test') }) @@ -2094,7 +2080,7 @@ describe('useQuery', () => { expect(states[1]).toMatchObject({ data: 'test' }) // make sure no additional renders happen - await sleep(50) + await vi.advanceTimersByTimeAsync(50) expect(states.length).toBe(2) }) it('should not re-render when it should only re-render on data changes and the data did not change', async () => { @@ -2131,14 +2117,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('test') }) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) // sleep is required to make sure no additional renders happen after click - await sleep(20) + await vi.advanceTimersByTimeAsync(20) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -2188,14 +2174,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('test') }) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - // sleep is required to make sure no additional renders happen after click - await sleep(20) + await vi.advanceTimersByTimeAsync(20) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -2264,7 +2249,7 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('fetch counter: 1') }) @@ -2286,8 +2271,7 @@ describe('useQuery', () => { ) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - // sleep is required to make sure no additional renders happen after click - await sleep(20) + await vi.advanceTimersByTimeAsync(20) // still expect to only have two re-renders from the initial fetch expect(states.length).toBe(2) @@ -2297,11 +2281,10 @@ describe('useQuery', () => { ) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('fetch counter: 3') }) - // sleep is required to make sure no additional renders happen after click - await sleep(20) + await vi.advanceTimersByTimeAsync(20) expect(states.length).toBe(4) expect(states[2]).toMatchObject({ @@ -2399,7 +2382,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data data') }) @@ -2425,7 +2408,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('new')) + await vi.waitFor(() => rendered.getByText('new')) }) // See https://github.com/tannerlinsley/react-query/issues/170 @@ -2458,8 +2441,10 @@ describe('useQuery', () => { // use "act" to wait for state update and prevent console warning rendered.getByText('First Status: pending, idle') - await waitFor(() => rendered.getByText('Second Status: pending, fetching')) - await waitFor(() => rendered.getByText('Second Status: success, idle')) + await vi.waitFor(() => + rendered.getByText('Second Status: pending, fetching'), + ) + await vi.waitFor(() => rendered.getByText('Second Status: success, idle')) }) // See https://github.com/tannerlinsley/react-query/issues/144 @@ -2505,7 +2490,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('default')) + await vi.waitFor(() => rendered.getByText('default')) act(() => { window.dispatchEvent(new Event('visibilitychange')) @@ -2532,13 +2517,13 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) act(() => { window.dispatchEvent(new Event('visibilitychange')) }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) @@ -2563,13 +2548,13 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) act(() => { window.dispatchEvent(new Event('visibilitychange')) }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) @@ -2594,13 +2579,13 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) act(() => { window.dispatchEvent(new Event('visibilitychange')) }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) @@ -2635,13 +2620,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0, isFetching: false')) + await vi.waitFor(() => rendered.getByText('data: 0, isFetching: false')) act(() => { window.dispatchEvent(new Event('visibilitychange')) }) - await waitFor(() => rendered.getByText('data: 1, isFetching: false')) + await vi.waitFor(() => rendered.getByText('data: 1, isFetching: false')) }) it('should calculate focus behavior for `refetchOnWindowFocus` depending on function', async () => { @@ -2667,7 +2652,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await rendered.findByText('data: 0') + await vi.waitFor(() => rendered.findByText('data: 0')) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) @@ -2677,7 +2662,7 @@ describe('useQuery', () => { window.dispatchEvent(new Event('visibilitychange')) }) - await rendered.findByText('data: 1') + await vi.waitFor(() => rendered.findByText('data: 1')) // refetch should happen expect(states.length).toBe(4) @@ -2689,7 +2674,7 @@ describe('useQuery', () => { window.dispatchEvent(new Event('visibilitychange')) }) - await sleep(20) + await vi.advanceTimersByTimeAsync(20) // no more refetch now expect(states.length).toBe(4) @@ -2717,7 +2702,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -2741,7 +2726,7 @@ describe('useQuery', () => { queryFn: () => 'prefetched', }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) function Page() { const state = useQuery({ @@ -2756,7 +2741,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -2796,8 +2781,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('error')) - await waitFor(() => rendered.getByText('Error test')) + await vi.waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('Error test')) consoleMock.mockRestore() }) @@ -2831,7 +2816,7 @@ describe('useQuery', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) consoleMock.mockRestore() }) @@ -2856,9 +2841,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) - - await waitFor(() => expect(queryClient.isFetching()).toBe(0)) + await vi.waitFor(() => expect(queryClient.isFetching()).toBe(0)) expect(result?.data).toBe('data') }) @@ -2890,8 +2873,8 @@ describe('useQuery', () => { , ) - await waitFor(() => rendered.getByText('error')) - await waitFor(() => rendered.getByText('Local Error')) + await vi.waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('Local Error')) }) it('should throw error instead of setting status when error should be thrown', async () => { @@ -2932,8 +2915,8 @@ describe('useQuery', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('Remote Error')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('Remote Error')) consoleMock.mockRestore() }) @@ -2976,14 +2959,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('failureCount: 1')) - await waitFor(() => rendered.getByText('failureReason: some error')) + await vi.waitFor(() => rendered.getByText('failureCount: 1')) + await vi.waitFor(() => rendered.getByText('failureReason: some error')) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await waitFor(() => rendered.getByRole('button', { name: /show/i })) + await vi.waitFor(() => rendered.getByRole('button', { name: /show/i })) fireEvent.click(rendered.getByRole('button', { name: /show/i })) - await waitFor(() => rendered.getByText('error: some error')) + await vi.waitFor(() => rendered.getByText('error: some error')) - expect(count).toBe(3) + expect(count).toBe(4) }) it('should restart when observers unmount and remount while waiting for a retry when query was cancelled in between (#3031)', async () => { @@ -3028,13 +3011,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('failureCount: 1')) - await waitFor(() => rendered.getByText('failureReason: some error')) + await vi.waitFor(() => rendered.getByText('failureCount: 1')) + await vi.waitFor(() => rendered.getByText('failureReason: some error')) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) fireEvent.click(rendered.getByRole('button', { name: /cancel/i })) - await waitFor(() => rendered.getByRole('button', { name: /show/i })) + await vi.waitFor(() => rendered.getByRole('button', { name: /show/i })) fireEvent.click(rendered.getByRole('button', { name: /show/i })) - await waitFor(() => rendered.getByText('error: some error')) + await vi.waitFor(() => rendered.getByText('error: some error')) // initial fetch (1), which will be cancelled, followed by new mount(2) + 2 retries = 4 expect(count).toBe(4) @@ -3068,8 +3051,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) - await waitFor(() => expect(states.length).toBe(3)) + await vi.waitFor(() => rendered.getByText('data: data')) + await vi.waitFor(() => expect(states.length).toBe(3)) expect(states[0]).toMatchObject({ data: 'prefetched', @@ -3104,7 +3087,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(50) + await vi.advanceTimersByTimeAsync(50) expect(states.length).toBe(2) @@ -3137,7 +3120,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -3172,7 +3155,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(3) expect(states[0]).toMatchObject({ @@ -3210,7 +3193,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -3250,7 +3233,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) // Initial @@ -3286,12 +3269,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('pending')) - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('pending')) + await vi.waitFor(() => rendered.getByText('error')) // query should fail `retry + 1` times, since first time isn't a "retry" - await waitFor(() => rendered.getByText('Failed 2 times')) - await waitFor(() => rendered.getByText('Failed because Error test Barrett')) + await vi.waitFor(() => rendered.getByText('Failed 2 times')) + await vi.waitFor(() => + rendered.getByText('Failed because Error test Barrett'), + ) expect(queryFn).toHaveBeenCalledTimes(2) }) @@ -3329,13 +3314,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('pending')) - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('pending')) + await vi.waitFor(() => rendered.getByText('error')) - await waitFor(() => rendered.getByText('Failed 2 times')) - await waitFor(() => rendered.getByText('Failed because NoRetry')) + await vi.waitFor(() => rendered.getByText('Failed 2 times')) + await vi.waitFor(() => rendered.getByText('Failed because NoRetry')) - await waitFor(() => rendered.getByText('NoRetry')) + await vi.waitFor(() => rendered.getByText('NoRetry')) expect(queryFn).toHaveBeenCalledTimes(2) }) @@ -3369,12 +3354,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(queryFn).toHaveBeenCalledTimes(1) - await waitFor(() => rendered.getByText('Failed because DelayError: 50ms')) - await waitFor(() => rendered.getByText('Failed 2 times')) + await vi.waitFor(() => + rendered.getByText('Failed because DelayError: 50ms'), + ) + await vi.waitFor(() => rendered.getByText('Failed 2 times')) expect(queryFn).toHaveBeenCalledTimes(2) }) @@ -3412,15 +3399,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // The query should display the first error result - await waitFor(() => rendered.getByText('failureCount 1')) - await waitFor(() => rendered.getByText('failureReason fetching error 1')) - await waitFor(() => rendered.getByText('status pending')) - await waitFor(() => rendered.getByText('error null')) + await vi.waitFor(() => rendered.getByText('failureCount 1')) + await vi.waitFor(() => rendered.getByText('failureReason fetching error 1')) + await vi.waitFor(() => rendered.getByText('status pending')) + await vi.waitFor(() => rendered.getByText('error null')) // Check if the query really paused - await sleep(10) - await waitFor(() => rendered.getByText('failureCount 1')) - await waitFor(() => rendered.getByText('failureReason fetching error 1')) + await vi.advanceTimersByTimeAsync(10) + await vi.waitFor(() => rendered.getByText('failureCount 1')) + await vi.waitFor(() => rendered.getByText('failureReason fetching error 1')) act(() => { // reset visibilityState to original value @@ -3429,15 +3416,15 @@ describe('useQuery', () => { }) // Wait for the final result - await waitFor(() => rendered.getByText('failureCount 4')) - await waitFor(() => rendered.getByText('failureReason fetching error 4')) - await waitFor(() => rendered.getByText('status error')) - await waitFor(() => rendered.getByText('error fetching error 4')) + await vi.waitFor(() => rendered.getByText('failureCount 4')) + await vi.waitFor(() => rendered.getByText('failureReason fetching error 4')) + await vi.waitFor(() => rendered.getByText('status error')) + await vi.waitFor(() => rendered.getByText('error fetching error 4')) // Check if the query really stopped - await sleep(10) - await waitFor(() => rendered.getByText('failureCount 4')) - await waitFor(() => rendered.getByText('failureReason fetching error 4')) + await vi.advanceTimersByTimeAsync(10) + await vi.waitFor(() => rendered.getByText('failureCount 4')) + await vi.waitFor(() => rendered.getByText('failureReason fetching error 4')) }) it('should fetch on mount when a query was already created with setQueryData', async () => { @@ -3454,7 +3441,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states).toMatchObject([ @@ -3499,7 +3486,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await waitFor(() => expect(states.length).toBe(2)) + await vi.waitFor(() => expect(states.length).toBe(2)) act(() => { // reset visibilityState to original value @@ -3507,7 +3494,7 @@ describe('useQuery', () => { window.dispatchEvent(new Event('visibilitychange')) }) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => expect(states.length).toBe(4)) expect(states).toMatchObject([ { @@ -3550,7 +3537,7 @@ describe('useQuery', () => { staleTime: 10, }) - await sleep(11) + await vi.advanceTimersByTimeAsync(10) function Page() { const state = useQuery({ queryKey: key, queryFn }) @@ -3560,7 +3547,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await waitFor(() => expect(states.length).toBe(2)) + await vi.waitFor(() => expect(states.length).toBe(2)) expect(prefetchQueryFn).toHaveBeenCalledTimes(1) expect(queryFn).toHaveBeenCalledTimes(1) @@ -3579,13 +3566,13 @@ describe('useQuery', () => { return 'not yet...' }) - await queryClient.prefetchQuery({ + queryClient.prefetchQuery({ queryKey: key, queryFn: prefetchQueryFn, staleTime: 1000, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) function Page() { useQuery({ queryKey: key, queryFn, staleTime: 1000 }) @@ -3594,7 +3581,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(prefetchQueryFn).toHaveBeenCalledTimes(1) expect(queryFn).toHaveBeenCalledTimes(0) @@ -3630,10 +3617,10 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('failureCount 2')) - await waitFor(() => rendered.getByText('failureReason error')) - await waitFor(() => rendered.getByText('failureCount 0')) - await waitFor(() => rendered.getByText('failureReason null')) + await vi.waitFor(() => rendered.getByText('failureCount 2')) + await vi.waitFor(() => rendered.getByText('failureReason error')) + await vi.waitFor(() => rendered.getByText('failureCount 0')) + await vi.waitFor(() => rendered.getByText('failureReason null')) }) // See https://github.com/tannerlinsley/react-query/issues/199 @@ -3678,11 +3665,11 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('isPrefetched')) + await vi.waitFor(() => rendered.getByText('isPrefetched')) fireEvent.click(rendered.getByText('setKey')) - await waitFor(() => rendered.getByText('data: prefetched data')) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: prefetched data')) + await vi.waitFor(() => rendered.getByText('data: 1')) expect(count).toBe(1) }) @@ -3716,8 +3703,8 @@ describe('useQuery', () => { fireEvent.click(rendered.getByText('fetch')) - await waitFor(() => rendered.getByText('FetchStatus: fetching')) - await waitFor(() => [ + await vi.waitFor(() => rendered.getByText('FetchStatus: fetching')) + await vi.waitFor(() => [ rendered.getByText('FetchStatus: idle'), rendered.getByText('Data: data'), ]) @@ -3742,8 +3729,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: initialData')) - await waitFor(() => rendered.getByText('data: serverData')) + await vi.waitFor(() => rendered.getByText('data: initialData')) + await vi.waitFor(() => rendered.getByText('data: serverData')) expect(results.length).toBe(2) expect(results[0]).toMatchObject({ data: 'initialData', isFetching: true }) @@ -3766,7 +3753,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(results.length).toBe(2) expect(results[0]).toMatchObject({ data: 0, isFetching: true }) @@ -3820,12 +3807,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Current Todos, filter: all')) + await vi.waitFor(() => rendered.getByText('Current Todos, filter: all')) fireEvent.click(rendered.getByRole('button', { name: /high/i })) - await waitFor(() => rendered.getByText('Current Todos, filter: high')) + await vi.waitFor(() => rendered.getByText('Current Todos, filter: high')) fireEvent.click(rendered.getByRole('button', { name: /all/i })) - await waitFor(() => rendered.getByText('todo B - medium')) + await vi.waitFor(() => rendered.getByText('todo B - medium')) }) // // See https://github.com/tannerlinsley/react-query/issues/214 @@ -3862,14 +3849,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('fetched data') rendered.getByText('enabled') }) fireEvent.click(rendered.getByRole('button', { name: /enable/i })) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('fetched data') rendered.getByText('disabled') }) @@ -3924,7 +3911,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: pending, idle')) + await vi.waitFor(() => rendered.getByText('status: pending, idle')) }) test('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { @@ -3941,7 +3928,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('fetched data')) + await vi.waitFor(() => rendered.getByText('fetched data')) const setTimeoutSpy = vi.spyOn(globalThis.window, 'setTimeout') rendered.unmount() @@ -3963,7 +3950,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('fetched data')) + await vi.waitFor(() => rendered.getByText('fetched data')) const setTimeoutSpy = vi.spyOn(globalThis.window, 'setTimeout') @@ -4013,11 +4000,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status pending')) - await waitFor(() => rendered.getByText('status success')) + await vi.waitFor(() => rendered.getByText('status pending')) + await vi.waitFor(() => rendered.getByText('status success')) fireEvent.click(rendered.getByText('refetch')) - await waitFor(() => rendered.getByText('isFetching true')) - await waitFor(() => rendered.getByText('isFetching false')) + await vi.waitFor(() => rendered.getByText('isFetching true')) + await vi.waitFor(() => rendered.getByText('isFetching false')) expect(queryFn).toHaveBeenCalledTimes(2) expect(memoFn).toHaveBeenCalledTimes(2) }) @@ -4046,9 +4033,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // mount - await waitFor(() => rendered.getByText('count: 0')) - await waitFor(() => rendered.getByText('count: 1')) - await waitFor(() => rendered.getByText('count: 2')) + await vi.waitFor(() => rendered.getByText('count: 0')) + await vi.waitFor(() => rendered.getByText('count: 1')) + await vi.waitFor(() => rendered.getByText('count: 2')) }) it('should refetch in an interval depending on function result', async () => { @@ -4080,7 +4067,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('count: 2')) + await vi.waitFor(() => rendered.getByText('count: 2')) expect(states.length).toEqual(6) @@ -4134,9 +4121,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('count: 1')) + await vi.waitFor(() => rendered.getByText('count: 1')) - await sleep(10) // extra sleep to make sure we're not re-fetching + await vi.advanceTimersByTimeAsync(10) // extra sleep to make sure we're not re-fetching expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -4152,7 +4139,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('')) + await vi.waitFor(() => rendered.getByText('')) }) it('should accept an object as query key', async () => { @@ -4166,7 +4153,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('[{"a":"a"}]')) + await vi.waitFor(() => rendered.getByText('[{"a":"a"}]')) }) it('should refetch if any query instance becomes enabled', async () => { @@ -4196,7 +4183,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) expect(queryFn).toHaveBeenCalledTimes(0) fireEvent.click(rendered.getByText('enable')) - await waitFor(() => rendered.getByText('data')) + await vi.waitFor(() => rendered.getByText('data')) expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -4223,7 +4210,7 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data: data')) + await vi.waitFor(() => rendered.getByText('Data: data')) expect(states).toMatchObject([ { @@ -4269,7 +4256,7 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data: data')) + await vi.waitFor(() => rendered.getByText('Data: data')) expect(states).toMatchObject([ { @@ -4323,7 +4310,7 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data: 2')) + await vi.waitFor(() => rendered.getByText('Data: 2')) expect(states).toMatchObject([ { @@ -4367,7 +4354,7 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data: 2')) + await vi.waitFor(() => rendered.getByText('Data: 2')) rendered.rerender() @@ -4425,15 +4412,15 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2 + await vi.waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2 expect(selectRun).toBe(1) - await waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2 + await vi.waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2 expect(selectRun).toBe(2) fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3 + await vi.waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3 expect(selectRun).toBe(3) }) @@ -4471,19 +4458,19 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2 + await vi.waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2 - await waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2 + await vi.waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2 fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3 + await vi.waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3 fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i })) - await waitFor(() => rendered.getByText('forceValue: 2')) + await vi.waitFor(() => rendered.getByText('forceValue: 2')) // data should still be 3 after an independent re-render - await waitFor(() => rendered.getByText('Data: selected 3')) + await vi.waitFor(() => rendered.getByText('Data: selected 3')) }) it('select should structurally share data', async () => { @@ -4519,13 +4506,13 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Data: [2,3]')) + await vi.waitFor(() => rendered.getByText('Data: [2,3]')) expect(states).toHaveLength(1) fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i })) - await waitFor(() => rendered.getByText('forceValue: 2')) - await waitFor(() => rendered.getByText('Data: [2,3]')) + await vi.waitFor(() => rendered.getByText('forceValue: 2')) + await vi.waitFor(() => rendered.getByText('Data: [2,3]')) // effect should not be triggered again due to structural sharing expect(states).toHaveLength(1) @@ -4561,7 +4548,7 @@ describe('useQuery', () => { , ) - await waitFor(() => rendered.getByText('off')) + await vi.waitFor(() => rendered.getByText('off')) expect(cancelFn).toHaveBeenCalled() }) @@ -4600,10 +4587,10 @@ describe('useQuery', () => { , ) - await waitFor(() => rendered.getByText('off')) - await sleep(20) + await vi.waitFor(() => rendered.getByText('off')) + await vi.advanceTimersByTimeAsync(20) - await waitFor(() => expect(states).toHaveLength(4)) + await vi.waitFor(() => expect(states).toHaveLength(4)) expect(queryCache.find({ queryKey: [key, 0] })?.state).toMatchObject({ data: 'data 0', @@ -4657,7 +4644,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(4) // Load query 1 expect(states[0]).toMatchObject({ @@ -4712,12 +4699,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => expect(states.length).toBe(4)) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) expect(count).toBe(2) @@ -4786,14 +4773,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: null')) + await vi.waitFor(() => rendered.getByText('data: null')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - await waitFor(() => rendered.getByText('data: null')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => rendered.getByText('data: null')) + await vi.waitFor(() => expect(states.length).toBe(4)) expect(count).toBe(1) @@ -4849,7 +4836,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(renders).toBe(hashes) }) @@ -4871,7 +4858,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) const query = queryClient.getQueryCache().get(queryKeyHashFn(key)) expect(query?.state.data).toBe('test') @@ -4923,12 +4910,12 @@ describe('useQuery', () => { rendered.getByText('status: pending') // // render error state component - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('error')) expect(queryFn).toBeCalledTimes(1) // change to enabled to false fireEvent.click(rendered.getByLabelText('retry')) - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('error')) expect(queryFn).toBeCalledTimes(1) // // change to enabled to true @@ -4982,15 +4969,15 @@ describe('useQuery', () => { rendered.getByText('status: pending') // render error state component - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('error')) // change to unmount query fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) // change to mount new query fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('error')) }) it('should refetch when query key changed when switching between erroneous queries', async () => { @@ -5035,17 +5022,17 @@ describe('useQuery', () => { rendered.getByText('status: fetching') // render error state component - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('error')) // change to mount second query fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('status: fetching')) - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('status: fetching')) + await vi.waitFor(() => rendered.getByText('error')) // change to mount first query again fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('status: fetching')) - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('status: fetching')) + await vi.waitFor(() => rendered.getByText('error')) }) it('should have no error in pending state when refetching after error occurred', async () => { @@ -5087,12 +5074,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => rendered.getByText('error')) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await waitFor(() => rendered.getByText('data: 5')) + await vi.waitFor(() => rendered.getByText('data: 5')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => expect(states.length).toBe(4)) expect(states[0]).toMatchObject({ status: 'pending', @@ -5151,15 +5138,17 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: pending, isPaused: true')) + await vi.waitFor(() => + rendered.getByText('status: pending, isPaused: true'), + ) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, isPaused: false'), ) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('data: data')).toBeInTheDocument() }) @@ -5200,36 +5189,36 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: data1')) + await vi.waitFor(() => rendered.getByText('data: data1')) const onlineMock = mockOnlineManagerIsOnline(false) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await waitFor(() => + await vi.waitFor(() => rendered.getByText( 'status: success, fetchStatus: paused, failureCount: 0', ), ) - await waitFor(() => rendered.getByText('failureReason: null')) + await vi.waitFor(() => rendered.getByText('failureReason: null')) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await waitFor(() => + await vi.waitFor(() => rendered.getByText( 'status: success, fetchStatus: fetching, failureCount: 0', ), ) - await waitFor(() => rendered.getByText('failureReason: null')) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('failureReason: null')) + await vi.waitFor(() => rendered.getByText( 'status: success, fetchStatus: idle, failureCount: 0', ), ) - await waitFor(() => rendered.getByText('failureReason: null')) + await vi.waitFor(() => rendered.getByText('failureReason: null')) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('data: data2')).toBeInTheDocument() }) @@ -5267,19 +5256,19 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: data1')) + await vi.waitFor(() => rendered.getByText('data: data1')) const onlineMock = mockOnlineManagerIsOnline(false) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: paused'), ) window.dispatchEvent(new Event('visibilitychange')) - await sleep(15) + await vi.advanceTimersByTimeAsync(15) - await waitFor(() => + await vi.waitFor(() => expect(rendered.queryByText('data: data2')).not.toBeInTheDocument(), ) expect(count).toBe(1) @@ -5319,16 +5308,16 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: pending, fetchStatus: paused'), ) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await sleep(15) + await vi.advanceTimersByTimeAsync(15) // invalidation should not trigger a refetch - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: pending, fetchStatus: paused'), ) @@ -5370,19 +5359,19 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: paused'), ) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('data: initial')).toBeInTheDocument() }) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await sleep(15) + await vi.advanceTimersByTimeAsync(15) // invalidation should not trigger a refetch - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: paused'), ) @@ -5424,19 +5413,19 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: paused'), ) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('data: initial')).toBeInTheDocument() }) // triggers one pause fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await sleep(15) + await vi.advanceTimersByTimeAsync(15) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: paused'), ) @@ -5448,10 +5437,10 @@ describe('useQuery', () => { onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: idle'), ) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('data: data1')).toBeInTheDocument() }) @@ -5489,30 +5478,30 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText(/status: pending, fetchStatus: fetching/i), ) const onlineMock = mockOnlineManagerIsOnline(false) - await sleep(20) + await vi.advanceTimersByTimeAsync(20) - await waitFor(() => + await vi.waitFor(() => rendered.getByText( 'status: pending, fetchStatus: paused, failureCount: 1', ), ) - await waitFor(() => rendered.getByText('failureReason: failed1')) + await vi.waitFor(() => rendered.getByText('failureReason: failed1')) expect(count).toBe(1) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: error, fetchStatus: idle, failureCount: 3'), ) - await waitFor(() => rendered.getByText('failureReason: failed3')) + await vi.waitFor(() => rendered.getByText('failureReason: failed3')) expect(count).toBe(3) @@ -5558,7 +5547,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: pending, fetchStatus: paused'), ) @@ -5567,7 +5556,7 @@ describe('useQuery', () => { onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await waitFor(() => { + await vi.waitFor(() => { expect(queryClient.getQueryState(key)).toMatchObject({ fetchStatus: 'idle', status: 'success', @@ -5575,7 +5564,7 @@ describe('useQuery', () => { }) // give it a bit more time to make sure queryFn is not called again - await sleep(15) + await vi.advanceTimersByTimeAsync(15) expect(count).toBe(1) onlineMock.mockRestore() @@ -5615,13 +5604,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: pending, fetchStatus: paused'), ) fireEvent.click(rendered.getByRole('button', { name: /cancel/i })) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: pending, fetchStatus: idle'), ) @@ -5630,9 +5619,9 @@ describe('useQuery', () => { onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await sleep(15) + await vi.advanceTimersByTimeAsync(15) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: pending, fetchStatus: idle'), ) @@ -5683,7 +5672,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: idle'), ) @@ -5691,18 +5680,18 @@ describe('useQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, fetchStatus: paused'), ) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await sleep(15) + await vi.advanceTimersByTimeAsync(15) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await sleep(15) + await vi.advanceTimersByTimeAsync(15) expect(queryClient.getQueryState(key)).toMatchObject({ fetchStatus: 'idle', @@ -5745,11 +5734,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: success, isPaused: false'), ) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('data: data 1')).toBeInTheDocument() }) @@ -5789,9 +5778,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: error, isPaused: false')) + await vi.waitFor(() => + rendered.getByText('status: error, isPaused: false'), + ) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('error: error 2')).toBeInTheDocument() }) @@ -5834,22 +5825,22 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText( 'status: pending, fetchStatus: paused, failureCount: 1', ), ) - await waitFor(() => rendered.getByText('failureReason: failed1')) + await vi.waitFor(() => rendered.getByText('failureReason: failed1')) expect(count).toBe(1) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: error, fetchStatus: idle, failureCount: 3'), ) - await waitFor(() => rendered.getByText('failureReason: failed3')) + await vi.waitFor(() => rendered.getByText('failureReason: failed3')) expect(count).toBe(3) onlineMock.mockRestore() @@ -5876,7 +5867,7 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) + await vi.waitFor(() => rendered.getByText('data: data')) expect( queryClient.getQueryCache().find({ queryKey: key })!.observers.length, @@ -5893,7 +5884,7 @@ describe('useQuery', () => { fireEvent.click(rendered.getByRole('button', { name: 'toggle' })) // background refetch when we re-subscribe - await waitFor(() => expect(queryFn).toHaveBeenCalledTimes(2)) + await vi.waitFor(() => expect(queryFn).toHaveBeenCalledTimes(2)) expect( queryClient.getQueryCache().find({ queryKey: key })!.observers.length, ).toBe(1) @@ -5916,7 +5907,7 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data:')) + await vi.waitFor(() => rendered.getByText('data:')) expect( queryClient.getQueryCache().find({ queryKey: key })!.observers.length, @@ -5948,13 +5939,13 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('no data')) + await vi.waitFor(() => rendered.getByText('no data')) fireEvent.click(rendered.getByRole('button', { name: 'set data' })) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) - await waitFor(() => rendered.getByText('no data')) + await vi.waitFor(() => rendered.getByText('no data')) expect(renders).toBe(1) }) @@ -5985,7 +5976,7 @@ describe('useQuery', () => { await queryClient.prefetchQuery({ queryKey: key, queryFn }) renderWithClient(queryClient, ) - await waitFor(() => expect(states).toHaveLength(1)) + await vi.waitFor(() => expect(states).toHaveLength(1)) expect(states[0]).toMatchObject({ status: 'error', @@ -6017,10 +6008,10 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) + await vi.waitFor(() => rendered.getByText('data: data')) fireEvent.click(rendered.getByRole('button', { name: /setQueryData/i })) - await waitFor(() => rendered.getByText('data: newData')) - await waitFor(() => { + await vi.waitFor(() => rendered.getByText('data: newData')) + await vi.waitFor(() => { expect(rendered.getByText('dataUpdatedAt: 100')).toBeInTheDocument() }) }) @@ -6047,11 +6038,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) const fetchBtn = rendered.getByRole('button', { name: 'refetch' }) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(fetchBtn) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) fireEvent.click(fetchBtn) - await waitFor(() => rendered.getByText('data: 3')) + await vi.waitFor(() => rendered.getByText('data: 3')) }) it('should use provided custom queryClient', async () => { @@ -6074,7 +6065,7 @@ describe('useQuery', () => { const rendered = render() - await waitFor(() => rendered.getByText('data: custom client')) + await vi.waitFor(() => rendered.getByText('data: custom client')) }) it('should be notified of updates between create and subscribe', async () => { @@ -6107,8 +6098,8 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: success')) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('status: success')) + await vi.waitFor(() => rendered.getByText('data: 1')) }) it('should reuse same data object reference when queryKey changes back to some cached data', async () => { const key = queryKey() @@ -6152,22 +6143,22 @@ describe('useQuery', () => { expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() - await waitFor(() => rendered.getByText('Rendered Id: 1')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await waitFor(() => rendered.getByText('Rendered Id: 2')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) expect(spy).toHaveBeenCalledTimes(2) // called with undefined because id changed spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /1/ })) - await waitFor(() => rendered.getByText('Rendered Id: 1')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await waitFor(() => rendered.getByText('Rendered Id: 2')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) expect(spy).toHaveBeenCalledTimes(1) }) it('should reuse same data object reference when queryKey changes and placeholderData is present', async () => { @@ -6213,24 +6204,24 @@ describe('useQuery', () => { expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() - await waitFor(() => rendered.getByText('Rendered Id: 99')) - await waitFor(() => rendered.getByText('Rendered Id: 1')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 99')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await waitFor(() => rendered.getByText('Rendered Id: 99')) - await waitFor(() => rendered.getByText('Rendered Id: 2')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 99')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) expect(spy).toHaveBeenCalledTimes(2) // called with undefined because id changed spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /1/ })) - await waitFor(() => rendered.getByText('Rendered Id: 1')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await waitFor(() => rendered.getByText('Rendered Id: 2')) + await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) expect(spy).toHaveBeenCalledTimes(1) }) it('should not cause an infinite render loop when using unstable callback ref', async () => { @@ -6252,7 +6243,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Works')) + await vi.waitFor(() => rendered.getByText('Works')) }) it('should keep the previous data when placeholderData is set and cache is used', async () => { @@ -6285,19 +6276,19 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) // Initial expect(states[0]).toMatchObject({ @@ -6411,11 +6402,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: pending')) + await vi.waitFor(() => rendered.getByText('status: pending')) fireEvent.click(rendered.getByRole('button', { name: 'enable' })) - await waitFor(() => rendered.getByText('status: success')) - await waitFor(() => rendered.getByText('data: data')) + await vi.waitFor(() => rendered.getByText('status: success')) + await vi.waitFor(() => rendered.getByText('data: data')) }) it('should allow enabled: true and queryFn: skipToken', async () => { @@ -6442,7 +6433,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => rendered.getByText('status: pending, fetchStatus: idle'), ) @@ -6493,12 +6484,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: error, idle')) + await vi.waitFor(() => rendered.getByText('status: error, idle')) fireEvent.click(rendered.getByRole('button', { name: 'toggle' })) fireEvent.click(rendered.getByRole('button', { name: 'toggle' })) - await waitFor(() => rendered.getByText('status: error, idle')) + await vi.waitFor(() => rendered.getByText('status: error, idle')) expect(results).toHaveLength(4) @@ -6593,12 +6584,12 @@ describe('useQuery', () => { const rendered = renderWithClient(clientQueryClient, ) - await waitFor(() => rendered.getByText('data: server')) + await vi.waitFor(() => rendered.getByText('data: server')) expect(count).toBe(0) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await waitFor(() => rendered.getByText('data: client')) + await vi.waitFor(() => rendered.getByText('data: client')) expect(count).toBe(1) }) @@ -6650,8 +6641,8 @@ describe('useQuery', () => { hydrate(clientQueryClient, dehydrated) const rendered = renderWithClient(clientQueryClient, ) - await waitFor(() => rendered.getByText('failure: redacted')) - await waitFor(() => rendered.getByText('data: client')) + await vi.waitFor(() => rendered.getByText('failure: redacted')) + await vi.waitFor(() => rendered.getByText('data: client')) expect(count).toBe(1) const query = clientQueryClient.getQueryCache().find({ queryKey: key }) From a535a46cde1d64049b3d90e61df1fd97594bb633 Mon Sep 17 00:00:00 2001 From: Raman Paulau Date: Fri, 2 May 2025 04:16:23 -0700 Subject: [PATCH 045/432] fix(vue-query): reorder `queryOptions` and `useQuery` function overloads to fix type inference (#9088) * fix(vue-query): more specific function overloads for queryOptions and useQuery to come before general ones (#9069) This instructs TypeScript to pick correct function overload when initialData is defined. * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/queryOptions.test-d.ts | 88 +++++++++++++++++++ .../src/__tests__/useQuery.test-d.ts | 11 +++ packages/vue-query/src/queryOptions.ts | 8 +- packages/vue-query/src/useQuery.ts | 14 +-- 4 files changed, 112 insertions(+), 9 deletions(-) diff --git a/packages/vue-query/src/__tests__/queryOptions.test-d.ts b/packages/vue-query/src/__tests__/queryOptions.test-d.ts index 8ee93aadca..c40d606e86 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test-d.ts @@ -122,4 +122,92 @@ describe('queryOptions', () => { expectTypeOf(data).toEqualTypeOf>() expectTypeOf(data2).toEqualTypeOf>() }) + + it('TData should always be defined when initialData is provided as a function which ALWAYS returns the data', () => { + const { data } = reactive( + useQuery( + queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => ({ + wow: true, + }), + }), + ), + ) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) + + it('TData should have undefined in the union when initialData is NOT provided', () => { + const { data } = reactive( + useQuery( + queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + }), + ), + ) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) + + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const { data } = reactive( + useQuery( + queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + }), + ), + ) + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) + + it('TData should be narrowed after an isSuccess check when initialData is provided as a function which can return undefined', () => { + const { data, isSuccess } = reactive( + useQuery( + queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + }), + ), + ) + + if (isSuccess) { + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + } + }) + + it('data should not have undefined when initialData is provided', () => { + const { data } = reactive( + useQuery( + queryOptions({ + queryKey: ['query-key'], + initialData: 42, + }), + ), + ) + + expectTypeOf(data).toEqualTypeOf() + }) }) diff --git a/packages/vue-query/src/__tests__/useQuery.test-d.ts b/packages/vue-query/src/__tests__/useQuery.test-d.ts index a02ee4b638..3185a88957 100644 --- a/packages/vue-query/src/__tests__/useQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/useQuery.test-d.ts @@ -125,6 +125,17 @@ describe('useQuery', () => { expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() } }) + + it('data should not have undefined when initialData is provided', () => { + const { data } = reactive( + useQuery({ + queryKey: ['query-key'], + initialData: 42, + }), + ) + + expectTypeOf(data).toEqualTypeOf() + }) }) describe('custom composable', () => { diff --git a/packages/vue-query/src/queryOptions.ts b/packages/vue-query/src/queryOptions.ts index 558756c44f..4681080f8c 100644 --- a/packages/vue-query/src/queryOptions.ts +++ b/packages/vue-query/src/queryOptions.ts @@ -10,8 +10,8 @@ export function queryOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - options: UndefinedInitialQueryOptions, -): UndefinedInitialQueryOptions & { + options: DefinedInitialQueryOptions, +): DefinedInitialQueryOptions & { queryKey: DataTag } @@ -21,8 +21,8 @@ export function queryOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - options: DefinedInitialQueryOptions, -): DefinedInitialQueryOptions & { + options: UndefinedInitialQueryOptions, +): UndefinedInitialQueryOptions & { queryKey: DataTag } diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index 9ac47bd953..fd60dee2ee 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -3,6 +3,7 @@ import { useBaseQuery } from './useBaseQuery' import type { DefaultError, DefinedQueryObserverResult, + InitialDataFunction, QueryKey, QueryObserverOptions, } from '@tanstack/query-core' @@ -64,7 +65,10 @@ export type UndefinedInitialQueryOptions< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = UseQueryOptions & { - initialData?: undefined | (() => undefined) + initialData?: + | undefined + | InitialDataFunction> + | NonUndefinedGuard } export type DefinedInitialQueryOptions< @@ -95,9 +99,9 @@ export function useQuery< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - options: UndefinedInitialQueryOptions, + options: DefinedInitialQueryOptions, queryClient?: QueryClient, -): UseQueryReturnType +): UseQueryDefinedReturnType export function useQuery< TQueryFnData = unknown, @@ -105,9 +109,9 @@ export function useQuery< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - options: DefinedInitialQueryOptions, + options: UndefinedInitialQueryOptions, queryClient?: QueryClient, -): UseQueryDefinedReturnType +): UseQueryReturnType export function useQuery< TQueryFnData = unknown, From ea74c2784fbec165cfea3a445b490c0c357bce7c Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 2 May 2025 11:20:03 +0000 Subject: [PATCH 046/432] release: v5.75.1 --- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 2 +- examples/vue/simple/package.json | 4 ++-- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 39 files changed, 71 insertions(+), 71 deletions(-) diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 648b472e64..8a87d020eb 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index cbfe750663..59b2b336d5 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 8c47ad2aad..b29400b948 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 29723b4533..616217b3b0 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", - "@tanstack/react-query-persist-client": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query-persist-client": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 389cde2fde..1d25366cbb 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index fe5a9e20a1..4a7c6f6e92 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 82d64efa81..8f3913d437 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 807391a867..456a442f45 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", - "@tanstack/react-query-persist-client": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query-persist-client": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index c13acde47f..13f00627f1 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index e080d243be..825c173a8a 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 64670c2f97..3000e6da74 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 3bcf58da30..82f7ff862f 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", - "@tanstack/react-query-next-experimental": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query-next-experimental": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index c090a3ccd7..db19a56803 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index c58b865131..6e6afc4cd3 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-sync-storage-persister": "^5.75.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", - "@tanstack/react-query-persist-client": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query-persist-client": "^5.75.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 707040723f..083e7d8878 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index f406ef38fc..799fb049c8 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index b338921654..0ccf1664a6 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 04756d4098..2becaaf6d0 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 4454e1a716..048cfa0a32 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 026e13aff2..eab01c3b85 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 386ed0cd50..2d5824f890 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 231f17f6b2..3baa564acf 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 4d8716a025..74df7f5473 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index a7376779be..6bc7660de6 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index c652e681f7..962dc99616 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index ce9461b9fd..e35c75a920 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.0", - "@tanstack/react-query-devtools": "^5.75.0", + "@tanstack/react-query": "^5.75.1", + "@tanstack/react-query-devtools": "^5.75.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index af21e28c3a..de736cbc9a 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.0", + "@tanstack/vue-query": "^5.75.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index aa208a3ce4..46f49c51d9 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.0", + "@tanstack/vue-query": "^5.75.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 46d142f0b9..b03e107634 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.0", - "@tanstack/vue-query-devtools": "^5.75.0", + "@tanstack/vue-query": "^5.75.1", + "@tanstack/vue-query-devtools": "^5.75.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 85afcf537b..dbb4c91a27 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.0", + "@tanstack/vue-query": "^5.75.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index e6c6b7966b..cbd7a95884 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.75.0" + "@tanstack/vue-query": "^5.75.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 5618c62d84..f8fac9e1c1 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -11,7 +11,7 @@ "@tanstack/query-core": "^5.75.0", "@tanstack/query-persist-client-core": "^5.75.0", "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/vue-query": "^5.75.0", + "@tanstack/vue-query": "^5.75.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 36edee1bf7..695a334337 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.0", - "@tanstack/vue-query-devtools": "^5.75.0", + "@tanstack/vue-query": "^5.75.1", + "@tanstack/vue-query-devtools": "^5.75.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 2de34eeca6..7f912ccff1 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.75.0", + "version": "5.75.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index df249d6ea1..fba0d3bc1e 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.75.0", + "version": "5.75.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 77efaf2350..bf49c662df 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.75.0", + "version": "5.75.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index f331c48949..a12f1f03b1 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.75.0", + "version": "5.75.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 51fe17af30..7443755a5d 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.75.0", + "version": "5.75.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 925013639c..d8f5cdf4e5 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.75.0", + "version": "5.75.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 18af64367c6435de0ad899108209a94ef2ba0b14 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Sat, 3 May 2025 02:41:32 +0900 Subject: [PATCH 047/432] test(react-query): add test case for useSuspenseQuery (#8731) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useSuspenseQuery.test.tsx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index 64ab60d6ca..922efdbd2a 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -888,4 +888,35 @@ describe('useSuspenseQuery', () => { ) consoleErrorSpy.mockRestore() }) + it('should properly refresh data when refetchInterval is set', async () => { + const key = queryKey() + let count = 0 + + function Page() { + const state = useSuspenseQuery({ + queryKey: key, + queryFn: async () => { + count++ + await sleep(1) + return count + }, + refetchInterval: 10, + }) + + return
count: {state.data}
+ } + + const rendered = renderWithClient( + queryClient, + + + , + ) + + await waitFor(() => rendered.getByText('count: 1')) + await waitFor(() => rendered.getByText('count: 2')) + await waitFor(() => rendered.getByText('count: 3')) + + expect(count).toBeGreaterThanOrEqual(3) + }) }) From 674f83e4e8645ce31732a47f7dc5567a93590486 Mon Sep 17 00:00:00 2001 From: gopnik5 <46168024+gopnik5@users.noreply.github.com> Date: Sun, 4 May 2025 04:08:18 -0400 Subject: [PATCH 048/432] fix: (query-broadcast-client-experimental) - removing query from one tab doesn't remove it from all tabs (#9017) * fix(solid-query): client() doesn't return undefined * fix: (query-broadcast-client-experimental) - removing query from one tab doesn't remove it from all tabs * fix: (query-broadcast-client-experimental) - removing query from one tab doesn't remove it from all tabs * isolated tests * chore: add test config --------- Co-authored-by: Dominik Dorfmeister --- .../package.json | 4 ++ .../src/__tests__/index.test.ts | 31 +++++++++++++++ .../src/index.ts | 39 +++++++++++++++---- .../test-setup.ts | 14 +++++++ .../vite.config.ts | 30 ++++++++++++++ pnpm-lock.yaml | 10 ++++- 6 files changed, 118 insertions(+), 10 deletions(-) create mode 100644 packages/query-broadcast-client-experimental/src/__tests__/index.test.ts create mode 100644 packages/query-broadcast-client-experimental/test-setup.ts create mode 100644 packages/query-broadcast-client-experimental/vite.config.ts diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 7f352fd1e0..2aa4aa2732 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -28,6 +28,8 @@ "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js --build", "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js --build", "test:types:tscurrent": "tsc --build", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", "build": "tsup --tsconfig tsconfig.prod.json" }, @@ -60,6 +62,8 @@ "broadcast-channel": "^7.0.0" }, "devDependencies": { + "@testing-library/react": "^16.1.0", + "@vitejs/plugin-react": "^4.3.4", "npm-run-all2": "^5.0.0" } } diff --git a/packages/query-broadcast-client-experimental/src/__tests__/index.test.ts b/packages/query-broadcast-client-experimental/src/__tests__/index.test.ts new file mode 100644 index 0000000000..763a7edd58 --- /dev/null +++ b/packages/query-broadcast-client-experimental/src/__tests__/index.test.ts @@ -0,0 +1,31 @@ +import { QueryClient } from '@tanstack/query-core' +import { beforeEach, describe, expect, it } from 'vitest' +import { broadcastQueryClient } from '..' +import type { QueryCache } from '@tanstack/query-core' + +describe('broadcastQueryClient', () => { + let queryClient: QueryClient + let queryCache: QueryCache + + beforeEach(() => { + queryClient = new QueryClient() + queryCache = queryClient.getQueryCache() + }) + + it('should subscribe to the query cache', async () => { + broadcastQueryClient({ + queryClient, + broadcastChannel: 'test_channel', + }) + expect(queryCache.hasListeners()).toBe(true) + }) + + it('should not have any listeners after cleanup', async () => { + const unsubscribe = broadcastQueryClient({ + queryClient, + broadcastChannel: 'test_channel', + }) + unsubscribe() + expect(queryCache.hasListeners()).toBe(false) + }) +}) diff --git a/packages/query-broadcast-client-experimental/src/index.ts b/packages/query-broadcast-client-experimental/src/index.ts index f49a09b7ef..e102b3c0b0 100644 --- a/packages/query-broadcast-client-experimental/src/index.ts +++ b/packages/query-broadcast-client-experimental/src/index.ts @@ -12,7 +12,7 @@ export function broadcastQueryClient({ queryClient, broadcastChannel = 'tanstack-query', options, -}: BroadcastQueryClientOptions) { +}: BroadcastQueryClientOptions): () => void { let transaction = false const tx = (cb: () => void) => { transaction = true @@ -27,13 +27,13 @@ export function broadcastQueryClient({ const queryCache = queryClient.getQueryCache() - queryClient.getQueryCache().subscribe((queryEvent) => { + const unsubscribe = queryClient.getQueryCache().subscribe((queryEvent) => { if (transaction) { return } const { - query: { queryHash, queryKey, state }, + query: { queryHash, queryKey, state, observers }, } = queryEvent if (queryEvent.type === 'updated' && queryEvent.action.type === 'success') { @@ -45,13 +45,21 @@ export function broadcastQueryClient({ }) } - if (queryEvent.type === 'removed') { + if (queryEvent.type === 'removed' && observers.length > 0) { channel.postMessage({ type: 'removed', queryHash, queryKey, }) } + + if (queryEvent.type === 'added') { + channel.postMessage({ + type: 'added', + queryHash, + queryKey, + }) + } }) channel.onmessage = (action) => { @@ -62,9 +70,9 @@ export function broadcastQueryClient({ tx(() => { const { type, queryHash, queryKey, state } = action - if (type === 'updated') { - const query = queryCache.get(queryHash) + const query = queryCache.get(queryHash) + if (type === 'updated') { if (query) { query.setState(state) return @@ -79,12 +87,27 @@ export function broadcastQueryClient({ state, ) } else if (type === 'removed') { - const query = queryCache.get(queryHash) - if (query) { queryCache.remove(query) } + } else if (type === 'added') { + if (query) { + query.setState(state) + return + } + queryCache.build( + queryClient, + { + queryKey, + queryHash, + }, + state, + ) } }) } + return () => { + unsubscribe() + channel.close() + } } diff --git a/packages/query-broadcast-client-experimental/test-setup.ts b/packages/query-broadcast-client-experimental/test-setup.ts new file mode 100644 index 0000000000..d82b1a4f85 --- /dev/null +++ b/packages/query-broadcast-client-experimental/test-setup.ts @@ -0,0 +1,14 @@ +import '@testing-library/jest-dom/vitest' +import { act, cleanup as cleanupRTL } from '@testing-library/react' +import { afterEach } from 'vitest' +import { notifyManager } from '@tanstack/query-core' + +// https://testing-library.com/docs/react-testing-library/api#cleanup +afterEach(() => { + cleanupRTL() +}) + +// Wrap notifications with act to make sure React knows about React Query updates +notifyManager.setNotifyFunction((fn) => { + act(fn) +}) diff --git a/packages/query-broadcast-client-experimental/vite.config.ts b/packages/query-broadcast-client-experimental/vite.config.ts new file mode 100644 index 0000000000..01ab3b00df --- /dev/null +++ b/packages/query-broadcast-client-experimental/vite.config.ts @@ -0,0 +1,30 @@ +import { defineConfig } from 'vitest/config' +import react from '@vitejs/plugin-react' + +import packageJson from './package.json' + +export default defineConfig({ + plugins: [react()], + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, + }, + test: { + name: packageJson.name, + dir: './src', + watch: false, + environment: 'jsdom', + setupFiles: ['test-setup.ts'], + coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, + typecheck: { enabled: true }, + restoreMocks: true, + retry: process.env.CI ? 3 : 0, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed65e18469..2664e0fc89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1224,7 +1224,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(e9c097e00fee89f3cf54c317dda4adb5) + version: 6.4.1(44i6xs33lapt7cl2pkawmwjtru) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -2400,6 +2400,12 @@ importers: specifier: ^7.0.0 version: 7.0.0 devDependencies: + '@testing-library/react': + specifier: ^16.1.0 + version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -19767,7 +19773,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(e9c097e00fee89f3cf54c317dda4adb5)': + '@react-navigation/stack@6.4.1(44i6xs33lapt7cl2pkawmwjtru)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) From 91b75a9d3ed9472d7046aef40d4654ff33bf44f6 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sun, 4 May 2025 17:09:16 +0900 Subject: [PATCH 049/432] chore(react-query): isRestoring -> IsRestoreProvider like QueryClientProvider (#8717) --- .../react-query/src/{isRestoring.ts => IsRestoringProvider.ts} | 0 packages/react-query/src/index.ts | 2 +- packages/react-query/src/useBaseQuery.ts | 2 +- packages/react-query/src/useQueries.ts | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename packages/react-query/src/{isRestoring.ts => IsRestoringProvider.ts} (100%) diff --git a/packages/react-query/src/isRestoring.ts b/packages/react-query/src/IsRestoringProvider.ts similarity index 100% rename from packages/react-query/src/isRestoring.ts rename to packages/react-query/src/IsRestoringProvider.ts diff --git a/packages/react-query/src/index.ts b/packages/react-query/src/index.ts index 5f372f4195..521929a5e6 100644 --- a/packages/react-query/src/index.ts +++ b/packages/react-query/src/index.ts @@ -52,4 +52,4 @@ export { useIsFetching } from './useIsFetching' export { useIsMutating, useMutationState } from './useMutationState' export { useMutation } from './useMutation' export { useInfiniteQuery } from './useInfiniteQuery' -export { useIsRestoring, IsRestoringProvider } from './isRestoring' +export { useIsRestoring, IsRestoringProvider } from './IsRestoringProvider' diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index ed731e4309..4ab885da21 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -9,7 +9,7 @@ import { getHasError, useClearResetErrorBoundary, } from './errorBoundaryUtils' -import { useIsRestoring } from './isRestoring' +import { useIsRestoring } from './IsRestoringProvider' import { ensureSuspenseTimers, fetchOptimistic, diff --git a/packages/react-query/src/useQueries.ts b/packages/react-query/src/useQueries.ts index a3b2312897..5e580a8120 100644 --- a/packages/react-query/src/useQueries.ts +++ b/packages/react-query/src/useQueries.ts @@ -7,7 +7,7 @@ import { notifyManager, } from '@tanstack/query-core' import { useQueryClient } from './QueryClientProvider' -import { useIsRestoring } from './isRestoring' +import { useIsRestoring } from './IsRestoringProvider' import { useQueryErrorResetBoundary } from './QueryErrorResetBoundary' import { ensurePreventErrorBoundaryRetry, From 0cad1da43f545c5bb98e85a592db4778feaba066 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sun, 4 May 2025 08:14:36 +0000 Subject: [PATCH 050/432] release: v5.75.2 --- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- packages/query-broadcast-client-experimental/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- 31 files changed, 61 insertions(+), 61 deletions(-) diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 8a87d020eb..66c53dc725 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 59b2b336d5..9fb5f05e16 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index b29400b948..94dbab4510 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 616217b3b0..6a69d910b3 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", - "@tanstack/react-query-persist-client": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query-persist-client": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 1d25366cbb..9924d220a1 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 4a7c6f6e92..ce13afa90a 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 8f3913d437..0e16ae8454 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 456a442f45..c732b8925f 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", - "@tanstack/react-query-persist-client": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query-persist-client": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 13f00627f1..72b71a03b4 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 825c173a8a..ca2b4393a7 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 3000e6da74..3f1f5b2c90 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 82f7ff862f..830d9933d6 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", - "@tanstack/react-query-next-experimental": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query-next-experimental": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index db19a56803..b7ea7e4f70 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 6e6afc4cd3..8d69a49839 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-sync-storage-persister": "^5.75.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", - "@tanstack/react-query-persist-client": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query-persist-client": "^5.75.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 083e7d8878..39ac2178ed 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 799fb049c8..780e6ecf9a 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 0ccf1664a6..6daf4731ce 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 2becaaf6d0..76d2dd3731 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 048cfa0a32..e7aa143ec2 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "next": "^15.1.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index eab01c3b85..b57057d616 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 2d5824f890..098638d0e6 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 3baa564acf..e2b06cf17c 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 74df7f5473..8556c7988a 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 6bc7660de6..38c49a0324 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 962dc99616..be82eb172c 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index e35c75a920..da81dabba3 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.1", - "@tanstack/react-query-devtools": "^5.75.1", + "@tanstack/react-query": "^5.75.2", + "@tanstack/react-query-devtools": "^5.75.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 2aa4aa2732..47588b85ed 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.75.0", + "version": "5.75.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 7f912ccff1..760b21f026 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.75.1", + "version": "5.75.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index fba0d3bc1e..357a5b4a20 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.75.1", + "version": "5.75.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index bf49c662df..3ddb619d4e 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.75.1", + "version": "5.75.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index a12f1f03b1..aad5bc810e 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.75.1", + "version": "5.75.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", From 21218362d471e70b7ba3b6db84b394d697e0912f Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sun, 4 May 2025 11:23:30 +0200 Subject: [PATCH 051/432] chore: nextJs versions (#9103) --- examples/react/auto-refetching/package.json | 2 +- .../package.json | 2 +- .../load-more-infinite-scroll/package.json | 2 +- .../react/nextjs-app-prefetching/package.json | 2 +- .../nextjs-suspense-streaming/package.json | 2 +- examples/react/nextjs/package.json | 2 +- .../optimistic-updates-cache/package.json | 2 +- .../react/optimistic-updates-ui/package.json | 2 +- examples/react/pagination/package.json | 2 +- examples/react/prefetching/package.json | 2 +- integrations/react-next-14/package.json | 2 +- integrations/react-next-15/package.json | 2 +- .../package.json | 2 +- pnpm-lock.yaml | 548 +++++++++++++++--- 14 files changed, 479 insertions(+), 95 deletions(-) diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 9fb5f05e16..275bfbc9ed 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 72b71a03b4..461700431a 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index ca2b4393a7..7153eccdc1 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-intersection-observer": "^9.16.0" diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 3f1f5b2c90..134053550d 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 830d9933d6..b03aaa1ef1 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -11,7 +11,7 @@ "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", "@tanstack/react-query-next-experimental": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index b7ea7e4f70..802c828fa3 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 39ac2178ed..bf96970a63 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 780e6ecf9a..0b8554bc15 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 6daf4731ce..6dbb10aa84 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index e7aa143ec2..ee75559f3d 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/integrations/react-next-14/package.json b/integrations/react-next-14/package.json index 5ad396b6c6..38e3f2ccd3 100644 --- a/integrations/react-next-14/package.json +++ b/integrations/react-next-14/package.json @@ -7,7 +7,7 @@ "dependencies": { "@tanstack/react-query": "workspace:*", "@tanstack/react-query-devtools": "workspace:*", - "next": "^15.1.2", + "next": "^14.2.28", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/integrations/react-next-15/package.json b/integrations/react-next-15/package.json index bfa676166d..09b77217d9 100644 --- a/integrations/react-next-15/package.json +++ b/integrations/react-next-15/package.json @@ -9,7 +9,7 @@ "@js-temporal/polyfill": "^0.4.4", "@tanstack/react-query": "workspace:*", "@tanstack/react-query-devtools": "workspace:*", - "next": "^15.1.2", + "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0", "tupleson": "0.23.1" diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 357a5b4a20..0567441c96 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -59,7 +59,7 @@ "@tanstack/react-query": "workspace:*", "@types/react": "^19.0.1", "@vitejs/plugin-react": "^4.3.4", - "next": "^15.1.2", + "next": "^15.3.1", "npm-run-all2": "^5.0.0", "react": "^19.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2664e0fc89..0b36d7c6ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -686,8 +686,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -903,8 +903,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -931,8 +931,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -962,8 +962,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -990,8 +990,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1021,8 +1021,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-next-experimental next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1086,8 +1086,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1114,8 +1114,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1142,8 +1142,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1195,8 +1195,8 @@ importers: specifier: workspace:* version: link:../../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1516,7 +1516,7 @@ importers: version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.40.1)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.40.1)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -2063,8 +2063,8 @@ importers: specifier: workspace:* version: link:../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) + specifier: ^14.2.28 + version: 14.2.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -2091,8 +2091,8 @@ importers: specifier: workspace:* version: link:../../packages/react-query-devtools next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -2570,8 +2570,8 @@ importers: specifier: ^4.3.4 version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) next: - specifier: ^15.1.2 - version: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) + specifier: ^15.3.1 + version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -4138,6 +4138,9 @@ packages: '@emnapi/runtime@1.2.0': resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} @@ -4972,105 +4975,215 @@ packages: cpu: [arm64] os: [darwin] + '@img/sharp-darwin-arm64@0.34.1': + resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + '@img/sharp-darwin-x64@0.33.5': resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] + '@img/sharp-darwin-x64@0.34.1': + resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + cpu: [arm64] + os: [darwin] + '@img/sharp-libvips-darwin-x64@1.0.4': resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] + '@img/sharp-libvips-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-linux-arm64@1.0.4': resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linux-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] + '@img/sharp-libvips-linux-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + cpu: [ppc64] + os: [linux] + '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + cpu: [s390x] + os: [linux] + '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + cpu: [x64] + os: [linux] + '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linux-arm64@0.34.1': + resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + '@img/sharp-linux-arm@0.34.1': + resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + '@img/sharp-linux-s390x@0.34.1': + resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linux-x64@0.34.1': + resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linuxmusl-arm64@0.34.1': + resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linuxmusl-x64@0.34.1': + resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] + '@img/sharp-wasm32@0.34.1': + resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] + '@img/sharp-win32-ia32@0.34.1': + resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + '@img/sharp-win32-x64@0.33.5': resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] + '@img/sharp-win32-x64@0.34.1': + resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@inquirer/checkbox@4.1.4': resolution: {integrity: sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA==} engines: {node: '>=18'} @@ -5633,53 +5746,110 @@ packages: resolution: {integrity: sha512-z6okREyK8in0486a22Oro0k+YsuyEjDXJt46FpgeOgXqKJ9ElM8QPll0iuLBkpbH33ENiNbIPLd1cuClRQnhiw==} engines: {node: '>=18.0.0'} - '@next/env@15.1.2': - resolution: {integrity: sha512-Hm3jIGsoUl6RLB1vzY+dZeqb+/kWPZ+h34yiWxW0dV87l8Im/eMOwpOA+a0L78U0HM04syEjXuRlCozqpwuojQ==} + '@next/env@14.2.28': + resolution: {integrity: sha512-PAmWhJfJQlP+kxZwCjrVd9QnR5x0R3u0mTXTiZDgSd4h5LdXmjxCCWbN9kq6hkZBOax8Rm3xDW5HagWyJuT37g==} + + '@next/env@15.3.1': + resolution: {integrity: sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==} + + '@next/swc-darwin-arm64@14.2.28': + resolution: {integrity: sha512-kzGChl9setxYWpk3H6fTZXXPFFjg7urptLq5o5ZgYezCrqlemKttwMT5iFyx/p1e/JeglTwDFRtb923gTJ3R1w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] - '@next/swc-darwin-arm64@15.1.2': - resolution: {integrity: sha512-b9TN7q+j5/7+rGLhFAVZiKJGIASuo8tWvInGfAd8wsULjB1uNGRCj1z1WZwwPWzVQbIKWFYqc+9L7W09qwt52w==} + '@next/swc-darwin-arm64@15.3.1': + resolution: {integrity: sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.1.2': - resolution: {integrity: sha512-caR62jNDUCU+qobStO6YJ05p9E+LR0EoXh1EEmyU69cYydsAy7drMcOlUlRtQihM6K6QfvNwJuLhsHcCzNpqtA==} + '@next/swc-darwin-x64@14.2.28': + resolution: {integrity: sha512-z6FXYHDJlFOzVEOiiJ/4NG8aLCeayZdcRSMjPDysW297Up6r22xw6Ea9AOwQqbNsth8JNgIK8EkWz2IDwaLQcw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-darwin-x64@15.3.1': + resolution: {integrity: sha512-q+aw+cJ2ooVYdCEqZVk+T4Ni10jF6Fo5DfpEV51OupMaV5XL6pf3GCzrk6kSSZBsMKZtVC1Zm/xaNBFpA6bJ2g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.1.2': - resolution: {integrity: sha512-fHHXBusURjBmN6VBUtu6/5s7cCeEkuGAb/ZZiGHBLVBXMBy4D5QpM8P33Or8JD1nlOjm/ZT9sEE5HouQ0F+hUA==} + '@next/swc-linux-arm64-gnu@14.2.28': + resolution: {integrity: sha512-9ARHLEQXhAilNJ7rgQX8xs9aH3yJSj888ssSjJLeldiZKR4D7N08MfMqljk77fAwZsWwsrp8ohHsMvurvv9liQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.1.2': - resolution: {integrity: sha512-9CF1Pnivij7+M3G74lxr+e9h6o2YNIe7QtExWq1KUK4hsOLTBv6FJikEwCaC3NeYTflzrm69E5UfwEAbV2U9/g==} + '@next/swc-linux-arm64-gnu@15.3.1': + resolution: {integrity: sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.1.2': - resolution: {integrity: sha512-tINV7WmcTUf4oM/eN3Yuu/f8jQ5C6AkueZPKeALs/qfdfX57eNv4Ij7rt0SA6iZ8+fMobVfcFVv664Op0caCCg==} + '@next/swc-linux-arm64-musl@14.2.28': + resolution: {integrity: sha512-p6gvatI1nX41KCizEe6JkF0FS/cEEF0u23vKDpl+WhPe/fCTBeGkEBh7iW2cUM0rvquPVwPWdiUR6Ebr/kQWxQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.3.1': + resolution: {integrity: sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.2.28': + resolution: {integrity: sha512-nsiSnz2wO6GwMAX2o0iucONlVL7dNgKUqt/mDTATGO2NY59EO/ZKnKEr80BJFhuA5UC1KZOMblJHWZoqIJddpA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.1.2': - resolution: {integrity: sha512-jf2IseC4WRsGkzeUw/cK3wci9pxR53GlLAt30+y+B+2qAQxMw6WAC3QrANIKxkcoPU3JFh/10uFfmoMDF9JXKg==} + '@next/swc-linux-x64-gnu@15.3.1': + resolution: {integrity: sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.1.2': - resolution: {integrity: sha512-wvg7MlfnaociP7k8lxLX4s2iBJm4BrNiNFhVUY+Yur5yhAJHfkS8qPPeDEUH8rQiY0PX3u/P7Q/wcg6Mv6GSAA==} + '@next/swc-linux-x64-musl@14.2.28': + resolution: {integrity: sha512-+IuGQKoI3abrXFqx7GtlvNOpeExUH1mTIqCrh1LGFf8DnlUcTmOOCApEnPJUSLrSbzOdsF2ho2KhnQoO0I1RDw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.3.1': + resolution: {integrity: sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.2.28': + resolution: {integrity: sha512-l61WZ3nevt4BAnGksUVFKy2uJP5DPz2E0Ma/Oklvo3sGj9sw3q7vBWONFRgz+ICiHpW5mV+mBrkB3XEubMrKaA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.1.2': - resolution: {integrity: sha512-D3cNA8NoT3aWISWmo7HF5Eyko/0OdOO+VagkoJuiTk7pyX3P/b+n8XA/MYvyR+xSVcbKn68B1rY9fgqjNISqzQ==} + '@next/swc-win32-arm64-msvc@15.3.1': + resolution: {integrity: sha512-yP7FueWjphQEPpJQ2oKmshk/ppOt+0/bB8JC8svPUZNy0Pi3KbPx2Llkzv1p8CoQa+D2wknINlJpHf3vtChVBw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.2.28': + resolution: {integrity: sha512-+Kcp1T3jHZnJ9v9VTJ/yf1t/xmtFAc/Sge4v7mVc1z+NYfYzisi8kJ9AsY8itbgq+WgEwMtOpiLLJsUy2qnXZw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.2.28': + resolution: {integrity: sha512-1gCmpvyhz7DkB1srRItJTnmR2UwQPAUXXIg9r0/56g3O8etGmwlX68skKXJOp9EejW3hhv7nSQUJ2raFiz4MoA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.3.1': + resolution: {integrity: sha512-3PMvF2zRJAifcRNni9uMk/gulWfWS+qVI/pagd+4yLF5bcXPZPPH2xlYRYOsUjmCJOXSTAC2PjRzbhsRzR2fDQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -6610,6 +6780,9 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.5': + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + '@tailwindcss/node@4.0.14': resolution: {integrity: sha512-Ux9NbFkKWYE4rfUFz6M5JFLs/GEYP6ysxT8uSyPn6aTbh2K3xDE1zz++eVK4Vwx799fzMF8CID9sdHn4j/Ab8w==} @@ -12020,8 +12193,26 @@ packages: nested-error-stacks@2.1.1: resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} - next@15.1.2: - resolution: {integrity: sha512-nLJDV7peNy+0oHlmY2JZjzMfJ8Aj0/dd3jCwSZS8ZiO5nkQfcZRqDrRN3U5rJtqVTQneIOGZzb6LCNrk7trMCQ==} + next@14.2.28: + resolution: {integrity: sha512-QLEIP/kYXynIxtcKB6vNjtWLVs3Y4Sb+EClTC/CSVzdLD1gIuItccpu/n1lhmduffI32iPGEK2cLLxxt28qgYA==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true + + next@15.3.1: + resolution: {integrity: sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -13790,6 +13981,10 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.34.1: + resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -14241,6 +14436,19 @@ packages: structured-headers@0.4.1: resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} @@ -16461,10 +16669,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.40.1)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(rollup@4.40.1)(sass@1.86.0)(terser@5.39.0)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(rollup@4.40.1)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@vercel/edge': 1.2.1 '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.1) '@vercel/routing-utils': 5.0.4 @@ -17732,6 +17940,11 @@ snapshots: dependencies: tslib: 2.8.1 + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.0.1': dependencies: tslib: 2.8.1 @@ -18601,76 +18814,154 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true + '@img/sharp-darwin-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.1.0 + optional: true + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true + '@img/sharp-darwin-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.1.0 + optional: true + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true + '@img/sharp-libvips-darwin-arm64@1.1.0': + optional: true + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true + '@img/sharp-libvips-darwin-x64@1.1.0': + optional: true + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true + '@img/sharp-libvips-linux-arm64@1.1.0': + optional: true + '@img/sharp-libvips-linux-arm@1.0.5': optional: true + '@img/sharp-libvips-linux-arm@1.1.0': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.1.0': + optional: true + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true + '@img/sharp-libvips-linux-s390x@1.1.0': + optional: true + '@img/sharp-libvips-linux-x64@1.0.4': optional: true + '@img/sharp-libvips-linux-x64@1.1.0': + optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + optional: true + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true + '@img/sharp-linux-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.1.0 + optional: true + '@img/sharp-linux-arm@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true + '@img/sharp-linux-arm@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.1.0 + optional: true + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true + '@img/sharp-linux-s390x@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.1.0 + optional: true + '@img/sharp-linux-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true + '@img/sharp-linux-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.1.0 + optional: true + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true + '@img/sharp-linuxmusl-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + optional: true + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true + '@img/sharp-linuxmusl-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + optional: true + '@img/sharp-wasm32@0.33.5': dependencies: '@emnapi/runtime': 1.2.0 optional: true + '@img/sharp-wasm32@0.34.1': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + '@img/sharp-win32-ia32@0.33.5': optional: true + '@img/sharp-win32-ia32@0.34.1': + optional: true + '@img/sharp-win32-x64@0.33.5': optional: true + '@img/sharp-win32-x64@0.34.1': + optional: true + '@inquirer/checkbox@4.1.4(@types/node@22.15.3)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.15.3) @@ -19296,30 +19587,59 @@ snapshots: '@netlify/serverless-functions-api@1.36.0': {} - '@next/env@15.1.2': {} + '@next/env@14.2.28': {} + + '@next/env@15.3.1': {} + + '@next/swc-darwin-arm64@14.2.28': + optional: true + + '@next/swc-darwin-arm64@15.3.1': + optional: true + + '@next/swc-darwin-x64@14.2.28': + optional: true + + '@next/swc-darwin-x64@15.3.1': + optional: true + + '@next/swc-linux-arm64-gnu@14.2.28': + optional: true + + '@next/swc-linux-arm64-gnu@15.3.1': + optional: true - '@next/swc-darwin-arm64@15.1.2': + '@next/swc-linux-arm64-musl@14.2.28': optional: true - '@next/swc-darwin-x64@15.1.2': + '@next/swc-linux-arm64-musl@15.3.1': optional: true - '@next/swc-linux-arm64-gnu@15.1.2': + '@next/swc-linux-x64-gnu@14.2.28': optional: true - '@next/swc-linux-arm64-musl@15.1.2': + '@next/swc-linux-x64-gnu@15.3.1': optional: true - '@next/swc-linux-x64-gnu@15.1.2': + '@next/swc-linux-x64-musl@14.2.28': optional: true - '@next/swc-linux-x64-musl@15.1.2': + '@next/swc-linux-x64-musl@15.3.1': optional: true - '@next/swc-win32-arm64-msvc@15.1.2': + '@next/swc-win32-arm64-msvc@14.2.28': optional: true - '@next/swc-win32-x64-msvc@15.1.2': + '@next/swc-win32-arm64-msvc@15.3.1': + optional: true + + '@next/swc-win32-ia32-msvc@14.2.28': + optional: true + + '@next/swc-win32-x64-msvc@14.2.28': + optional: true + + '@next/swc-win32-x64-msvc@15.3.1': optional: true '@ngtools/webpack@19.2.5(@angular/compiler-cli@19.2.4(@angular/compiler@19.2.4)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.1))': @@ -20353,6 +20673,11 @@ snapshots: dependencies: tslib: 2.8.1 + '@swc/helpers@0.5.5': + dependencies: + '@swc/counter': 0.1.3 + tslib: 2.8.1 + '@tailwindcss/node@4.0.14': dependencies: enhanced-resolve: 5.18.1 @@ -20947,10 +21272,10 @@ snapshots: '@urql/core': 5.0.8(graphql@16.9.0) wonka: 6.3.4 - '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': optionalDependencies: '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.2.2)(lightningcss@1.29.2)(sass@1.86.0)(terser@5.39.0)(yaml@2.6.1)) - next: 15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) + next: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0) react: 19.0.0 svelte: 5.26.1 vue: 3.4.35(typescript@5.8.3) @@ -27323,9 +27648,35 @@ snapshots: nested-error-stacks@2.1.1: {} - next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0): + next@14.2.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0): dependencies: - '@next/env': 15.1.2 + '@next/env': 14.2.28 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001707 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.28 + '@next/swc-darwin-x64': 14.2.28 + '@next/swc-linux-arm64-gnu': 14.2.28 + '@next/swc-linux-arm64-musl': 14.2.28 + '@next/swc-linux-x64-gnu': 14.2.28 + '@next/swc-linux-x64-musl': 14.2.28 + '@next/swc-win32-arm64-msvc': 14.2.28 + '@next/swc-win32-ia32-msvc': 14.2.28 + '@next/swc-win32-x64-msvc': 14.2.28 + sass: 1.86.0 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.86.0): + dependencies: + '@next/env': 15.3.1 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 @@ -27335,24 +27686,24 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.6(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.1.2 - '@next/swc-darwin-x64': 15.1.2 - '@next/swc-linux-arm64-gnu': 15.1.2 - '@next/swc-linux-arm64-musl': 15.1.2 - '@next/swc-linux-x64-gnu': 15.1.2 - '@next/swc-linux-x64-musl': 15.1.2 - '@next/swc-win32-arm64-msvc': 15.1.2 - '@next/swc-win32-x64-msvc': 15.1.2 + '@next/swc-darwin-arm64': 15.3.1 + '@next/swc-darwin-x64': 15.3.1 + '@next/swc-linux-arm64-gnu': 15.3.1 + '@next/swc-linux-arm64-musl': 15.3.1 + '@next/swc-linux-x64-gnu': 15.3.1 + '@next/swc-linux-x64-musl': 15.3.1 + '@next/swc-win32-arm64-msvc': 15.3.1 + '@next/swc-win32-x64-msvc': 15.3.1 babel-plugin-react-compiler: 0.0.0 sass: 1.86.0 - sharp: 0.33.5 + sharp: 0.34.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@15.1.2(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0): + next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.86.0): dependencies: - '@next/env': 15.1.2 + '@next/env': 15.3.1 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 @@ -27362,17 +27713,17 @@ snapshots: react-dom: 19.0.0(react@19.0.0) styled-jsx: 5.1.6(react@19.0.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.1.2 - '@next/swc-darwin-x64': 15.1.2 - '@next/swc-linux-arm64-gnu': 15.1.2 - '@next/swc-linux-arm64-musl': 15.1.2 - '@next/swc-linux-x64-gnu': 15.1.2 - '@next/swc-linux-x64-musl': 15.1.2 - '@next/swc-win32-arm64-msvc': 15.1.2 - '@next/swc-win32-x64-msvc': 15.1.2 + '@next/swc-darwin-arm64': 15.3.1 + '@next/swc-darwin-x64': 15.3.1 + '@next/swc-linux-arm64-gnu': 15.3.1 + '@next/swc-linux-arm64-musl': 15.3.1 + '@next/swc-linux-x64-gnu': 15.3.1 + '@next/swc-linux-x64-musl': 15.3.1 + '@next/swc-win32-arm64-msvc': 15.3.1 + '@next/swc-win32-x64-msvc': 15.3.1 babel-plugin-react-compiler: 0.0.0 sass: 1.86.0 - sharp: 0.33.5 + sharp: 0.34.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -29548,6 +29899,34 @@ snapshots: '@img/sharp-win32-x64': 0.33.5 optional: true + sharp@0.34.1: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.1 + '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.1 + '@img/sharp-linux-arm64': 0.34.1 + '@img/sharp-linux-s390x': 0.34.1 + '@img/sharp-linux-x64': 0.34.1 + '@img/sharp-linuxmusl-arm64': 0.34.1 + '@img/sharp-linuxmusl-x64': 0.34.1 + '@img/sharp-wasm32': 0.34.1 + '@img/sharp-win32-ia32': 0.34.1 + '@img/sharp-win32-x64': 0.34.1 + optional: true + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -30036,6 +30415,11 @@ snapshots: structured-headers@0.4.1: {} + styled-jsx@5.1.1(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + styled-jsx@5.1.6(react@18.3.1): dependencies: client-only: 0.0.1 From d82fb690829747e956f53bb4384bf95ad353f37f Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Mon, 5 May 2025 20:45:13 +0200 Subject: [PATCH 052/432] refactor(angular-query): use factory for IS_RESTORING default value (#9107) --- .../src/inject-is-restoring.ts | 24 ++++++++++--------- .../src/with-persist-query-client.ts | 4 ++-- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/angular-query-experimental/src/inject-is-restoring.ts b/packages/angular-query-experimental/src/inject-is-restoring.ts index c57a15fbb7..92e50d4342 100644 --- a/packages/angular-query-experimental/src/inject-is-restoring.ts +++ b/packages/angular-query-experimental/src/inject-is-restoring.ts @@ -2,12 +2,20 @@ import { InjectionToken, Injector, assertInInjectionContext, - computed, inject, + signal, } from '@angular/core' import type { Provider, Signal } from '@angular/core' -const IS_RESTORING = new InjectionToken>('') +const IS_RESTORING = new InjectionToken( + typeof ngDevMode === 'undefined' || ngDevMode + ? 'TANSTACK_QUERY_IS_RESTORING' + : '', + { + // Default value when not provided + factory: () => signal(false).asReadonly(), + }, +) /** * The `Injector` in which to create the isRestoring signal. @@ -19,21 +27,15 @@ interface InjectIsRestoringOptions { } /** - * Injects a signal that tracks whether a restore is currently in progress. {@link injectQuery} and friends also check this internally to avoid race conditions between the restore and mounting queries. + * Injects a signal that tracks whether a restore is currently in progress. {@link injectQuery} and friends also check this internally to avoid race conditions between the restore and initializing queries. * @param options - Options for injectIsRestoring. * @returns signal with boolean that indicates whether a restore is in progress. * @public */ -export function injectIsRestoring( - options?: InjectIsRestoringOptions, -): Signal { +export function injectIsRestoring(options?: InjectIsRestoringOptions) { !options?.injector && assertInInjectionContext(injectIsRestoring) const injector = options?.injector ?? inject(Injector) - return injector.get( - IS_RESTORING, - computed(() => false), - { optional: true }, - ) + return injector.get(IS_RESTORING) } /** diff --git a/packages/angular-query-persist-client/src/with-persist-query-client.ts b/packages/angular-query-persist-client/src/with-persist-query-client.ts index 2896cbc7b2..ceeeed01cd 100644 --- a/packages/angular-query-persist-client/src/with-persist-query-client.ts +++ b/packages/angular-query-persist-client/src/with-persist-query-client.ts @@ -55,10 +55,11 @@ type PersistQueryClientOptions = { export function withPersistQueryClient( persistQueryClientOptions: PersistQueryClientOptions, ): PersistQueryClientFeature { - const isRestoring = signal(false) + const isRestoring = signal(true) const providers = [ provideIsRestoring(isRestoring.asReadonly()), { + // Do not use provideEnvironmentInitializer while Angular < v19 is supported provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => { @@ -66,7 +67,6 @@ export function withPersistQueryClient( const destroyRef = inject(DestroyRef) const queryClient = inject(QueryClient) - isRestoring.set(true) const { onSuccess, onError, persistOptions } = persistQueryClientOptions const options = { queryClient, ...persistOptions } persistQueryClientRestore(options) From 89846b71eb286cdb05858ad06e1344a9206564ce Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 5 May 2025 18:47:49 +0000 Subject: [PATCH 053/432] release: v5.75.3 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/nextjs-suspense-streaming/package.json | 2 +- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- 15 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e4b8a2009a..b831ad3c98 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 36c1c40674..bb18ab88bd 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-sync-storage-persister": "^5.75.0", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 395f535ae5..996bc285bd 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index d7fdec52df..01b10e9846 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.75.0", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-devtools-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index e667011577..1aadb25eac 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index f2805e438d..0c4428d9a9 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 35824c4b46..dab18a87d6 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index b0bde7c11f..91194e273e 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 1b2d38dff2..41fbe0490c 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 37e12b03c0..8b3d8900eb 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index d62bfe243d..471f923ee0 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.0", + "@tanstack/angular-query-experimental": "^5.75.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index b03aaa1ef1..67ffe0ac13 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/react-query": "^5.75.2", "@tanstack/react-query-devtools": "^5.75.2", - "@tanstack/react-query-next-experimental": "^5.75.2", + "@tanstack/react-query-next-experimental": "^5.75.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 8b73f8007f..57f982dabe 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.75.0", + "version": "5.75.3", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index dde9b933df..eb2e7feae7 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.75.0", + "version": "5.75.3", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 0567441c96..acb2915c3c 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.75.2", + "version": "5.75.3", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", From 5c7927d320fbd0811b9c51a1f843d6bd56cb2a4f Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Tue, 6 May 2025 09:27:15 +0200 Subject: [PATCH 054/432] fix(types): useSuspenseQuery should type-narrow the Error field (#9105) * fix(types): useSuspenseQuery should type-narrow the Error field * Update packages/query-core/src/types.ts Co-authored-by: Jonghyeon Ko * Update packages/query-core/src/types.ts Co-authored-by: Jonghyeon Ko * ref: use DistributiveOmit from query-core in vue-query * chore: fix type error in tests --------- Co-authored-by: Jonghyeon Ko --- packages/query-core/src/types.ts | 5 +++++ .../src/__tests__/useSuspenseQuery.test-d.tsx | 11 +++++++++++ .../src/__tests__/useSuspenseQuery.test.tsx | 2 +- packages/react-query/src/types.ts | 3 ++- packages/vue-query/src/types.ts | 4 ---- packages/vue-query/src/useMutation.ts | 3 ++- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index f158f0fdd7..dfde4ef867 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -9,6 +9,11 @@ import type { QueryFilters, QueryTypeFilter, SkipToken } from './utils' import type { QueryCache } from './queryCache' import type { MutationCache } from './mutationCache' +export type DistributiveOmit< + TObject, + TKey extends keyof TObject, +> = TObject extends any ? Omit : never + export type OmitKeyof< TObject, TKey extends TStrictly extends 'safely' diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx index 847a0f8c38..09576d63b8 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx @@ -68,4 +68,15 @@ describe('useSuspenseQuery', () => { // @ts-expect-error TS2339 query.isPlaceholderData }) + + it('should type-narrow the error field', () => { + const query = useSuspenseQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + }) + + if (query.status === 'error') { + expectTypeOf(query.error).toEqualTypeOf() + } + }) }) diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index 922efdbd2a..d86e710cd0 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -703,7 +703,7 @@ describe('useSuspenseQuery', () => { it('should render the correct amount of times in Suspense mode when gcTime is set to 0', async () => { const key = queryKey() - let state: UseSuspenseQueryResult | null = null + let state: UseSuspenseQueryResult | null = null let count = 0 let renders = 0 diff --git a/packages/react-query/src/types.ts b/packages/react-query/src/types.ts index 1609425301..18f632d406 100644 --- a/packages/react-query/src/types.ts +++ b/packages/react-query/src/types.ts @@ -4,6 +4,7 @@ import type { DefaultError, DefinedInfiniteQueryObserverResult, DefinedQueryObserverResult, + DistributiveOmit, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, MutateFunction, @@ -155,7 +156,7 @@ export type UseQueryResult< export type UseSuspenseQueryResult< TData = unknown, TError = DefaultError, -> = OmitKeyof< +> = DistributiveOmit< DefinedQueryObserverResult, 'isPlaceholderData' | 'promise' > diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts index a0c9fbaf5d..afabb55ea3 100644 --- a/packages/vue-query/src/types.ts +++ b/packages/vue-query/src/types.ts @@ -55,10 +55,6 @@ export type DeepUnwrapRef = T extends UnwrapLeaf } : UnwrapRef -export type DistributiveOmit = T extends any - ? Omit - : never - export interface DefaultOptions { queries?: OmitKeyof, 'queryKey'> & { /** diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts index c8f490b3f9..62c207b1ea 100644 --- a/packages/vue-query/src/useMutation.ts +++ b/packages/vue-query/src/useMutation.ts @@ -15,12 +15,13 @@ import { useQueryClient } from './useQueryClient' import type { ToRefs } from 'vue-demi' import type { DefaultError, + DistributiveOmit, MutateFunction, MutateOptions, MutationObserverOptions, MutationObserverResult, } from '@tanstack/query-core' -import type { DistributiveOmit, MaybeRefDeep } from './types' +import type { MaybeRefDeep } from './types' import type { QueryClient } from './queryClient' type MutationResult = DistributiveOmit< From 8d027847a2f2cecf0b21f5dd3871f46623bbd539 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 6 May 2025 07:29:50 +0000 Subject: [PATCH 055/432] release: v5.75.4 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index b831ad3c98..ad488cc6bb 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index bb18ab88bd..386143aca6 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.75.0", + "@tanstack/query-sync-storage-persister": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "^0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 996bc285bd..fcc111ad60 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 01b10e9846..4abea90c2c 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.75.3", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-devtools-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 1aadb25eac..6d654692db 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 0c4428d9a9..b0e6e529a8 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index dab18a87d6..499cd7b7d1 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 91194e273e..f0c25f61aa 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 41fbe0490c..2bb7a6151b 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 8b3d8900eb..a5ae84efac 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 471f923ee0..dcef975e76 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.3", + "@tanstack/angular-query-experimental": "^5.75.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 66c53dc725..dae482e4c5 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 275bfbc9ed..0753ff77f0 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 94dbab4510..03a6258f1f 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 6a69d910b3..ea343b6fa0 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", - "@tanstack/react-query-persist-client": "^5.75.2", + "@tanstack/query-sync-storage-persister": "^5.75.4", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query-persist-client": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 9924d220a1..434805f0ca 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index ce13afa90a..736dfab8a5 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 0e16ae8454..52ac1091ca 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index c732b8925f..f7df90b15d 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", - "@tanstack/react-query-persist-client": "^5.75.2", + "@tanstack/query-sync-storage-persister": "^5.75.4", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query-persist-client": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 461700431a..ba6a9659ad 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 7153eccdc1..878c4da134 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 134053550d..c2c1be612c 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 67ffe0ac13..182e048042 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", - "@tanstack/react-query-next-experimental": "^5.75.3", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query-next-experimental": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 802c828fa3..6ce75ee033 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 8d69a49839..29f0e4f2d5 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.0", + "@tanstack/query-sync-storage-persister": "^5.75.4", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", - "@tanstack/react-query-persist-client": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query-persist-client": "^5.75.4", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index bf96970a63..66f2110b98 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 0b8554bc15..1c6f028d79 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 6dbb10aa84..57e3cc5ec6 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 76d2dd3731..76a35a9302 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index ee75559f3d..6ac3248b9b 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index b57057d616..634641ea09 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 098638d0e6..8bc36c8ef8 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index e2b06cf17c..1861b3e9d3 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 8556c7988a..ed4a78ad47 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 38c49a0324..7b1d40e9c2 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index be82eb172c..7a55eae87a 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index da81dabba3..5a45d42292 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.2", - "@tanstack/react-query-devtools": "^5.75.2", + "@tanstack/react-query": "^5.75.4", + "@tanstack/react-query-devtools": "^5.75.4", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index dcfd0be956..94d3794650 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.75.0", - "@tanstack/solid-query-devtools": "^5.75.0", + "@tanstack/solid-query": "^5.75.4", + "@tanstack/solid-query-devtools": "^5.75.4", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index a37a499c3e..4f5c73874e 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.0", - "@tanstack/solid-query-devtools": "^5.75.0", + "@tanstack/solid-query": "^5.75.4", + "@tanstack/solid-query-devtools": "^5.75.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index f69fbd1b58..c1587344ab 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.0", - "@tanstack/solid-query-devtools": "^5.75.0", + "@tanstack/solid-query": "^5.75.4", + "@tanstack/solid-query-devtools": "^5.75.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index ebee08ba9f..68e798b239 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.0", - "@tanstack/solid-query-devtools": "^5.75.0", + "@tanstack/solid-query": "^5.75.4", + "@tanstack/solid-query-devtools": "^5.75.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 9ae7dfa56a..bc8c7b3a57 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.0", - "@tanstack/solid-query-devtools": "^5.75.0", + "@tanstack/solid-query": "^5.75.4", + "@tanstack/solid-query-devtools": "^5.75.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index d31216d98c..41e4ad25c7 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.75.0", - "@tanstack/solid-query-devtools": "^5.75.0", + "@tanstack/solid-query": "^5.75.4", + "@tanstack/solid-query-devtools": "^5.75.4", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index d398e3360e..ade9146bd6 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0" + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index b93e506130..c29e27c7fa 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0", - "@tanstack/svelte-query-persist-client": "^5.75.0" + "@tanstack/query-sync-storage-persister": "^5.75.4", + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4", + "@tanstack/svelte-query-persist-client": "^5.75.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index b7a40faac6..aca447daa9 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0" + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 8c5476471a..74bff86325 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0" + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index c705bf53da..21f458c6db 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0" + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index ed25a8eaa1..404cfbb1b7 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0" + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index e301df3df3..16316650d3 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0" + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 979b15990b..09be51fabb 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.0", - "@tanstack/svelte-query-devtools": "^5.75.0" + "@tanstack/svelte-query": "^5.75.4", + "@tanstack/svelte-query-devtools": "^5.75.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index de736cbc9a..b68a2a71a9 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.1", + "@tanstack/vue-query": "^5.75.4", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 46f49c51d9..0eb9b8ab2e 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.1", + "@tanstack/vue-query": "^5.75.4", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index b03e107634..791a9f8764 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.1", - "@tanstack/vue-query-devtools": "^5.75.1", + "@tanstack/vue-query": "^5.75.4", + "@tanstack/vue-query-devtools": "^5.75.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index dbb4c91a27..974f4fb686 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.1", + "@tanstack/vue-query": "^5.75.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index cbd7a95884..f4c05df02c 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.75.1" + "@tanstack/vue-query": "^5.75.4" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index f8fac9e1c1..1dfe967491 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.75.0", - "@tanstack/query-persist-client-core": "^5.75.0", - "@tanstack/query-sync-storage-persister": "^5.75.0", - "@tanstack/vue-query": "^5.75.1", + "@tanstack/query-core": "^5.75.4", + "@tanstack/query-persist-client-core": "^5.75.4", + "@tanstack/query-sync-storage-persister": "^5.75.4", + "@tanstack/vue-query": "^5.75.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 695a334337..b33f1add19 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.1", - "@tanstack/vue-query-devtools": "^5.75.1", + "@tanstack/vue-query": "^5.75.4", + "@tanstack/vue-query-devtools": "^5.75.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 57f982dabe..cd75560d86 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.75.3", + "version": "5.75.4", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index eb2e7feae7..5b33372bd5 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.75.3", + "version": "5.75.4", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 3749fc9b09..b3aadf4d43 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.75.0", + "version": "5.75.4", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 47588b85ed..713f318110 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.75.2", + "version": "5.75.4", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index b724ad6ace..63fe2ba3da 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.75.0", + "version": "5.75.4", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index d691263172..0de2032e84 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.75.0", + "version": "5.75.4", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 72f05e65cd..099b88045b 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.75.0", + "version": "5.75.4", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 760b21f026..1774eac49a 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.75.2", + "version": "5.75.4", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index acb2915c3c..a749b61472 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.75.3", + "version": "5.75.4", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3ddb619d4e..9ee1e589b5 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.75.2", + "version": "5.75.4", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index aad5bc810e..040e8b75f7 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.75.2", + "version": "5.75.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 2dcbd2bc9b..b4c6482a24 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.75.0", + "version": "5.75.4", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 0c3d4a6425..cce717dc3f 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.75.0", + "version": "5.75.4", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index c1d32c2dd4..e57bec74a6 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.75.0", + "version": "5.75.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 527104f510..7addc6a131 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.75.0", + "version": "5.75.4", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index c0f49d82aa..b6da280db5 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.75.0", + "version": "5.75.4", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index f97d47f28a..f32a6cd9ae 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.75.0", + "version": "5.75.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 7443755a5d..8bfd71c706 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.75.1", + "version": "5.75.4", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index d8f5cdf4e5..1c3126dafd 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.75.1", + "version": "5.75.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 127bd0110a2805ce308675f00862ff51f083f1a6 Mon Sep 17 00:00:00 2001 From: Eric Yancey Dauenhauer Date: Tue, 6 May 2025 02:46:04 -0500 Subject: [PATCH 056/432] docs: Clarify that `useQuery` results are immutable (#9108) --- docs/framework/vue/reactivity.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/framework/vue/reactivity.md b/docs/framework/vue/reactivity.md index 371b32c52c..50e5b8874f 100644 --- a/docs/framework/vue/reactivity.md +++ b/docs/framework/vue/reactivity.md @@ -157,6 +157,12 @@ export function useUserProjects(userId: MaybeRef) { More details on this option can be found on the [useQuery reference](./reference/useQuery.md) page. +## Immutability + +Results from `useQuery` are always immutable. This is necessary for performance and caching purposes. If you need to mutate a value returned from `useQuery`, you must create a copy of the data. + +One implication of this design is that passing values from `useQuery` to a two-way binding such as `v-model` will not work. You must create a mutable copy of the data before attempting to update it in place. + # Key Takeaways - `enabled` and `queryKey` are the two query options that can accept reactive values. @@ -164,3 +170,4 @@ More details on this option can be found on the [useQuery reference](./reference - If you expect a query to react to changes based on the values it consumes, ensure that the values are reactive. (i.e. pass in refs directly to the query, or use reactive getters) - If you don't need a query to be reactive pass in a plain value. - For trivial derived state such as property access consider using a reactive getter in place of a `computed`. +- Results from `useQuery` are always immutable. From 0943575ae7aea1530eb2de620d04e10ecfbd6020 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Tue, 6 May 2025 17:15:13 +0900 Subject: [PATCH 057/432] ci(*): init ESLint configurations to include 'vitest/expect-expect' rule as error across multiple packages gradually (#9104) * chore(*): init ESLint configurations to include 'vitest/expect-expect' rule as error across multiple packages gradually * chore(query-core): remove unused import from ESLint configuration * chore(angular-query-experimental): update eslint rule * chore: integrate vitest ESLint plugin and apply recommended rules across multiple packages * chore(react-query-devtools): add vitest ESLint plugin to configuration --- eslint.config.js | 5 +---- .../angular-query-experimental/eslint.config.js | 10 ++++++++++ .../src/__tests__/inject-query.test-d.ts | 7 +++++-- .../src/__tests__/mutation-options.test-d.ts | 7 +------ .../src/__tests__/query-options.test-d.ts | 15 +++++++-------- packages/eslint-plugin-query/eslint.config.js | 1 + .../eslint.config.js | 12 +++++++++++- .../eslint.config.js | 12 +++++++++++- packages/query-codemods/eslint.config.js | 8 ++++++++ packages/query-core/eslint.config.js | 12 +++++++++++- packages/query-core/src/__tests__/query.test.tsx | 2 +- .../query-persist-client-core/eslint.config.js | 12 +++++++++++- .../query-sync-storage-persister/eslint.config.js | 12 +++++++++++- packages/react-query-devtools/eslint.config.js | 8 ++++++++ .../eslint.config.js | 8 ++++++++ .../react-query-persist-client/eslint.config.js | 8 ++++++++ packages/react-query/eslint.config.js | 8 ++++++++ .../react-query/src/__tests__/useQuery.test-d.tsx | 7 +++++-- packages/solid-query-devtools/eslint.config.js | 12 +++++++++++- .../solid-query-persist-client/eslint.config.js | 12 +++++++++++- packages/solid-query/eslint.config.js | 12 +++++++++++- packages/svelte-query-devtools/eslint.config.js | 8 ++++++++ .../svelte-query-persist-client/eslint.config.js | 8 ++++++++ packages/svelte-query/eslint.config.js | 8 ++++++++ packages/vue-query-devtools/eslint.config.js | 13 ++++++++++++- packages/vue-query/eslint.config.js | 13 ++++++++++++- .../vue-query/src/__tests__/useQuery.test-d.ts | 7 +++++-- 27 files changed, 212 insertions(+), 35 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index d8a5458377..f156cd2e9c 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -45,10 +45,7 @@ export default [ { files: ['**/*.spec.ts*', '**/*.test.ts*', '**/*.test-d.ts*'], plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, + rules: vitest.configs.recommended.rules, settings: { vitest: { typecheck: true } }, }, ] diff --git a/packages/angular-query-experimental/eslint.config.js b/packages/angular-query-experimental/eslint.config.js index 84b0029c8e..a86775ff27 100644 --- a/packages/angular-query-experimental/eslint.config.js +++ b/packages/angular-query-experimental/eslint.config.js @@ -1,6 +1,7 @@ // @ts-check import pluginJsdoc from 'eslint-plugin-jsdoc' +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' export default [ @@ -28,4 +29,13 @@ export default [ ], }, }, + { + plugins: { vitest }, + rules: { + 'vitest/expect-expect': [ + 'error', + { assertFunctionNames: ['expect', 'expectSignals'] }, + ], + }, + }, ] diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts index a49ca421cf..406789dc42 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts @@ -108,11 +108,14 @@ describe('initialData', () => { }) describe('structuralSharing', () => { - it('should restrict to same types', () => { + it('should be able to use structuralSharing with unknown types', () => { + // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 injectQuery(() => ({ queryKey: ['key'], queryFn: () => 5, - structuralSharing: (_oldData, newData) => { + structuralSharing: (oldData, newData) => { + expectTypeOf(oldData).toBeUnknown() + expectTypeOf(newData).toBeUnknown() return newData }, })) diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts index 0aea5556a8..97f4b0d946 100644 --- a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts @@ -2,12 +2,7 @@ import { mutationOptions } from '../mutation-options' describe('mutationOptions', () => { test('should not allow excess properties', () => { - return mutationOptions({ - mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], - // @ts-expect-error this is a good error, because onMutates does not exist! - onMutates: 1000, - }) + expectTypeOf(mutationOptions).parameter(0).not.toHaveProperty('onMutates') }) test('should infer types for callbacks', () => { diff --git a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts index 0d49180b4a..18cd986adf 100644 --- a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts @@ -4,16 +4,11 @@ import type { Signal } from '@angular/core' describe('queryOptions', () => { test('should not allow excess properties', () => { - return queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + expectTypeOf(queryOptions).parameter(0).not.toHaveProperty('stallTime') }) test('should infer types for callbacks', () => { - return queryOptions({ + queryOptions({ queryKey: ['key'], queryFn: () => Promise.resolve(5), staleTime: 1000, @@ -24,7 +19,7 @@ describe('queryOptions', () => { }) test('should allow undefined response in initialData', () => { - return (id: string | null) => + const options = (id: string | null) => queryOptions({ queryKey: ['todo', id], queryFn: () => @@ -40,6 +35,10 @@ describe('queryOptions', () => { title: 'Initial Data', }, }) + + expectTypeOf(options(null).initialData).returns.toEqualTypeOf< + { id: string; title: string } | undefined + >() }) }) diff --git a/packages/eslint-plugin-query/eslint.config.js b/packages/eslint-plugin-query/eslint.config.js index cb04452c99..b6464bd8c9 100644 --- a/packages/eslint-plugin-query/eslint.config.js +++ b/packages/eslint-plugin-query/eslint.config.js @@ -8,6 +8,7 @@ export default [ { plugins: { vitest }, rules: { + ...vitest.configs.recommended.rules, 'vitest/expect-expect': [ 'warn', { diff --git a/packages/query-async-storage-persister/eslint.config.js b/packages/query-async-storage-persister/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/query-async-storage-persister/eslint.config.js +++ b/packages/query-async-storage-persister/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/query-broadcast-client-experimental/eslint.config.js b/packages/query-broadcast-client-experimental/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/query-broadcast-client-experimental/eslint.config.js +++ b/packages/query-broadcast-client-experimental/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/query-codemods/eslint.config.js b/packages/query-codemods/eslint.config.js index c3c009f41e..c48269cff1 100644 --- a/packages/query-codemods/eslint.config.js +++ b/packages/query-codemods/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' export default [ @@ -15,4 +16,11 @@ export default [ 'sort-imports': 'off', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/query-core/eslint.config.js b/packages/query-core/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/query-core/eslint.config.js +++ b/packages/query-core/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index 03a0222b7f..6d7485a6d7 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -1003,7 +1003,7 @@ describe('query', () => { const key = queryKey() const queryFn = vi - .fn() + .fn<() => Promise>() .mockImplementation(() => sleep(10).then(() => 'data')) queryClient.prefetchQuery({ diff --git a/packages/query-persist-client-core/eslint.config.js b/packages/query-persist-client-core/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/query-persist-client-core/eslint.config.js +++ b/packages/query-persist-client-core/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/query-sync-storage-persister/eslint.config.js b/packages/query-sync-storage-persister/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/query-sync-storage-persister/eslint.config.js +++ b/packages/query-sync-storage-persister/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/react-query-devtools/eslint.config.js b/packages/react-query-devtools/eslint.config.js index ec7943f019..9133d59894 100644 --- a/packages/react-query-devtools/eslint.config.js +++ b/packages/react-query-devtools/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' @@ -19,4 +20,11 @@ export default [ 'react-hooks/rules-of-hooks': 'error', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/react-query-next-experimental/eslint.config.js b/packages/react-query-next-experimental/eslint.config.js index 3554c211ee..45811bb8a1 100644 --- a/packages/react-query-next-experimental/eslint.config.js +++ b/packages/react-query-next-experimental/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' @@ -20,4 +21,11 @@ export default [ 'react-hooks/rules-of-hooks': 'error', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/react-query-persist-client/eslint.config.js b/packages/react-query-persist-client/eslint.config.js index ec7943f019..9133d59894 100644 --- a/packages/react-query-persist-client/eslint.config.js +++ b/packages/react-query-persist-client/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' @@ -19,4 +20,11 @@ export default [ 'react-hooks/rules-of-hooks': 'error', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/react-query/eslint.config.js b/packages/react-query/eslint.config.js index aadb420b90..60faf155e0 100644 --- a/packages/react-query/eslint.config.js +++ b/packages/react-query/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' // @ts-expect-error import pluginReactCompiler from 'eslint-plugin-react-compiler' @@ -31,4 +32,11 @@ export default [ 'react-compiler/react-compiler': 'off', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index c7feaf3c86..5aa37fc376 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -308,11 +308,14 @@ describe('useQuery', () => { }) describe('structuralSharing', () => { - it('should restrict to same types', () => { + it('should be able to use structuralSharing with unknown types', () => { + // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 useQuery({ queryKey: ['key'], queryFn: () => 5, - structuralSharing: (_oldData, newData) => { + structuralSharing: (oldData, newData) => { + expectTypeOf(oldData).toBeUnknown() + expectTypeOf(newData).toBeUnknown() return newData }, }) diff --git a/packages/solid-query-devtools/eslint.config.js b/packages/solid-query-devtools/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/solid-query-devtools/eslint.config.js +++ b/packages/solid-query-devtools/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/solid-query-persist-client/eslint.config.js b/packages/solid-query-persist-client/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/solid-query-persist-client/eslint.config.js +++ b/packages/solid-query-persist-client/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/solid-query/eslint.config.js b/packages/solid-query/eslint.config.js index df75435c7e..7ccaf50177 100644 --- a/packages/solid-query/eslint.config.js +++ b/packages/solid-query/eslint.config.js @@ -1,5 +1,15 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [...rootConfig] +export default [ + ...rootConfig, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/svelte-query-devtools/eslint.config.js b/packages/svelte-query-devtools/eslint.config.js index f31c5e878b..b40d00982a 100644 --- a/packages/svelte-query-devtools/eslint.config.js +++ b/packages/svelte-query-devtools/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' @@ -13,4 +14,11 @@ export default [ 'svelte/valid-compile': 'off', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/svelte-query-persist-client/eslint.config.js b/packages/svelte-query-persist-client/eslint.config.js index f31c5e878b..b40d00982a 100644 --- a/packages/svelte-query-persist-client/eslint.config.js +++ b/packages/svelte-query-persist-client/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' @@ -13,4 +14,11 @@ export default [ 'svelte/valid-compile': 'off', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/svelte-query/eslint.config.js b/packages/svelte-query/eslint.config.js index f31c5e878b..b40d00982a 100644 --- a/packages/svelte-query/eslint.config.js +++ b/packages/svelte-query/eslint.config.js @@ -1,5 +1,6 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' @@ -13,4 +14,11 @@ export default [ 'svelte/valid-compile': 'off', }, }, + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, ] diff --git a/packages/vue-query-devtools/eslint.config.js b/packages/vue-query-devtools/eslint.config.js index 6cd1d47ba7..0810a2d674 100644 --- a/packages/vue-query-devtools/eslint.config.js +++ b/packages/vue-query-devtools/eslint.config.js @@ -1,7 +1,18 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' // @ts-expect-error import pluginVue from 'eslint-plugin-vue' import rootConfig from './root.eslint.config.js' -export default [...rootConfig, ...pluginVue.configs['flat/base']] +export default [ + ...rootConfig, + ...pluginVue.configs['flat/base'], + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/vue-query/eslint.config.js b/packages/vue-query/eslint.config.js index 6cd1d47ba7..0810a2d674 100644 --- a/packages/vue-query/eslint.config.js +++ b/packages/vue-query/eslint.config.js @@ -1,7 +1,18 @@ // @ts-check +import vitest from '@vitest/eslint-plugin' // @ts-expect-error import pluginVue from 'eslint-plugin-vue' import rootConfig from './root.eslint.config.js' -export default [...rootConfig, ...pluginVue.configs['flat/base']] +export default [ + ...rootConfig, + ...pluginVue.configs['flat/base'], + { + plugins: { vitest }, + rules: { + ...vitest.configs.recommended.rules, + 'vitest/expect-expect': 'warn', + }, + }, +] diff --git a/packages/vue-query/src/__tests__/useQuery.test-d.ts b/packages/vue-query/src/__tests__/useQuery.test-d.ts index 3185a88957..84437f8fc1 100644 --- a/packages/vue-query/src/__tests__/useQuery.test-d.ts +++ b/packages/vue-query/src/__tests__/useQuery.test-d.ts @@ -161,11 +161,14 @@ describe('useQuery', () => { }) describe('structuralSharing', () => { - it('should restrict to same types', () => { + it('should be able to use structuralSharing with unknown types', () => { + // https://github.com/TanStack/query/issues/6525#issuecomment-1938411343 useQuery({ queryKey: ['key'], queryFn: () => 5, - structuralSharing: (_oldData, newData) => { + structuralSharing: (oldData, newData) => { + expectTypeOf(oldData).toBeUnknown() + expectTypeOf(newData).toBeUnknown() return newData }, }) From 06ac87ecdc09cadfffa3cfe29f84c459ecf9c6c4 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Tue, 6 May 2025 21:15:16 +0900 Subject: [PATCH 058/432] ci(angular-query, query-core): update vitest/expect-expect rule as error (#9109) --- .../__tests__/inject-devtools-panel.test.ts | 2 +- .../tsconfig.json | 3 +- .../__tests__/inject-infinite-query.test-d.ts | 2 +- .../__tests__/inject-infinite-query.test.ts | 2 +- .../src/__tests__/inject-is-fetching.test.ts | 2 +- .../src/__tests__/inject-is-mutating.test.ts | 2 +- .../__tests__/inject-mutation-state.test-d.ts | 2 +- .../__tests__/inject-mutation-state.test.ts | 2 +- .../src/__tests__/inject-mutation.test-d.ts | 2 +- .../src/__tests__/inject-mutation.test.ts | 2 +- .../src/__tests__/inject-query.test-d.ts | 2 +- .../src/__tests__/inject-query.test.ts | 10 ++- .../src/__tests__/mutation-options.test-d.ts | 20 +++++- .../src/__tests__/providers.test.ts | 2 +- .../src/__tests__/query-options.test-d.ts | 2 +- .../src/__tests__/signal-proxy.test.ts | 2 +- .../src/__tests__/test-utils.ts | 1 + .../angular-query-experimental/tsconfig.json | 3 +- .../tsconfig.json | 3 +- .../eslint.config.js | 12 +--- .../eslint.config.js | 12 +--- packages/query-codemods/eslint.config.js | 7 -- packages/query-core/eslint.config.js | 12 +--- .../src/__tests__/notifyManager.test.tsx | 22 +++++-- .../src/__tests__/queryClient.test-d.tsx | 65 +++++++++---------- .../eslint.config.js | 12 +--- .../eslint.config.js | 12 +--- 27 files changed, 96 insertions(+), 124 deletions(-) diff --git a/packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts b/packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts index e2d2f7751f..ff2f6224cb 100644 --- a/packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts +++ b/packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts @@ -8,7 +8,7 @@ import { QueryClient, provideTanStackQuery, } from '@tanstack/angular-query-experimental' -import { beforeEach, describe, expect, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { injectDevtoolsPanel } from '../inject-devtools-panel' const mockDevtoolsPanelInstance = { diff --git a/packages/angular-query-devtools-experimental/tsconfig.json b/packages/angular-query-devtools-experimental/tsconfig.json index 5982d4bf3e..330cf1d759 100644 --- a/packages/angular-query-devtools-experimental/tsconfig.json +++ b/packages/angular-query-devtools-experimental/tsconfig.json @@ -8,8 +8,7 @@ "noPropertyAccessFromIndexSignature": true, "noFallthroughCasesInSwitch": true, "useDefineForClassFields": false, - "target": "ES2022", - "types": ["vitest/globals"] + "target": "ES2022" }, "include": ["src", "*.config.js", "*.config.ts", "package.json"], "references": [ diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts index 4d4e28e6a8..047da657e2 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { afterEach } from 'vitest' +import { afterEach, beforeEach, describe, expectTypeOf, test, vi } from 'vitest' import { provideExperimentalZonelessChangeDetection } from '@angular/core' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' import { infiniteFetcher } from './test-utils' diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index c91c004294..6c7c8d1d51 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { afterEach } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { Injector, provideExperimentalZonelessChangeDetection, diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index fbbe9a6f00..1e42ddc124 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing' -import { beforeEach, describe, expect } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { Injector, provideExperimentalZonelessChangeDetection, diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index ccfa8e4640..73a3ce5f24 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { TestBed } from '@angular/core/testing' import { Injector, diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test-d.ts index 338c464a9b..0fbd5d8f65 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf } from 'vitest' +import { describe, expectTypeOf, it } from 'vitest' import { injectMutationState } from '..' import type { MutationState, MutationStatus } from '..' diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index e7ae9dec8a..44e6eeab90 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -6,7 +6,7 @@ import { signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' -import { describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { By } from '@angular/platform-browser' import { QueryClient, diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts index 2cfac635ed..b3aa0a96dc 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf } from 'vitest' +import { describe, expectTypeOf, test } from 'vitest' import { injectMutation } from '..' import { successMutator } from './test-utils' import type { Signal } from '@angular/core' diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index a15daa54db..f595095c81 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -6,7 +6,7 @@ import { signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' -import { describe, expect, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { By } from '@angular/platform-browser' import { QueryClient, injectMutation, provideTanStackQuery } from '..' import { diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts index 406789dc42..ded20a5803 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { describe, expectTypeOf, it, test } from 'vitest' import { injectQuery, queryOptions } from '..' import { simpleFetcher } from './test-utils' import type { Signal } from '@angular/core' diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 51d20eface..2f7d5f4f45 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -8,7 +8,15 @@ import { signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' -import { afterEach, describe, expect, vi } from 'vitest' +import { + afterEach, + beforeEach, + describe, + expect, + expectTypeOf, + test, + vi, +} from 'vitest' import { QueryCache, QueryClient, injectQuery, provideTanStackQuery } from '..' import { delayedFetcher, diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts index 97f4b0d946..e3412fe75f 100644 --- a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts @@ -1,12 +1,28 @@ +import { assertType, describe, expectTypeOf, test } from 'vitest' import { mutationOptions } from '../mutation-options' describe('mutationOptions', () => { test('should not allow excess properties', () => { - expectTypeOf(mutationOptions).parameter(0).not.toHaveProperty('onMutates') + assertType>([ + { + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + // @ts-expect-error this is a good error, because onMutates does not exist! + onMutates: 1000, + }, + ]) + assertType>([ + { + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + // @ts-expect-error this is a good error, because onMutates does not exist! + onMutates: 1000, + }, + ]) }) test('should infer types for callbacks', () => { - return mutationOptions({ + mutationOptions({ mutationFn: () => Promise.resolve(5), mutationKey: ['key'], onSuccess: (data) => { diff --git a/packages/angular-query-experimental/src/__tests__/providers.test.ts b/packages/angular-query-experimental/src/__tests__/providers.test.ts index 266aa40a35..a4d9b9da3f 100644 --- a/packages/angular-query-experimental/src/__tests__/providers.test.ts +++ b/packages/angular-query-experimental/src/__tests__/providers.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' import { QueryClient } from '@tanstack/query-core' import { TestBed } from '@angular/core/testing' import { diff --git a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts index 18cd986adf..350ab3dda2 100644 --- a/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/query-options.test-d.ts @@ -1,4 +1,4 @@ -import { assertType, describe, expectTypeOf } from 'vitest' +import { assertType, describe, expectTypeOf, test } from 'vitest' import { QueryClient, dataTagSymbol, injectQuery, queryOptions } from '..' import type { Signal } from '@angular/core' diff --git a/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts b/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts index f784554e90..d06aef6723 100644 --- a/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts +++ b/packages/angular-query-experimental/src/__tests__/signal-proxy.test.ts @@ -1,5 +1,5 @@ import { isSignal, signal } from '@angular/core' -import { describe } from 'vitest' +import { describe, expect, test } from 'vitest' import { signalProxy } from '../signal-proxy' describe('signalProxy', () => { diff --git a/packages/angular-query-experimental/src/__tests__/test-utils.ts b/packages/angular-query-experimental/src/__tests__/test-utils.ts index bb3f5bae83..9fdd01f943 100644 --- a/packages/angular-query-experimental/src/__tests__/test-utils.ts +++ b/packages/angular-query-experimental/src/__tests__/test-utils.ts @@ -1,5 +1,6 @@ import { isSignal, untracked } from '@angular/core' import { SIGNAL, signalSetFn } from '@angular/core/primitives/signals' +import { expect } from 'vitest' import type { InputSignal, Signal } from '@angular/core' import type { ComponentFixture } from '@angular/core/testing' diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 67e70b897c..fa57271ae7 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -8,8 +8,7 @@ "noPropertyAccessFromIndexSignature": true, "noFallthroughCasesInSwitch": true, "useDefineForClassFields": false, - "target": "ES2022", - "types": ["vitest/globals"] + "target": "ES2022" }, "include": ["src", "*.config.js", "*.config.ts", "package.json"], "references": [{ "path": "../query-core" }, { "path": "../query-devtools" }] diff --git a/packages/angular-query-persist-client/tsconfig.json b/packages/angular-query-persist-client/tsconfig.json index 1c0f8de7c8..85cdab026b 100644 --- a/packages/angular-query-persist-client/tsconfig.json +++ b/packages/angular-query-persist-client/tsconfig.json @@ -9,8 +9,7 @@ "noPropertyAccessFromIndexSignature": true, "noFallthroughCasesInSwitch": true, "useDefineForClassFields": false, - "target": "ES2022", - "types": ["vitest/globals"] + "target": "ES2022" }, "include": ["src", "*.config.js", "*.config.ts", "package.json"], "references": [ diff --git a/packages/query-async-storage-persister/eslint.config.js b/packages/query-async-storage-persister/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/query-async-storage-persister/eslint.config.js +++ b/packages/query-async-storage-persister/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] diff --git a/packages/query-broadcast-client-experimental/eslint.config.js b/packages/query-broadcast-client-experimental/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/query-broadcast-client-experimental/eslint.config.js +++ b/packages/query-broadcast-client-experimental/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] diff --git a/packages/query-codemods/eslint.config.js b/packages/query-codemods/eslint.config.js index c48269cff1..19a16c3c1e 100644 --- a/packages/query-codemods/eslint.config.js +++ b/packages/query-codemods/eslint.config.js @@ -16,11 +16,4 @@ export default [ 'sort-imports': 'off', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/query-core/eslint.config.js b/packages/query-core/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/query-core/eslint.config.js +++ b/packages/query-core/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] diff --git a/packages/query-core/src/__tests__/notifyManager.test.tsx b/packages/query-core/src/__tests__/notifyManager.test.tsx index 20a3103eca..deb070f2c5 100644 --- a/packages/query-core/src/__tests__/notifyManager.test.tsx +++ b/packages/query-core/src/__tests__/notifyManager.test.tsx @@ -1,4 +1,13 @@ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { + afterEach, + assertType, + beforeEach, + describe, + expect, + expectTypeOf, + it, + vi, +} from 'vitest' import { createNotifyManager } from '../notifyManager' import { sleep } from './utils' @@ -81,10 +90,13 @@ describe('notifyManager', () => { // now someFn expect to be called with args [a: string, b: number] const someFn = notifyManagerTest.batchCalls(fn) - someFn('im happy', 4) - - // @ts-expect-error - someFn('im not happy', false) + expectTypeOf(someFn).parameters.toEqualTypeOf>() + assertType>(['im happy', 4]) + assertType>([ + 'im not happy', + // @ts-expect-error + false, + ]) }) it('should use custom batch notify function', async () => { diff --git a/packages/query-core/src/__tests__/queryClient.test-d.tsx b/packages/query-core/src/__tests__/queryClient.test-d.tsx index c9d953a973..8a3be1a9e2 100644 --- a/packages/query-core/src/__tests__/queryClient.test-d.tsx +++ b/packages/query-core/src/__tests__/queryClient.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '../queryClient' import type { MutationFilters, QueryFilters, Updater } from '../utils' import type { Mutation } from '../mutation' @@ -42,10 +42,10 @@ describe('getQueryData', () => { }) it('should only allow Arrays to be passed', () => { - const queryKey = 'key' - const queryClient = new QueryClient() - // @ts-expect-error TS2345: Argument of type 'string' is not assignable to parameter of type 'QueryKey' - return queryClient.getQueryData(queryKey) + assertType>([ + // @ts-expect-error TS2345: Argument of type 'string' is not assignable to parameter of type 'QueryKey' + { queryKey: 'key' }, + ]) }) }) @@ -171,22 +171,26 @@ describe('fetchInfiniteQuery', () => { }) it('should not allow passing getNextPageParam without pages', () => { - new QueryClient().fetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve('string'), - initialPageParam: 1, - getNextPageParam: () => 1, - }) + assertType>([ + { + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + initialPageParam: 1, + getNextPageParam: () => 1, + }, + ]) }) it('should not allow passing pages without getNextPageParam', () => { - // @ts-expect-error Property 'getNextPageParam' is missing - return new QueryClient().fetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve('string'), - initialPageParam: 1, - pages: 5, - }) + assertType>([ + // @ts-expect-error Property 'getNextPageParam' is missing + { + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + initialPageParam: 1, + pages: 5, + }, + ]) }) }) @@ -506,26 +510,17 @@ describe('fully typed usage', () => { describe('invalidateQueries', () => { it('shows type error when queryKey is a wrong type in invalidateQueries', () => { - const queryClient = new QueryClient() - - queryClient.invalidateQueries() - - queryClient.invalidateQueries({ - queryKey: ['1'], - }) - - queryClient.invalidateQueries({ + assertType>([]) + assertType>([ + { queryKey: ['1'] }, + ]) + assertType>([ // @ts-expect-error - queryKey: '1', - }) - - queryClient.invalidateQueries({ - // @ts-expect-error - queryKey: {}, - }) + { queryKey: '1' }, + ]) }) it('needs queryKey to be an array (#8684)', () => { - new QueryClient().invalidateQueries({ + assertType>({ // @ts-expect-error key is not an array queryKey: { foo: true }, }) diff --git a/packages/query-persist-client-core/eslint.config.js b/packages/query-persist-client-core/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/query-persist-client-core/eslint.config.js +++ b/packages/query-persist-client-core/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] diff --git a/packages/query-sync-storage-persister/eslint.config.js b/packages/query-sync-storage-persister/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/query-sync-storage-persister/eslint.config.js +++ b/packages/query-sync-storage-persister/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] From 62faf10f5cff371350d1006f335d7f5317654fca Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Wed, 7 May 2025 01:52:07 +0900 Subject: [PATCH 059/432] ci(react-query): update vitest/expect-expect rule as error (#9110) --- .../react-query-devtools/eslint.config.js | 8 - .../eslint.config.js | 8 - .../eslint.config.js | 8 - packages/react-query/eslint.config.js | 8 - .../QueryResetErrorBoundary.test.tsx | 116 +++-- .../__tests__/infiniteQueryOptions.test-d.tsx | 44 +- .../src/__tests__/queryOptions.test-d.tsx | 23 +- .../src/__tests__/useInfiniteQuery.test.tsx | 38 +- .../src/__tests__/useIsFetching.test.tsx | 14 +- .../src/__tests__/useMutation.test.tsx | 61 ++- .../src/__tests__/useMutationState.test.tsx | 4 +- .../usePrefetchInfiniteQuery.test-d.tsx | 68 +-- .../src/__tests__/usePrefetchQuery.test-d.tsx | 44 +- .../src/__tests__/useQueries.test.tsx | 66 ++- .../src/__tests__/useQuery.promise.test.tsx | 8 +- .../src/__tests__/useQuery.test.tsx | 400 +++++++++++++----- .../useSuspenseInfiniteQuery.test-d.tsx | 85 ++-- .../__tests__/useSuspenseQueries.test-d.tsx | 112 ++--- .../src/__tests__/useSuspenseQueries.test.tsx | 36 +- .../src/__tests__/useSuspenseQuery.test-d.tsx | 86 ++-- .../src/__tests__/useSuspenseQuery.test.tsx | 100 +++-- 21 files changed, 876 insertions(+), 461 deletions(-) diff --git a/packages/react-query-devtools/eslint.config.js b/packages/react-query-devtools/eslint.config.js index 9133d59894..ec7943f019 100644 --- a/packages/react-query-devtools/eslint.config.js +++ b/packages/react-query-devtools/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' @@ -20,11 +19,4 @@ export default [ 'react-hooks/rules-of-hooks': 'error', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/react-query-next-experimental/eslint.config.js b/packages/react-query-next-experimental/eslint.config.js index 45811bb8a1..3554c211ee 100644 --- a/packages/react-query-next-experimental/eslint.config.js +++ b/packages/react-query-next-experimental/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' @@ -21,11 +20,4 @@ export default [ 'react-hooks/rules-of-hooks': 'error', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/react-query-persist-client/eslint.config.js b/packages/react-query-persist-client/eslint.config.js index 9133d59894..ec7943f019 100644 --- a/packages/react-query-persist-client/eslint.config.js +++ b/packages/react-query-persist-client/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' import pluginReactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' @@ -20,11 +19,4 @@ export default [ 'react-hooks/rules-of-hooks': 'error', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/react-query/eslint.config.js b/packages/react-query/eslint.config.js index 60faf155e0..aadb420b90 100644 --- a/packages/react-query/eslint.config.js +++ b/packages/react-query/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import pluginReact from '@eslint-react/eslint-plugin' // @ts-expect-error import pluginReactCompiler from 'eslint-plugin-react-compiler' @@ -32,11 +31,4 @@ export default [ 'react-compiler/react-compiler': 'off', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index 6ee2dd37ed..eeb19512d9 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -68,11 +68,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await waitFor(() => + expect(rendered.getByText('data')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -132,11 +138,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('status: error')) + await waitFor(() => + expect(rendered.getByText('status: error')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -198,11 +210,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await waitFor(() => + expect(rendered.getByText('data')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -259,10 +277,14 @@ describe('QueryErrorResetBoundary', () => { ) await waitFor(() => - rendered.getByText('status: pending, fetchStatus: idle'), + expect( + rendered.getByText('status: pending, fetchStatus: idle'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -316,11 +338,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -376,11 +404,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await waitFor(() => + expect(rendered.getByText('data')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -440,11 +474,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) shouldReset = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) succeed = true shouldReset = false fireEvent.click(rendered.getByText('retry')) @@ -651,11 +691,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await waitFor(() => + expect(rendered.getByText('data')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) }) @@ -715,11 +761,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await waitFor(() => + expect(rendered.getByText('data')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -779,11 +831,17 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await waitFor(() => + expect(rendered.getByText('data')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) }) diff --git a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx index c5d7efeee9..a1d97bf092 100644 --- a/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/infiniteQueryOptions.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it, test } from 'vitest' +import { assertType, describe, expectTypeOf, it, test } from 'vitest' import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' import { infiniteQueryOptions } from '../infiniteQueryOptions' import { useInfiniteQuery } from '../useInfiniteQuery' @@ -12,14 +12,16 @@ import type { describe('infiniteQueryOptions', () => { it('should not allow excess properties', () => { - infiniteQueryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve('data'), - getNextPageParam: () => 1, - initialPageParam: 1, - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + assertType( + infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('data'), + getNextPageParam: () => 1, + initialPageParam: 1, + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) }) it('should infer types for callbacks', () => { infiniteQueryOptions({ @@ -159,14 +161,22 @@ describe('infiniteQueryOptions', () => { getNextPageParam: () => 1, initialPageParam: 1, }) - // @ts-expect-error cannot pass infinite options to non-infinite query functions - useQuery(options) - // @ts-expect-error cannot pass infinite options to non-infinite query functions - queryClient.ensureQueryData(options) - // @ts-expect-error cannot pass infinite options to non-infinite query functions - queryClient.fetchQuery(options) - // @ts-expect-error cannot pass infinite options to non-infinite query functions - queryClient.prefetchQuery(options) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + useQuery(options), + ) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + queryClient.ensureQueryData(options), + ) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + queryClient.fetchQuery(options), + ) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + queryClient.prefetchQuery(options), + ) }) test('allow optional initialData function', () => { diff --git a/packages/react-query/src/__tests__/queryOptions.test-d.tsx b/packages/react-query/src/__tests__/queryOptions.test-d.tsx index f453900888..aac63737eb 100644 --- a/packages/react-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/queryOptions.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueriesObserver, QueryClient, @@ -18,12 +18,14 @@ import type { describe('queryOptions', () => { it('should not allow excess properties', () => { - queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + assertType( + queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) }) it('should infer types for callbacks', () => { queryOptions({ @@ -203,7 +205,7 @@ describe('queryOptions', () => { }) it('should allow undefined response in initialData', () => { - return (id: string | null) => + assertType((id: string | null) => queryOptions({ queryKey: ['todo', id], queryFn: () => @@ -218,7 +220,8 @@ describe('queryOptions', () => { id, title: 'Initial Data', }, - }) + }), + ) }) it('should allow optional initialData object', () => { @@ -248,7 +251,7 @@ describe('queryOptions', () => { queryFn: () => Promise.resolve(1), }) - somethingWithQueryOptions(options) + assertType(somethingWithQueryOptions(options)) }) it('should return a custom query key type', () => { diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index 75768977cf..433bc3fa2c 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -920,18 +920,30 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('status: success, idle')) await waitFor(() => - rendered.getByText('data: {"pages":[10],"pageParams":[10]}'), + expect(rendered.getByText('status: success, idle')).toBeInTheDocument(), + ) + await waitFor(() => + expect( + rendered.getByText('data: {"pages":[10],"pageParams":[10]}'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('status: success, fetching')) + await waitFor(() => + expect( + rendered.getByText('status: success, fetching'), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('status: success, idle')) await waitFor(() => - rendered.getByText('data: {"pages":[10,11],"pageParams":[10,11]}'), + expect(rendered.getByText('status: success, idle')).toBeInTheDocument(), + ) + await waitFor(() => + expect( + rendered.getByText('data: {"pages":[10,11],"pageParams":[10,11]}'), + ).toBeInTheDocument(), ) }) @@ -1216,13 +1228,17 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) await waitFor(() => - rendered.getByText('data: {"pages":[0],"pageParams":[0]}'), + expect( + rendered.getByText('data: {"pages":[0],"pageParams":[0]}'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /setPages/i })) await waitFor(() => - rendered.getByText('data: {"pages":[7,8],"pageParams":[7,8]}'), + expect( + rendered.getByText('data: {"pages":[7,8],"pageParams":[7,8]}'), + ).toBeInTheDocument(), ) multiplier = 2 @@ -1230,7 +1246,9 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) await waitFor(() => - rendered.getByText('data: {"pages":[14,30],"pageParams":[7,15]}'), + expect( + rendered.getByText('data: {"pages":[14,30],"pageParams":[7,15]}'), + ).toBeInTheDocument(), ) }) @@ -1807,7 +1825,9 @@ describe('useInfiniteQuery', () => { const rendered = render() - await waitFor(() => rendered.getByText('data: custom client')) + await waitFor(() => + expect(rendered.getByText('data: custom client')).toBeInTheDocument(), + ) }) it('should work with React.use()', async () => { diff --git a/packages/react-query/src/__tests__/useIsFetching.test.tsx b/packages/react-query/src/__tests__/useIsFetching.test.tsx index 223d586d64..bed5506fe9 100644 --- a/packages/react-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/react-query/src/__tests__/useIsFetching.test.tsx @@ -53,20 +53,20 @@ describe('useIsFetching', () => { ) } - const { findByText, getByRole } = renderWithClient(queryClient, ) + const { getByText, getByRole } = renderWithClient(queryClient, ) await vi.waitFor(() => { - findByText('isFetching: 0') + expect(getByText('isFetching: 0')).toBeInTheDocument() }) fireEvent.click(getByRole('button', { name: /setReady/i })) await vi.waitFor(() => { - findByText('isFetching: 1') + expect(getByText('isFetching: 1')).toBeInTheDocument() }) await vi.waitFor(() => { - findByText('isFetching: 0') + expect(getByText('isFetching: 0')).toBeInTheDocument() }) }) @@ -226,11 +226,11 @@ describe('useIsFetching', () => { const rendered = renderWithClient(queryClient, ) await vi.waitFor(() => { - rendered.findByText('isFetching: 1') + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() }) await vi.waitFor(() => { - rendered.findByText('isFetching: 0') + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) }) @@ -262,7 +262,7 @@ describe('useIsFetching', () => { const rendered = render() await vi.waitFor(() => { - rendered.getByText('isFetching: 1') + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() }) }) }) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 668ac07f4b..20aad96b95 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -197,22 +197,42 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data')) + await vi.waitFor(() => + expect(rendered.getByText('Data')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => rendered.getByText('Data')) - await vi.waitFor(() => rendered.getByText('Status error')) - await vi.waitFor(() => rendered.getByText('Failed 1 times')) await vi.waitFor(() => - rendered.getByText('Failed because Error test Jonas'), + expect(rendered.getByText('Data')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Status error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failed 1 times')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('Failed because Error test Jonas'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => rendered.getByText('Status pending')) - await vi.waitFor(() => rendered.getByText('Status success')) - await vi.waitFor(() => rendered.getByText('Data 2')) - await vi.waitFor(() => rendered.getByText('Failed 0 times')) - await vi.waitFor(() => rendered.getByText('Failed because null')) + await vi.waitFor(() => + expect(rendered.getByText('Status pending')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Status success')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Data 2')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failed 0 times')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failed because null')).toBeInTheDocument(), + ) }) it('should be able to call `onError` and `onSettled` after each failed mutate', async () => { @@ -682,6 +702,7 @@ describe('useMutation', () => { onlineMock.mockRestore() }) + // eslint-disable-next-line vitest/expect-expect it('should not change state if unmounted', () => { function Mutates() { const { mutate } = useMutation({ mutationFn: () => sleep(10) }) @@ -1084,12 +1105,18 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.findByText('error: null, status: idle')) + await vi.waitFor(() => + expect( + rendered.getByText('error: null, status: idle'), + ).toBeInTheDocument(), + ) rendered.getByRole('button', { name: /mutate/i }).click() await vi.waitFor(() => - rendered.findByText('error: mutateFnError, status: error'), + expect( + rendered.getByText('error: mutateFnError, status: error'), + ).toBeInTheDocument(), ) }) @@ -1158,12 +1185,18 @@ describe('useMutation', () => { const rendered = render() - await vi.waitFor(() => rendered.findByText('data: null, status: idle')) + await vi.waitFor(() => + expect( + rendered.getByText('data: null, status: idle'), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) await vi.waitFor(() => - rendered.findByText('data: custom client, status: success'), + expect( + rendered.getByText('data: custom client, status: success'), + ).toBeInTheDocument(), ) }) }) diff --git a/packages/react-query/src/__tests__/useMutationState.test.tsx b/packages/react-query/src/__tests__/useMutationState.test.tsx index cd6bcda438..1f88ed6200 100644 --- a/packages/react-query/src/__tests__/useMutationState.test.tsx +++ b/packages/react-query/src/__tests__/useMutationState.test.tsx @@ -163,7 +163,9 @@ describe('useIsMutating', () => { const rendered = render() - await vi.waitFor(() => rendered.getByText('mutating: 1')) + await vi.waitFor(() => + expect(rendered.getByText('mutating: 1')).toBeInTheDocument(), + ) }) }) diff --git a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx index f813a14382..03af450c93 100644 --- a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { usePrefetchInfiniteQuery } from '..' describe('usePrefetchInfiniteQuery', () => { @@ -14,39 +14,47 @@ describe('usePrefetchInfiniteQuery', () => { }) it('should require initialPageParam and getNextPageParam', () => { - // @ts-expect-error TS2345 - usePrefetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - }) + assertType( + // @ts-expect-error TS2345 + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + }), + ) }) it('should not allow refetchInterval, enabled or throwOnError options', () => { - usePrefetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - initialPageParam: 1, - getNextPageParam: () => 1, - // @ts-expect-error TS2353 - refetchInterval: 1000, - }) + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2353 + refetchInterval: 1000, + }), + ) - usePrefetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - initialPageParam: 1, - getNextPageParam: () => 1, - // @ts-expect-error TS2353 - enabled: true, - }) + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2353 + enabled: true, + }), + ) - usePrefetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - initialPageParam: 1, - getNextPageParam: () => 1, - // @ts-expect-error TS2353 - throwOnError: true, - }) + assertType( + usePrefetchInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2353 + throwOnError: true, + }), + ) }) }) diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx index d337d77e2e..e7d9db5007 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { usePrefetchQuery } from '..' describe('usePrefetchQuery', () => { @@ -12,25 +12,31 @@ describe('usePrefetchQuery', () => { }) it('should not allow refetchInterval, enabled or throwOnError options', () => { - usePrefetchQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error TS2345 - refetchInterval: 1000, - }) + assertType( + usePrefetchQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2345 + refetchInterval: 1000, + }), + ) - usePrefetchQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error TS2345 - enabled: true, - }) + assertType( + usePrefetchQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2345 + enabled: true, + }), + ) - usePrefetchQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error TS2345 - throwOnError: true, - }) + assertType( + usePrefetchQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2345 + throwOnError: true, + }), + ) }) }) diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index 55ee81e980..8bb81fffcc 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -836,8 +836,12 @@ describe('useQueries', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('single query error')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('single query error')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -903,8 +907,12 @@ describe('useQueries', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('single query error')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('single query error')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -932,7 +940,9 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => rendered.getByText('data: custom client')) + await waitFor(() => + expect(rendered.getByText('data: custom client')).toBeInTheDocument(), + ) }) it('should combine queries', async () => { @@ -974,7 +984,9 @@ describe('useQueries', () => { const rendered = render() await waitFor(() => - rendered.getByText('data: true first result,second result'), + expect( + rendered.getByText('data: true first result,second result'), + ).toBeInTheDocument(), ) }) @@ -1085,9 +1097,11 @@ describe('useQueries', () => { const rendered = renderWithClient(queryClient, ) await waitFor(() => - rendered.getByText( - 'data: {"data":{"query1":"query1","query2":"query2"}}', - ), + expect( + rendered.getByText( + 'data: {"data":{"query1":"query1","query2":"query2"}}', + ), + ).toBeInTheDocument(), ) }) @@ -1144,7 +1158,9 @@ describe('useQueries', () => { const rendered = render() await waitFor(() => - rendered.getByText('data: true first result 0,second result 0'), + expect( + rendered.getByText('data: true first result 0,second result 0'), + ).toBeInTheDocument(), ) expect(results.length).toBe(3) @@ -1237,9 +1253,15 @@ describe('useQueries', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Loading Status: Loading...')) + await waitFor(() => + expect( + rendered.getByText('Loading Status: Loading...'), + ).toBeInTheDocument(), + ) - await waitFor(() => rendered.getByText('Loading Status: Loaded')) + await waitFor(() => + expect(rendered.getByText('Loading Status: Loaded')).toBeInTheDocument(), + ) }) it('should not have stale closures with combine (#6648)', async () => { @@ -1281,7 +1303,9 @@ describe('useQueries', () => { fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await waitFor(() => rendered.getByText('data: 1 result')) + await waitFor(() => + expect(rendered.getByText('data: 1 result')).toBeInTheDocument(), + ) }) it('should optimize combine if it is a stable reference', async () => { @@ -1610,17 +1634,23 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => rendered.getByText('data: pending')) await waitFor(() => - rendered.getByText('data: first result, second result, third result'), + expect(rendered.getByText('data: pending')).toBeInTheDocument(), + ) + await waitFor(() => + expect( + rendered.getByText('data: first result, second result, third result'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /update/i })) await waitFor(() => - rendered.getByText( - 'data: first result updated, second result, third result', - ), + expect( + rendered.getByText( + 'data: first result updated, second result, third result', + ), + ).toBeInTheDocument(), ) }) }) diff --git a/packages/react-query/src/__tests__/useQuery.promise.test.tsx b/packages/react-query/src/__tests__/useQuery.promise.test.tsx index d4c64efd0f..915100d367 100644 --- a/packages/react-query/src/__tests__/useQuery.promise.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.promise.test.tsx @@ -620,12 +620,12 @@ describe('useQuery().promise', () => { { const { withinDOM } = await renderStream.takeRender() - withinDOM().getByText('loading..') + expect(withinDOM().getByText('loading..')).toBeInTheDocument() } { const { withinDOM } = await renderStream.takeRender() - withinDOM().getByText('error boundary') + expect(withinDOM().getByText('error boundary')).toBeInTheDocument() } consoleMock.mockRestore() @@ -979,7 +979,7 @@ describe('useQuery().promise', () => { { const { withinDOM } = await renderStream.takeRender() - withinDOM().getByText('loading..') + expect(withinDOM().getByText('loading..')).toBeInTheDocument() } rendered.getByText('enable').click() @@ -989,7 +989,7 @@ describe('useQuery().promise', () => { { const { withinDOM } = await renderStream.takeRender() - withinDOM().getByText('test1') + expect(withinDOM().getByText('test1')).toBeInTheDocument() } }) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index e401ee8612..0cc6d639fb 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -54,9 +54,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - rendered.getByText('default') + expect(rendered.getByText('default')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('test')) + await vi.waitFor(() => + expect(rendered.getByText('test')).toBeInTheDocument(), + ) }) it('should return the correct states for a successful query', async () => { @@ -292,14 +294,16 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - rendered.getByText('data: prefetched') - rendered.getByText('isFetched: true') - rendered.getByText('isFetchedAfterMount: false') + expect(rendered.getByText('data: prefetched')).toBeInTheDocument() + expect(rendered.getByText('isFetched: true')).toBeInTheDocument() + expect(rendered.getByText('isFetchedAfterMount: false')).toBeInTheDocument() await vi.waitFor(() => { - rendered.getByText('data: new data') - rendered.getByText('isFetched: true') - rendered.getByText('isFetchedAfterMount: true') + expect(rendered.getByText('data: new data')).toBeInTheDocument() + expect(rendered.getByText('isFetched: true')).toBeInTheDocument() + expect( + rendered.getByText('isFetchedAfterMount: true'), + ).toBeInTheDocument() }) }) @@ -997,9 +1001,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: set')) + await vi.waitFor(() => + expect(rendered.getByText('data: set')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => rendered.getByText('data: fetched')) + await vi.waitFor(() => + expect(rendered.getByText('data: fetched')).toBeInTheDocument(), + ) }) it('should update query stale state and refetch when invalidated with invalidateQueries', async () => { @@ -1033,14 +1041,20 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) await vi.waitFor(() => - rendered.getByText('data: 1, isStale: false, isFetching: false'), + expect( + rendered.getByText('data: 1, isStale: false, isFetching: false'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) await vi.waitFor(() => - rendered.getByText('data: 1, isStale: true, isFetching: true'), + expect( + rendered.getByText('data: 1, isStale: true, isFetching: true'), + ).toBeInTheDocument(), ) await vi.waitFor(() => - rendered.getByText('data: 2, isStale: false, isFetching: false'), + expect( + rendered.getByText('data: 2, isStale: false, isFetching: false'), + ).toBeInTheDocument(), ) }) @@ -2032,13 +2046,19 @@ describe('useQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /set id/i })) await vi.waitFor(() => { - rendered.getByText('User fetching status is fetching') + expect( + rendered.getByText('User fetching status is fetching'), + ).toBeInTheDocument() }) await vi.waitFor(() => { - rendered.getByText('UserInfo data is {"id":42,"name":"John"}') + expect( + rendered.getByText('UserInfo data is {"id":42,"name":"John"}'), + ).toBeInTheDocument() }) - rendered.getByText('User fetching status is idle') + expect( + rendered.getByText('User fetching status is idle'), + ).toBeInTheDocument() }) describe('notifyOnChangeProps', () => { @@ -2333,10 +2353,10 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - rendered.getByText('First Data: init') - rendered.getByText('Second Data: init') - rendered.getByText('First Status: success') - rendered.getByText('Second Status: success') + expect(rendered.getByText('First Data: init')).toBeInTheDocument() + expect(rendered.getByText('Second Data: init')).toBeInTheDocument() + expect(rendered.getByText('First Status: success')).toBeInTheDocument() + expect(rendered.getByText('Second Status: success')).toBeInTheDocument() }) it('should update query options', () => { @@ -2408,7 +2428,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('new')) + await vi.waitFor(() => + expect(rendered.getByText('new')).toBeInTheDocument(), + ) }) // See https://github.com/tannerlinsley/react-query/issues/170 @@ -2440,11 +2462,19 @@ describe('useQuery', () => { // use "act" to wait for state update and prevent console warning - rendered.getByText('First Status: pending, idle') + expect( + rendered.getByText('First Status: pending, idle'), + ).toBeInTheDocument() + await vi.waitFor(() => + expect( + rendered.getByText('Second Status: pending, fetching'), + ).toBeInTheDocument(), + ) await vi.waitFor(() => - rendered.getByText('Second Status: pending, fetching'), + expect( + rendered.getByText('Second Status: success, idle'), + ).toBeInTheDocument(), ) - await vi.waitFor(() => rendered.getByText('Second Status: success, idle')) }) // See https://github.com/tannerlinsley/react-query/issues/144 @@ -2465,7 +2495,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - rendered.getByText('status: pending') + expect(rendered.getByText('status: pending')).toBeInTheDocument() }) it('should not refetch query on focus when `enabled` is set to `false`', async () => { @@ -2620,13 +2650,21 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0, isFetching: false')) + await vi.waitFor(() => + expect( + rendered.getByText('data: 0, isFetching: false'), + ).toBeInTheDocument(), + ) act(() => { window.dispatchEvent(new Event('visibilitychange')) }) - await vi.waitFor(() => rendered.getByText('data: 1, isFetching: false')) + await vi.waitFor(() => + expect( + rendered.getByText('data: 1, isFetching: false'), + ).toBeInTheDocument(), + ) }) it('should calculate focus behavior for `refetchOnWindowFocus` depending on function', async () => { @@ -2781,8 +2819,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('error')) - await vi.waitFor(() => rendered.getByText('Error test')) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Error test')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -2816,7 +2858,9 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -2873,8 +2917,12 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('error')) - await vi.waitFor(() => rendered.getByText('Local Error')) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Local Error')).toBeInTheDocument(), + ) }) it('should throw error instead of setting status when error should be thrown', async () => { @@ -2915,8 +2963,12 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('error boundary')) - await vi.waitFor(() => rendered.getByText('Remote Error')) + await vi.waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Remote Error')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -2959,12 +3011,24 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('failureCount: 1')) - await vi.waitFor(() => rendered.getByText('failureReason: some error')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount: 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason: some error'), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await vi.waitFor(() => rendered.getByRole('button', { name: /show/i })) + await vi.waitFor(() => + expect( + rendered.getByRole('button', { name: /show/i }), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /show/i })) - await vi.waitFor(() => rendered.getByText('error: some error')) + await vi.waitFor(() => + expect(rendered.getByText('error: some error')).toBeInTheDocument(), + ) expect(count).toBe(4) }) @@ -3011,13 +3075,25 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('failureCount: 1')) - await vi.waitFor(() => rendered.getByText('failureReason: some error')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount: 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason: some error'), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) fireEvent.click(rendered.getByRole('button', { name: /cancel/i })) - await vi.waitFor(() => rendered.getByRole('button', { name: /show/i })) + await vi.waitFor(() => + expect( + rendered.getByRole('button', { name: /show/i }), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /show/i })) - await vi.waitFor(() => rendered.getByText('error: some error')) + await vi.waitFor(() => + expect(rendered.getByText('error: some error')).toBeInTheDocument(), + ) // initial fetch (1), which will be cancelled, followed by new mount(2) + 2 retries = 4 expect(count).toBe(4) @@ -3399,15 +3475,31 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // The query should display the first error result - await vi.waitFor(() => rendered.getByText('failureCount 1')) - await vi.waitFor(() => rendered.getByText('failureReason fetching error 1')) - await vi.waitFor(() => rendered.getByText('status pending')) - await vi.waitFor(() => rendered.getByText('error null')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 1'), + ).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('status pending')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('error null')).toBeInTheDocument(), + ) // Check if the query really paused await vi.advanceTimersByTimeAsync(10) - await vi.waitFor(() => rendered.getByText('failureCount 1')) - await vi.waitFor(() => rendered.getByText('failureReason fetching error 1')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 1'), + ).toBeInTheDocument(), + ) act(() => { // reset visibilityState to original value @@ -3416,15 +3508,31 @@ describe('useQuery', () => { }) // Wait for the final result - await vi.waitFor(() => rendered.getByText('failureCount 4')) - await vi.waitFor(() => rendered.getByText('failureReason fetching error 4')) - await vi.waitFor(() => rendered.getByText('status error')) - await vi.waitFor(() => rendered.getByText('error fetching error 4')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 4')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 4'), + ).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('status error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('error fetching error 4')).toBeInTheDocument(), + ) // Check if the query really stopped await vi.advanceTimersByTimeAsync(10) - await vi.waitFor(() => rendered.getByText('failureCount 4')) - await vi.waitFor(() => rendered.getByText('failureReason fetching error 4')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 4')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 4'), + ).toBeInTheDocument(), + ) }) it('should fetch on mount when a query was already created with setQueryData', async () => { @@ -3617,10 +3725,18 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('failureCount 2')) - await vi.waitFor(() => rendered.getByText('failureReason error')) - await vi.waitFor(() => rendered.getByText('failureCount 0')) - await vi.waitFor(() => rendered.getByText('failureReason null')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 2')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('failureReason error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 0')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('failureReason null')).toBeInTheDocument(), + ) }) // See https://github.com/tannerlinsley/react-query/issues/199 @@ -3665,11 +3781,17 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('isPrefetched')) + await vi.waitFor(() => + expect(rendered.getByText('isPrefetched')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('setKey')) - await vi.waitFor(() => rendered.getByText('data: prefetched data')) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => + expect(rendered.getByText('data: prefetched data')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('data: 1')).toBeInTheDocument(), + ) expect(count).toBe(1) }) @@ -3698,15 +3820,17 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - rendered.getByText('FetchStatus: idle') - rendered.getByText('Data: no data') + expect(rendered.getByText('FetchStatus: idle')).toBeInTheDocument() + expect(rendered.getByText('Data: no data')).toBeInTheDocument() fireEvent.click(rendered.getByText('fetch')) - await vi.waitFor(() => rendered.getByText('FetchStatus: fetching')) + await vi.waitFor(() => + expect(rendered.getByText('FetchStatus: fetching')).toBeInTheDocument(), + ) await vi.waitFor(() => [ - rendered.getByText('FetchStatus: idle'), - rendered.getByText('Data: data'), + expect(rendered.getByText('FetchStatus: idle')).toBeInTheDocument(), + expect(rendered.getByText('Data: data')).toBeInTheDocument(), ]) }) @@ -3807,12 +3931,22 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Current Todos, filter: all')) + await vi.waitFor(() => + expect( + rendered.getByText('Current Todos, filter: all'), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /high/i })) - await vi.waitFor(() => rendered.getByText('Current Todos, filter: high')) + await vi.waitFor(() => + expect( + rendered.getByText('Current Todos, filter: high'), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /all/i })) - await vi.waitFor(() => rendered.getByText('todo B - medium')) + await vi.waitFor(() => + expect(rendered.getByText('todo B - medium')).toBeInTheDocument(), + ) }) // // See https://github.com/tannerlinsley/react-query/issues/214 @@ -3850,15 +3984,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) await vi.waitFor(() => { - rendered.getByText('fetched data') - rendered.getByText('enabled') + expect(rendered.getByText('fetched data')).toBeInTheDocument() + expect(rendered.getByText('enabled')).toBeInTheDocument() }) fireEvent.click(rendered.getByRole('button', { name: /enable/i })) await vi.waitFor(() => { - rendered.getByText('fetched data') - rendered.getByText('disabled') + expect(rendered.getByText('fetched data')).toBeInTheDocument() + expect(rendered.getByText('disabled')).toBeInTheDocument() }) expect(results.length).toBe(3) @@ -3886,7 +4020,7 @@ describe('useQuery', () => { expect(queryFn).not.toHaveBeenCalled() expect(queryCache.find({ queryKey: key })).not.toBeUndefined() - rendered.getByText('fetchStatus: idle') + expect(rendered.getByText('fetchStatus: idle')).toBeInTheDocument() }) // See https://github.com/tannerlinsley/react-query/issues/360 @@ -3911,7 +4045,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('status: pending, idle')) + await vi.waitFor(() => + expect(rendered.getByText('status: pending, idle')).toBeInTheDocument(), + ) }) test('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { @@ -4033,9 +4169,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // mount - await vi.waitFor(() => rendered.getByText('count: 0')) - await vi.waitFor(() => rendered.getByText('count: 1')) - await vi.waitFor(() => rendered.getByText('count: 2')) + await vi.waitFor(() => + expect(rendered.getByText('count: 0')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('count: 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('count: 2')).toBeInTheDocument(), + ) }) it('should refetch in an interval depending on function result', async () => { @@ -4139,7 +4281,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('')) + await vi.waitFor(() => expect(rendered.getByText('')).toBeInTheDocument()) }) it('should accept an object as query key', async () => { @@ -4153,7 +4295,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('[{"a":"a"}]')) + await vi.waitFor(() => + expect(rendered.getByText('[{"a":"a"}]')).toBeInTheDocument(), + ) }) it('should refetch if any query instance becomes enabled', async () => { @@ -4458,19 +4602,29 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2 + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 101')).toBeInTheDocument(), + ) // 99 + 2 - await vi.waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2 + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 2')).toBeInTheDocument(), + ) // 0 + 2 fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await vi.waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3 + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 3')).toBeInTheDocument(), + ) // 0 + 3 fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i })) - await vi.waitFor(() => rendered.getByText('forceValue: 2')) + await vi.waitFor(() => + expect(rendered.getByText('forceValue: 2')).toBeInTheDocument(), + ) // data should still be 3 after an independent re-render - await vi.waitFor(() => rendered.getByText('Data: selected 3')) + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 3')).toBeInTheDocument(), + ) }) it('select should structurally share data', async () => { @@ -4966,18 +5120,24 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // initial state check - rendered.getByText('status: pending') + expect(rendered.getByText('status: pending')).toBeInTheDocument() // render error state component - await vi.waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) // change to unmount query fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) // change to mount new query fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) }) it('should refetch when query key changed when switching between erroneous queries', async () => { @@ -5019,20 +5179,30 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // initial state check - rendered.getByText('status: fetching') + expect(rendered.getByText('status: fetching')).toBeInTheDocument() // render error state component - await vi.waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) // change to mount second query fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => rendered.getByText('status: fetching')) - await vi.waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => + expect(rendered.getByText('status: fetching')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) // change to mount first query again fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => rendered.getByText('status: fetching')) - await vi.waitFor(() => rendered.getByText('error')) + await vi.waitFor(() => + expect(rendered.getByText('status: fetching')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) }) it('should have no error in pending state when refetching after error occurred', async () => { @@ -6038,11 +6208,17 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) const fetchBtn = rendered.getByRole('button', { name: 'refetch' }) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => + expect(rendered.getByText('data: 1')).toBeInTheDocument(), + ) fireEvent.click(fetchBtn) - await vi.waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => + expect(rendered.getByText('data: 2')).toBeInTheDocument(), + ) fireEvent.click(fetchBtn) - await vi.waitFor(() => rendered.getByText('data: 3')) + await vi.waitFor(() => + expect(rendered.getByText('data: 3')).toBeInTheDocument(), + ) }) it('should use provided custom queryClient', async () => { @@ -6065,7 +6241,9 @@ describe('useQuery', () => { const rendered = render() - await vi.waitFor(() => rendered.getByText('data: custom client')) + await vi.waitFor(() => + expect(rendered.getByText('data: custom client')).toBeInTheDocument(), + ) }) it('should be notified of updates between create and subscribe', async () => { @@ -6098,8 +6276,12 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('status: success')) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => + expect(rendered.getByText('status: success')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('data: 1')).toBeInTheDocument(), + ) }) it('should reuse same data object reference when queryKey changes back to some cached data', async () => { const key = queryKey() @@ -6243,7 +6425,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Works')) + await vi.waitFor(() => + expect(rendered.getByText('Works')).toBeInTheDocument(), + ) }) it('should keep the previous data when placeholderData is set and cache is used', async () => { @@ -6402,11 +6586,17 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('status: pending')) + await vi.waitFor(() => + expect(rendered.getByText('status: pending')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: 'enable' })) - await vi.waitFor(() => rendered.getByText('status: success')) - await vi.waitFor(() => rendered.getByText('data: data')) + await vi.waitFor(() => + expect(rendered.getByText('status: success')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('data: data')).toBeInTheDocument(), + ) }) it('should allow enabled: true and queryFn: skipToken', async () => { diff --git a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx index d59672fec7..49cdb7939b 100644 --- a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { skipToken } from '@tanstack/query-core' import { useSuspenseInfiniteQuery } from '../useSuspenseInfiniteQuery' import type { InfiniteData } from '@tanstack/query-core' @@ -16,17 +16,21 @@ describe('useSuspenseInfiniteQuery', () => { }) it('should not allow skipToken in queryFn', () => { - useSuspenseInfiniteQuery({ - queryKey: ['key'], - // @ts-expect-error - queryFn: skipToken, - }) + assertType( + useSuspenseInfiniteQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: skipToken, + }), + ) - useSuspenseInfiniteQuery({ - queryKey: ['key'], - // @ts-expect-error - queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), - }) + assertType( + useSuspenseInfiniteQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }), + ) }) it('should not have pending status', () => { @@ -41,33 +45,39 @@ describe('useSuspenseInfiniteQuery', () => { }) it('should not allow placeholderData, enabled or throwOnError props', () => { - useSuspenseInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - initialPageParam: 1, - getNextPageParam: () => 1, - // @ts-expect-error TS2345 - placeholderData: 5, - enabled: true, - }) + assertType( + useSuspenseInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2345 + placeholderData: 5, + enabled: true, + }), + ) - useSuspenseInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - initialPageParam: 1, - getNextPageParam: () => 1, - // @ts-expect-error TS2345 - enabled: true, - }) + assertType( + useSuspenseInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2345 + enabled: true, + }), + ) - useSuspenseInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - initialPageParam: 1, - getNextPageParam: () => 1, - // @ts-expect-error TS2345 - throwOnError: true, - }) + assertType( + useSuspenseInfiniteQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + initialPageParam: 1, + getNextPageParam: () => 1, + // @ts-expect-error TS2345 + throwOnError: true, + }), + ) }) it('should not return isPlaceholderData', () => { @@ -78,7 +88,6 @@ describe('useSuspenseInfiniteQuery', () => { getNextPageParam: () => 1, }) - // @ts-expect-error TS2339 - query.isPlaceholderData + expectTypeOf(query).not.toHaveProperty('isPlaceholderData') }) }) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx index 8f3a48c150..7298a9e594 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { skipToken, useSuspenseQueries } from '..' import { queryOptions } from '../queryOptions' import type { OmitKeyof } from '..' @@ -90,25 +90,29 @@ describe('UseSuspenseQueries config object overload', () => { }) it('should not allow skipToken in queryFn', () => { - useSuspenseQueries({ - queries: [ - { - queryKey: ['key'], - // @ts-expect-error - queryFn: skipToken, - }, - ], - }) - - useSuspenseQueries({ - queries: [ - { - queryKey: ['key'], - // @ts-expect-error - queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), - }, - ], - }) + assertType( + useSuspenseQueries({ + queries: [ + { + queryKey: ['key'], + // @ts-expect-error + queryFn: skipToken, + }, + ], + }), + ) + + assertType( + useSuspenseQueries({ + queries: [ + { + queryKey: ['key'], + // @ts-expect-error + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }, + ], + }), + ) }) it('TData should have correct type when conditional skipToken is passed', () => { @@ -206,39 +210,47 @@ describe('UseSuspenseQueries config object overload', () => { }) it('queryOptions with skipToken in queryFn should not work on useSuspenseQueries', () => { - const query1 = queryOptions({ - queryKey: ['key1'], - queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), - }) - - const query2 = queryOptions({ - queryKey: ['key1'], - queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), - initialData: 5, - }) - - // @ts-expect-error - useSuspenseQueries({ queries: [query1] }) - // @ts-expect-error - useSuspenseQueries({ queries: [query2] }) + assertType( + useSuspenseQueries({ + queries: [ + // @ts-expect-error + queryOptions({ + queryKey: ['key1'], + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }), + ], + }), + ) + + assertType( + useSuspenseQueries({ + queries: [ + // @ts-expect-error + queryOptions({ + queryKey: ['key1'], + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + initialData: 5, + }), + ], + }), + ) }) it('should not show type error when using spreaded queryOptions', () => { - function myQueryOptions() { - return queryOptions({ - queryKey: ['key1'], - queryFn: () => 'Query Data', - }) - } - useSuspenseQueries({ - queries: [ - { - ...myQueryOptions(), - select(data: string) { - return data + assertType( + useSuspenseQueries({ + queries: [ + { + ...queryOptions({ + queryKey: ['key1'], + queryFn: () => 'Query Data', + }), + select(data: string) { + return data + }, }, - }, - ], - }) + ], + }), + ) }) }) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 98084c4888..af541cebb6 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -322,21 +322,27 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => rendered.getByText('loading')) + await waitFor(() => + expect(rendered.getByText('loading')).toBeInTheDocument(), + ) await waitFor(() => rendered.getByText('Data 0')) // go offline document.dispatchEvent(new CustomEvent('offline')) fireEvent.click(rendered.getByText('fetch')) - await waitFor(() => rendered.getByText('Data 0')) + await waitFor(() => + expect(rendered.getByText('Data 0')).toBeInTheDocument(), + ) // go back online document.dispatchEvent(new CustomEvent('online')) fireEvent.click(rendered.getByText('fetch')) // query should resume - await waitFor(() => rendered.getByText('Data 1')) + await waitFor(() => + expect(rendered.getByText('Data 1')).toBeInTheDocument(), + ) }) it('should throw error when queryKey changes and new query fails', async () => { @@ -426,15 +432,19 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => rendered.getByText('Loading...')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) - await waitFor(() => rendered.getByText('data0')) + await waitFor(() => expect(rendered.getByText('data0')).toBeInTheDocument()) fireEvent.click(rendered.getByText('inc')) - await waitFor(() => rendered.getByText('Pending...')) + await waitFor(() => + expect(rendered.getByText('Pending...')).toBeInTheDocument(), + ) - await waitFor(() => rendered.getByText('data1')) + await waitFor(() => expect(rendered.getByText('data1')).toBeInTheDocument()) }) it('should not request old data inside transitions (issue #6486)', async () => { @@ -533,15 +543,19 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => rendered.getByText('Loading...')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) - await waitFor(() => rendered.getByText('data0')) + await waitFor(() => expect(rendered.getByText('data0')).toBeInTheDocument()) fireEvent.click(rendered.getByText('inc')) - await waitFor(() => rendered.getByText('Pending...')) + await waitFor(() => + expect(rendered.getByText('Pending...')).toBeInTheDocument(), + ) - await waitFor(() => rendered.getByText('data1')) + await waitFor(() => expect(rendered.getByText('data1')).toBeInTheDocument()) }) it('should show error boundary even with gcTime:0 (#7853)', async () => { diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx index 09576d63b8..e78b8a907d 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { skipToken } from '@tanstack/query-core' import { useSuspenseQuery } from '../useSuspenseQuery' @@ -22,51 +22,57 @@ describe('useSuspenseQuery', () => { }) it('should not allow skipToken in queryFn', () => { - useSuspenseQuery({ - queryKey: ['key'], - // @ts-expect-error - queryFn: skipToken, - }) - - useSuspenseQuery({ - queryKey: ['key'], - // @ts-expect-error - queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), - }) + assertType( + useSuspenseQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: skipToken, + }), + ) + assertType( + useSuspenseQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }), + ) }) it('should not allow placeholderData, enabled or throwOnError props', () => { - useSuspenseQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error TS2345 - placeholderData: 5, - enabled: true, - }) - - useSuspenseQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error TS2345 - enabled: true, - }) - - useSuspenseQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error TS2345 - throwOnError: true, - }) + assertType( + useSuspenseQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2345 + placeholderData: 5, + enabled: true, + }), + ) + assertType( + useSuspenseQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2345 + enabled: true, + }), + ) + assertType( + useSuspenseQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error TS2345 + throwOnError: true, + }), + ) }) it('should not return isPlaceholderData', () => { - const query = useSuspenseQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - }) - - // @ts-expect-error TS2339 - query.isPlaceholderData + expectTypeOf( + useSuspenseQuery({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + }), + ).not.toHaveProperty('isPlaceholderData') }) it('should type-narrow the error field', () => { diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index d86e710cd0..06b8e61d07 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -315,15 +315,23 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -404,11 +412,19 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText(`data: ${key1}`)) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('switch')) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText(`data: ${key2}`)) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument(), + ) }) it('should retry fetch if the reset error boundary has been reset with global hook', async () => { @@ -462,15 +478,23 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -510,8 +534,12 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -553,8 +581,12 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -794,16 +826,22 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) // render suspense fallback (Loading...) - await waitFor(() => rendered.getByText('Loading...')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) // resolve promise -> render Page (rendered) - await waitFor(() => rendered.getByText('rendered data success')) + await waitFor(() => + expect(rendered.getByText('rendered data success')).toBeInTheDocument(), + ) // change promise result to error succeed = false // refetch fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) // we are now in error state but still have data to show - await waitFor(() => rendered.getByText('rendered data error')) + await waitFor(() => + expect(rendered.getByText('rendered data error')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -849,12 +887,20 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => rendered.getByText('loading')) - await waitFor(() => rendered.getByText('data: 1')) + await waitFor(() => + expect(rendered.getByText('loading')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('data: 1')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => rendered.getByText('loading')) - await waitFor(() => rendered.getByText('data: 2')) + await waitFor(() => + expect(rendered.getByText('loading')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('data: 2')).toBeInTheDocument(), + ) }) it('should log an error when skipToken is passed as queryFn', () => { From 6f8d57b7bff60fcd9754345165795f41320ca871 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Wed, 7 May 2025 03:21:51 +0900 Subject: [PATCH 060/432] ci(*): update vitest/expect-expect rule as error (#9111) --- .../solid-query-devtools/eslint.config.js | 12 +- .../eslint.config.js | 12 +- packages/solid-query/eslint.config.js | 12 +- .../src/__tests__/queryOptions.test-d.tsx | 16 +- .../src/__tests__/suspense.test.tsx | 146 +++++++--- .../src/__tests__/transition.test.tsx | 10 +- .../src/__tests__/useIsFetching.test.tsx | 24 +- .../src/__tests__/useIsMutating.test.tsx | 5 +- .../src/__tests__/useMutation.test.tsx | 61 ++++- .../src/__tests__/useQueries.test.tsx | 1 + .../src/__tests__/useQuery.test.tsx | 255 +++++++++++++----- .../svelte-query-devtools/eslint.config.js | 8 - .../eslint.config.js | 8 - packages/svelte-query/eslint.config.js | 8 - packages/vue-query-devtools/eslint.config.js | 13 +- packages/vue-query/eslint.config.js | 13 +- .../__tests__/infiniteQueryOptions.test-d.ts | 20 +- .../src/__tests__/queryClient.test-d.ts | 40 +-- .../src/__tests__/queryOptions.test-d.ts | 16 +- 19 files changed, 423 insertions(+), 257 deletions(-) diff --git a/packages/solid-query-devtools/eslint.config.js b/packages/solid-query-devtools/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/solid-query-devtools/eslint.config.js +++ b/packages/solid-query-devtools/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] diff --git a/packages/solid-query-persist-client/eslint.config.js b/packages/solid-query-persist-client/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/solid-query-persist-client/eslint.config.js +++ b/packages/solid-query-persist-client/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] diff --git a/packages/solid-query/eslint.config.js b/packages/solid-query/eslint.config.js index 7ccaf50177..df75435c7e 100644 --- a/packages/solid-query/eslint.config.js +++ b/packages/solid-query/eslint.config.js @@ -1,15 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig] diff --git a/packages/solid-query/src/__tests__/queryOptions.test-d.tsx b/packages/solid-query/src/__tests__/queryOptions.test-d.tsx index 68cfecf7af..6fb6a7c5f2 100644 --- a/packages/solid-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/queryOptions.test-d.tsx @@ -1,16 +1,18 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' import { useQuery } from '../useQuery' import { queryOptions } from '../queryOptions' describe('queryOptions', () => { it('should not allow excess properties', () => { - queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + assertType( + queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) }) it('should infer types for callbacks', () => { queryOptions({ diff --git a/packages/solid-query/src/__tests__/suspense.test.tsx b/packages/solid-query/src/__tests__/suspense.test.tsx index 5a56e07227..8a35844618 100644 --- a/packages/solid-query/src/__tests__/suspense.test.tsx +++ b/packages/solid-query/src/__tests__/suspense.test.tsx @@ -263,15 +263,21 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) }) it('should retry fetch if the reset error boundary has been reset', async () => { @@ -325,15 +331,23 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) }) it('should refetch when re-mounting', async () => { @@ -383,16 +397,28 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('data: 1')) - await waitFor(() => rendered.getByText('fetching: false')) - await waitFor(() => rendered.getByText('hide')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('data: 1')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('fetching: false')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('hide')).toBeInTheDocument()) fireEvent.click(rendered.getByText('hide')) - await waitFor(() => rendered.getByText('show')) + await waitFor(() => expect(rendered.getByText('show')).toBeInTheDocument()) fireEvent.click(rendered.getByText('show')) - await waitFor(() => rendered.getByText('fetching: true')) - await waitFor(() => rendered.getByText('data: 2')) - await waitFor(() => rendered.getByText('fetching: false')) + await waitFor(() => + expect(rendered.getByText('fetching: true')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('data: 2')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('fetching: false')).toBeInTheDocument(), + ) }) it('should suspend when switching to a new query', async () => { @@ -436,11 +462,19 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText(`data: ${key1}`)) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('switch')) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText(`data: ${key2}`)) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument(), + ) }) it('should throw errors to the error boundary by default', async () => { @@ -491,8 +525,12 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -541,8 +579,12 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) }) it('should throw errors to the error boundary when a throwOnError function returns true', async () => { @@ -593,8 +635,12 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -645,8 +691,12 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) }) it('should not call the queryFn when not enabled', async () => { @@ -751,16 +801,22 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - await waitFor(() => rendered.getByText('Loading...')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) // resolve promise -> render Page (rendered) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) // change query key succeed = false // reset query -> and throw error fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -815,16 +871,22 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - await waitFor(() => rendered.getByText('Loading...')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) // resolve promise -> render Page (rendered) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) // change promise result to error succeed = false // change query key fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -881,16 +943,22 @@ describe("useQuery's in Suspense mode", () => { )) // render empty data with 'rendered' when enabled is false - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) // change enabled to true fireEvent.click(rendered.getByLabelText('fail')) // render pending fallback - await waitFor(() => rendered.getByText('Loading...')) + await waitFor(() => + expect(rendered.getByText('Loading...')).toBeInTheDocument(), + ) // render error boundary fallback (error boundary) - await waitFor(() => rendered.getByText('error boundary')) + await waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) diff --git a/packages/solid-query/src/__tests__/transition.test.tsx b/packages/solid-query/src/__tests__/transition.test.tsx index 3a272435af..72f1491d2a 100644 --- a/packages/solid-query/src/__tests__/transition.test.tsx +++ b/packages/solid-query/src/__tests__/transition.test.tsx @@ -1,4 +1,4 @@ -import { describe, it } from 'vitest' +import { describe, expect, it } from 'vitest' import { fireEvent, render, waitFor } from '@solidjs/testing-library' import { Show, Suspense, createSignal, startTransition } from 'solid-js' import { QueryCache, QueryClientProvider, useQuery } from '..' @@ -50,11 +50,13 @@ describe("useQuery's in Suspense mode with transitions", () => { )) - await waitFor(() => rendered.getByText('Show')) + await waitFor(() => expect(rendered.getByText('Show')).toBeInTheDocument()) fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => rendered.getByText('Message')) + await waitFor(() => + expect(rendered.getByText('Message')).toBeInTheDocument(), + ) // verify that the button also updated. See https://github.com/solidjs/solid/issues/1249 - await waitFor(() => rendered.getByText('Hide')) + await waitFor(() => expect(rendered.getByText('Hide')).toBeInTheDocument()) }) }) diff --git a/packages/solid-query/src/__tests__/useIsFetching.test.tsx b/packages/solid-query/src/__tests__/useIsFetching.test.tsx index 02fab63141..c72a07784b 100644 --- a/packages/solid-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/solid-query/src/__tests__/useIsFetching.test.tsx @@ -46,10 +46,16 @@ describe('useIsFetching', () => { )) - await rendered.findByText('isFetching: 0') + await waitFor(() => + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) - await rendered.findByText('isFetching: 1') - await rendered.findByText('isFetching: 0') + await waitFor(() => + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), + ) }) it('should not update state while rendering', async () => { @@ -215,8 +221,12 @@ describe('useIsFetching', () => { )) - await rendered.findByText('isFetching: 1') - await rendered.findByText('isFetching: 0') + await waitFor(() => + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), + ) }) it('should use provided custom queryClient', async () => { @@ -246,6 +256,8 @@ describe('useIsFetching', () => { const rendered = render(() => ) - await rendered.findByText('isFetching: 1') + await waitFor(() => + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), + ) }) }) diff --git a/packages/solid-query/src/__tests__/useIsMutating.test.tsx b/packages/solid-query/src/__tests__/useIsMutating.test.tsx index efd6eaf83a..81c29ef591 100644 --- a/packages/solid-query/src/__tests__/useIsMutating.test.tsx +++ b/packages/solid-query/src/__tests__/useIsMutating.test.tsx @@ -182,9 +182,12 @@ describe('useIsMutating', () => { const rendered = render(() => ) - await waitFor(() => rendered.findByText('mutating: 1')) + await waitFor(() => + expect(rendered.getByText('mutating: 1')).toBeInTheDocument(), + ) }) + // eslint-disable-next-line vitest/expect-expect it('should not change state if unmounted', async () => { // We have to mock the MutationCache to not unsubscribe // the listener when the component is unmounted diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index d1d4a8a579..3d0894b004 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -217,22 +217,38 @@ describe('useMutation', () => { )) - rendered.getByText('Data') + expect(rendered.getByText('Data')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - rendered.getByText('Data') - await vi.waitFor(() => rendered.getByText('Status error')) - await vi.waitFor(() => rendered.getByText('Failed 1 times')) + expect(rendered.getByText('Data')).toBeInTheDocument() await vi.waitFor(() => - rendered.getByText('Failed because Error test Jonas'), + expect(rendered.getByText('Status error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failed 1 times')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('Failed because Error test Jonas'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => rendered.getByText('Status pending')) - await vi.waitFor(() => rendered.getByText('Status success')) - await vi.waitFor(() => rendered.getByText('Data 2')) - await vi.waitFor(() => rendered.getByText('Failed 0 times')) - await vi.waitFor(() => rendered.getByText('Failed because null')) + await vi.waitFor(() => + expect(rendered.getByText('Status pending')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Status success')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Data 2')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failed 0 times')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failed because null')).toBeInTheDocument(), + ) }) it('should be able to call `onError` and `onSettled` after each failed mutate', async () => { @@ -752,6 +768,7 @@ describe('useMutation', () => { }) }) + // eslint-disable-next-line vitest/expect-expect it('should not change state if unmounted', () => { function Mutates() { const mutation = useMutation(() => ({ mutationFn: () => sleep(10) })) @@ -1148,12 +1165,20 @@ describe('useMutation', () => { )) - await rendered.findByText('error: null, status: idle') + await vi.waitFor(() => + expect( + rendered.getByText('error: null, status: idle'), + ).toBeInTheDocument(), + ) rendered.getByRole('button', { name: /mutate/i }).click() await vi.advanceTimersByTimeAsync(10) - await rendered.findByText('error: mutateFnError, status: error') + await vi.waitFor(() => + expect( + rendered.getByText('error: mutateFnError, status: error'), + ).toBeInTheDocument(), + ) }) it('should go to error state if onSettled callback errors', async () => { @@ -1224,10 +1249,18 @@ describe('useMutation', () => { const rendered = render(() => ) - await rendered.findByText('data: null, status: idle') + await vi.waitFor(() => + expect( + rendered.getByText('data: null, status: idle'), + ).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await rendered.findByText('data: custom client, status: success') + await vi.waitFor(() => + expect( + rendered.getByText('data: custom client, status: success'), + ).toBeInTheDocument(), + ) }) }) diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index fcdae15d84..6dca9bac2f 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -648,6 +648,7 @@ describe('useQueries', () => { } }) + // eslint-disable-next-line vitest/expect-expect it('should not change state if unmounted', async () => { const key1 = queryKey() diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 7a1547bf45..0701d4ec8f 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -219,9 +219,11 @@ describe('useQuery', () => { )) - rendered.getByText('default') + expect(rendered.getByText('default')).toBeInTheDocument() - await waitFor(() => rendered.getByText('test')) + await vi.waitFor(() => + expect(rendered.getByText('test')).toBeInTheDocument(), + ) }) it('should return the correct states for a successful query', async () => { @@ -1889,10 +1891,10 @@ describe('useQuery', () => { )) - rendered.getByText('First Data: init') - rendered.getByText('Second Data: init') - rendered.getByText('First Status: success') - rendered.getByText('Second Status: success') + expect(rendered.getByText('First Data: init')).toBeInTheDocument() + expect(rendered.getByText('Second Data: init')).toBeInTheDocument() + expect(rendered.getByText('First Status: success')).toBeInTheDocument() + expect(rendered.getByText('Second Status: success')).toBeInTheDocument() }) it('should update query options', () => { @@ -1973,7 +1975,9 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('new')) + await vi.waitFor(() => + expect(rendered.getByText('new')).toBeInTheDocument(), + ) }) // See https://github.com/tannerlinsley/react-query/issues/170 @@ -2012,9 +2016,19 @@ describe('useQuery', () => { // use "act" to wait for state update and prevent console warning - rendered.getByText('First Status: pending, idle') - await waitFor(() => rendered.getByText('Second Status: pending, fetching')) - await waitFor(() => rendered.getByText('Second Status: success, idle')) + expect( + rendered.getByText('First Status: pending, idle'), + ).toBeInTheDocument() + await vi.waitFor(() => + expect( + rendered.getByText('Second Status: pending, fetching'), + ).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('Second Status: success, idle'), + ).toBeInTheDocument(), + ) }) // See https://github.com/tannerlinsley/react-query/issues/144 @@ -2039,7 +2053,7 @@ describe('useQuery', () => { )) - rendered.getByText('status: pending') + expect(rendered.getByText('status: pending')).toBeInTheDocument() }) it('should not refetch query on focus when `enabled` is set to `false`', async () => { @@ -2388,8 +2402,12 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('error')) - await waitFor(() => rendered.getByText('Error test')) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Error test')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -2426,7 +2444,9 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -2463,7 +2483,9 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -2502,7 +2524,11 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('Fallback error: Error test')) + await vi.waitFor(() => + expect( + rendered.getByText('Fallback error: Error test'), + ).toBeInTheDocument(), + ) consoleMock.mockRestore() }) @@ -2541,10 +2567,16 @@ describe('useQuery', () => { )) - await waitFor(() => - rendered.getByText('Outside error boundary: Error test'), + await vi.waitFor(() => + expect( + rendered.getByText('Outside error boundary: Error test'), + ).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('Fallback error: Error test'), + ).toBeInTheDocument(), ) - await waitFor(() => rendered.getByText('Fallback error: Error test')) consoleMock.mockRestore() }) @@ -2606,8 +2638,12 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('error')) - await waitFor(() => rendered.getByText('Local Error')) + await vi.waitFor(() => + expect(rendered.getByText('error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Local Error')).toBeInTheDocument(), + ) }) it('should throw error instead of setting status when error should be thrown', async () => { @@ -2645,8 +2681,12 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('Remote Error')) + await vi.waitFor(() => + expect(rendered.getByText('error boundary')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Remote Error')).toBeInTheDocument(), + ) }) it('should continue retries when observers unmount and remount while waiting for a retry (#3031)', async () => { @@ -3186,29 +3226,61 @@ describe('useQuery', () => { )) // The query should display the first error result - await waitFor(() => rendered.getByText('failureCount 1')) - await waitFor(() => rendered.getByText('failureReason fetching error 1')) - await waitFor(() => rendered.getByText('status pending')) - await waitFor(() => rendered.getByText('error null')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 1'), + ).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('status pending')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('error null')).toBeInTheDocument(), + ) // Check if the query really paused await sleep(10) - await waitFor(() => rendered.getByText('failureCount 1')) - await waitFor(() => rendered.getByText('failureReason fetching error 1')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 1'), + ).toBeInTheDocument(), + ) visibilityMock.mockRestore() window.dispatchEvent(new Event('visibilitychange')) // Wait for the final result - await waitFor(() => rendered.getByText('failureCount 4')) - await waitFor(() => rendered.getByText('failureReason fetching error 4')) - await waitFor(() => rendered.getByText('status error')) - await waitFor(() => rendered.getByText('error fetching error 4')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 4')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 4'), + ).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('status error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('error fetching error 4')).toBeInTheDocument(), + ) // Check if the query really stopped await sleep(10) - await waitFor(() => rendered.getByText('failureCount 4')) - await waitFor(() => rendered.getByText('failureReason fetching error 4')) + await vi.waitFor(() => + expect(rendered.getByText('failureCount 4')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('failureReason fetching error 4'), + ).toBeInTheDocument(), + ) }) it('should fetch on mount when a query was already created with setQueryData', async () => { @@ -3428,10 +3500,18 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('failureCount 2')) - await waitFor(() => rendered.getByText('failureReason error')) - await waitFor(() => rendered.getByText('failureCount 0')) - await waitFor(() => rendered.getByText('failureReason null')) + await waitFor(() => + expect(rendered.getByText('failureCount 2')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('failureReason error')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('failureCount 0')).toBeInTheDocument(), + ) + await waitFor(() => + expect(rendered.getByText('failureReason null')).toBeInTheDocument(), + ) }) // See https://github.com/tannerlinsley/react-query/issues/199 @@ -3515,16 +3595,17 @@ describe('useQuery', () => { )) - rendered.getByText('FetchStatus: idle') - rendered.getByText('Data: no data') + expect(rendered.getByText('FetchStatus: idle')).toBeInTheDocument() + expect(rendered.getByText('Data: no data')).toBeInTheDocument() fireEvent.click(rendered.getByText('fetch')) - await waitFor(() => rendered.getByText('FetchStatus: fetching')) - await waitFor(() => [ - rendered.getByText('FetchStatus: idle'), - rendered.getByText('Data: data'), - ]) + await vi.waitFor(() => + expect(rendered.getByText('FetchStatus: fetching')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Data: data')).toBeInTheDocument(), + ) }) // See https://github.com/TanStack/query/issues/7711 @@ -3805,7 +3886,9 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('status: pending, idle')) + await vi.waitFor(() => + expect(rendered.getByText('status: pending, idle')).toBeInTheDocument(), + ) }) it('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { @@ -3942,9 +4025,15 @@ describe('useQuery', () => { )) // mount - await waitFor(() => rendered.getByText('count: 0')) - await waitFor(() => rendered.getByText('count: 1')) - await waitFor(() => rendered.getByText('count: 2')) + await vi.waitFor(() => + expect(rendered.getByText('count: 0')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('count: 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('count: 2')).toBeInTheDocument(), + ) }) it('should refetch in an interval depending on function result', async () => { @@ -4079,7 +4168,7 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('')) + await vi.waitFor(() => expect(rendered.getByText('')).toBeInTheDocument()) }) it('should accept an object as query key', async () => { @@ -4097,7 +4186,9 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('[{"a":"a"}]')) + await vi.waitFor(() => + expect(rendered.getByText('[{"a":"a"}]')).toBeInTheDocument(), + ) }) it('should refetch if any query instance becomes enabled', async () => { @@ -4391,19 +4482,27 @@ describe('useQuery', () => { )) - await waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2 + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 101')).toBeInTheDocument(), + ) // 99 + 2 - await waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2 + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 2')).toBeInTheDocument(), + ) // 0 + 2 fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3 + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 3')).toBeInTheDocument(), + ) // 0 + 3 fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i })) - await waitFor(() => rendered.getByText('forceValue: 2')) + await vi.waitFor(() => rendered.getByText('forceValue: 2')) // data should still be 3 after an independent re-render - await waitFor(() => rendered.getByText('Data: selected 3')) + await vi.waitFor(() => + expect(rendered.getByText('Data: selected 3')).toBeInTheDocument(), + ) }) it('select should structurally share data', async () => { @@ -4970,18 +5069,20 @@ describe('useQuery', () => { )) // initial state check - rendered.getByText('status: pending') + expect(rendered.getByText('status: pending')).toBeInTheDocument() // render error state component - await waitFor(() => rendered.getByText('error')) + await waitFor(() => expect(rendered.getByText('error')).toBeInTheDocument()) // change to unmount query fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('rendered')) + await waitFor(() => + expect(rendered.getByText('rendered')).toBeInTheDocument(), + ) // change to mount new query fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('error')) + await waitFor(() => expect(rendered.getByText('error')).toBeInTheDocument()) }) it('should refetch when query key changed when switching between erroneous queries', async () => { @@ -5030,20 +5131,24 @@ describe('useQuery', () => { )) // initial state check - rendered.getByText('status: fetching') + expect(rendered.getByText('status: fetching')).toBeInTheDocument() // render error state component - await waitFor(() => rendered.getByText('error')) + await waitFor(() => expect(rendered.getByText('error')).toBeInTheDocument()) // change to mount second query fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('status: fetching')) - await waitFor(() => rendered.getByText('error')) + await waitFor(() => + expect(rendered.getByText('status: fetching')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('error')).toBeInTheDocument()) // change to mount first query again fireEvent.click(rendered.getByLabelText('change')) - await waitFor(() => rendered.getByText('status: fetching')) - await waitFor(() => rendered.getByText('error')) + await waitFor(() => + expect(rendered.getByText('status: fetching')).toBeInTheDocument(), + ) + await waitFor(() => expect(rendered.getByText('error')).toBeInTheDocument()) }) it('should have no error in pending state when refetching after error occurred', async () => { @@ -6016,11 +6121,17 @@ describe('useQuery', () => { )) const fetchBtn = rendered.getByRole('button', { name: 'refetch' }) - await waitFor(() => rendered.getByText('data: 1')) + await waitFor(() => + expect(rendered.getByText('data: 1')).toBeInTheDocument(), + ) fireEvent.click(fetchBtn) - await waitFor(() => rendered.getByText('data: 2')) + await waitFor(() => + expect(rendered.getByText('data: 2')).toBeInTheDocument(), + ) fireEvent.click(fetchBtn) - await waitFor(() => rendered.getByText('data: 3')) + await waitFor(() => + expect(rendered.getByText('data: 3')).toBeInTheDocument(), + ) }) it('should use provided custom queryClient', async () => { @@ -6043,6 +6154,8 @@ describe('useQuery', () => { const rendered = render(() => ) - await waitFor(() => rendered.getByText('Status: custom client')) + await waitFor(() => + expect(rendered.getByText('Status: custom client')).toBeInTheDocument(), + ) }) }) diff --git a/packages/svelte-query-devtools/eslint.config.js b/packages/svelte-query-devtools/eslint.config.js index b40d00982a..f31c5e878b 100644 --- a/packages/svelte-query-devtools/eslint.config.js +++ b/packages/svelte-query-devtools/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' @@ -14,11 +13,4 @@ export default [ 'svelte/valid-compile': 'off', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/svelte-query-persist-client/eslint.config.js b/packages/svelte-query-persist-client/eslint.config.js index b40d00982a..f31c5e878b 100644 --- a/packages/svelte-query-persist-client/eslint.config.js +++ b/packages/svelte-query-persist-client/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' @@ -14,11 +13,4 @@ export default [ 'svelte/valid-compile': 'off', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/svelte-query/eslint.config.js b/packages/svelte-query/eslint.config.js index b40d00982a..f31c5e878b 100644 --- a/packages/svelte-query/eslint.config.js +++ b/packages/svelte-query/eslint.config.js @@ -1,6 +1,5 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' @@ -14,11 +13,4 @@ export default [ 'svelte/valid-compile': 'off', }, }, - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, ] diff --git a/packages/vue-query-devtools/eslint.config.js b/packages/vue-query-devtools/eslint.config.js index 0810a2d674..6cd1d47ba7 100644 --- a/packages/vue-query-devtools/eslint.config.js +++ b/packages/vue-query-devtools/eslint.config.js @@ -1,18 +1,7 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' // @ts-expect-error import pluginVue from 'eslint-plugin-vue' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - ...pluginVue.configs['flat/base'], - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig, ...pluginVue.configs['flat/base']] diff --git a/packages/vue-query/eslint.config.js b/packages/vue-query/eslint.config.js index 0810a2d674..6cd1d47ba7 100644 --- a/packages/vue-query/eslint.config.js +++ b/packages/vue-query/eslint.config.js @@ -1,18 +1,7 @@ // @ts-check -import vitest from '@vitest/eslint-plugin' // @ts-expect-error import pluginVue from 'eslint-plugin-vue' import rootConfig from './root.eslint.config.js' -export default [ - ...rootConfig, - ...pluginVue.configs['flat/base'], - { - plugins: { vitest }, - rules: { - ...vitest.configs.recommended.rules, - 'vitest/expect-expect': 'warn', - }, - }, -] +export default [...rootConfig, ...pluginVue.configs['flat/base']] diff --git a/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts b/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts index b0cb254593..6413126ffd 100644 --- a/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/infiniteQueryOptions.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient, dataTagSymbol } from '@tanstack/query-core' import { reactive } from 'vue-demi' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -7,14 +7,16 @@ import type { InfiniteData } from '@tanstack/query-core' describe('infiniteQueryOptions', () => { it('should not allow excess properties', () => { - infiniteQueryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve('data'), - getNextPageParam: () => 1, - initialPageParam: 1, - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + assertType( + infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('data'), + getNextPageParam: () => 1, + initialPageParam: 1, + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) }) it('should infer types for callbacks', () => { infiniteQueryOptions({ diff --git a/packages/vue-query/src/__tests__/queryClient.test-d.ts b/packages/vue-query/src/__tests__/queryClient.test-d.ts index ae50680d34..ed4855a134 100644 --- a/packages/vue-query/src/__tests__/queryClient.test-d.ts +++ b/packages/vue-query/src/__tests__/queryClient.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '../queryClient' import type { DataTag, InfiniteData } from '@tanstack/query-core' @@ -28,10 +28,10 @@ describe('getQueryData', () => { }) it('should only allow Arrays to be passed', () => { - const queryKey = 'key' - const queryClient = new QueryClient() - // @ts-expect-error TS2345: Argument of type 'string' is not assignable to parameter of type 'QueryKey' - return queryClient.getQueryData(queryKey) + assertType>([ + // @ts-expect-error TS2345: Argument of type 'string' is not assignable to parameter of type 'QueryKey' + { queryKey: 'key' }, + ]) }) }) @@ -125,21 +125,25 @@ describe('fetchInfiniteQuery', () => { }) it('should not allow passing getNextPageParam without pages', () => { - new QueryClient().fetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve('string'), - initialPageParam: 1, - getNextPageParam: () => 1, - }) + assertType>([ + { + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + initialPageParam: 1, + getNextPageParam: () => 1, + }, + ]) }) it('should not allow passing pages without getNextPageParam', () => { - // @ts-expect-error Property 'getNextPageParam' is missing - new QueryClient().fetchInfiniteQuery({ - queryKey: ['key'], - queryFn: () => Promise.resolve('string'), - initialPageParam: 1, - pages: 5, - }) + assertType>([ + // @ts-expect-error Property 'getNextPageParam' is missing + { + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + initialPageParam: 1, + pages: 5, + }, + ]) }) }) diff --git a/packages/vue-query/src/__tests__/queryOptions.test-d.ts b/packages/vue-query/src/__tests__/queryOptions.test-d.ts index c40d606e86..65d49d945f 100644 --- a/packages/vue-query/src/__tests__/queryOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/queryOptions.test-d.ts @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { reactive, ref } from 'vue-demi' import { dataTagSymbol } from '@tanstack/query-core' import { QueryClient } from '../queryClient' @@ -7,12 +7,14 @@ import { useQuery } from '../useQuery' describe('queryOptions', () => { it('should not allow excess properties', () => { - queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // @ts-expect-error this is a good error, because stallTime does not exist! - stallTime: 1000, - }) + assertType( + queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) }) it('should infer types for callbacks', () => { queryOptions({ From 732089e719c4ef9458a7553f89d411e37ca2f222 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Wed, 7 May 2025 04:51:01 +0900 Subject: [PATCH 061/432] test(query-core): add test case for infiniteQueryBehavior (#9101) Co-authored-by: Jonghyeon Ko --- .../__tests__/infiniteQueryBehavior.test.tsx | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index 6bd3eb84f9..db77d25144 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -441,4 +441,63 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) + + test('InfiniteQueryBehavior should not fetch next page when getNextPageParam returns null', async () => { + const key = queryKey() + + const observer = new InfiniteQueryObserver(queryClient, { + queryKey: key, + queryFn: ({ pageParam }) => sleep(0).then(() => pageParam), + getNextPageParam: (lastPage) => (lastPage === 1 ? null : lastPage + 1), + initialPageParam: 1, + }) + + let observerResult: + | InfiniteQueryObserverResult, Error> + | undefined + + const unsubscribe = observer.subscribe((result) => { + observerResult = result + }) + + await vi.waitFor(() => + expect(observerResult).toMatchObject({ + isFetching: false, + data: { pages: [1], pageParams: [1] }, + }), + ) + + await observer.fetchNextPage() + + expect(observerResult).toMatchObject({ + isFetching: false, + data: { pages: [1], pageParams: [1] }, + }) + + unsubscribe() + }) + + test('InfiniteQueryBehavior should use persister when provided', async () => { + const key = queryKey() + + const persisterSpy = vi.fn().mockImplementation(async (fn) => { + return await fn() + }) + + const observer = new InfiniteQueryObserver(queryClient, { + queryKey: key, + queryFn: ({ pageParam }) => sleep(0).then(() => pageParam), + getNextPageParam: (lastPage) => lastPage + 1, + initialPageParam: 1, + persister: persisterSpy, + }) + + const unsubscribe = observer.subscribe(() => {}) + + await vi.waitFor(() => { + expect(persisterSpy).toHaveBeenCalledTimes(1) + }) + + unsubscribe() + }) }) From 373546be9af2051eb10f3b16e1fffbe2aa0aae7a Mon Sep 17 00:00:00 2001 From: Seyeong Jeon <86130706+skiende74@users.noreply.github.com> Date: Wed, 7 May 2025 16:25:08 +0900 Subject: [PATCH 062/432] fix(react-query): fix to show type error on wrong type annotation in `useQuery` (#8683) * fix(react-query): fix no error on wrong type annotation * test(react-query): remove an unused var * feat: use NoInfer from query-core * ci: apply automated fixes * fix: fix eslint error (disable) --------- Co-authored-by: Jonghyeon Ko Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/useQuery.test-d.tsx | 16 ++++++++++++++++ packages/react-query/src/useQuery.ts | 13 +++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index 5aa37fc376..b59e7f295d 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -277,6 +277,22 @@ describe('useQuery', () => { } }) + // eslint-disable-next-line vitest/expect-expect + it('TData should depend from only arguments, not the result', () => { + // @ts-expect-error + const result: UseQueryResult<{ wow: string }> = useQuery({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + }) + + void result + }) + it('data should not have undefined when initialData is provided', () => { const { data } = useQuery({ queryKey: ['query-key'], diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts index 962ef4da66..52d479551d 100644 --- a/packages/react-query/src/useQuery.ts +++ b/packages/react-query/src/useQuery.ts @@ -1,7 +1,12 @@ 'use client' import { QueryObserver } from '@tanstack/query-core' import { useBaseQuery } from './useBaseQuery' -import type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core' +import type { + DefaultError, + NoInfer, + QueryClient, + QueryKey, +} from '@tanstack/query-core' import type { DefinedUseQueryResult, UseQueryOptions, @@ -20,7 +25,7 @@ export function useQuery< >( options: DefinedInitialDataOptions, queryClient?: QueryClient, -): DefinedUseQueryResult +): DefinedUseQueryResult, TError> export function useQuery< TQueryFnData = unknown, @@ -30,7 +35,7 @@ export function useQuery< >( options: UndefinedInitialDataOptions, queryClient?: QueryClient, -): UseQueryResult +): UseQueryResult, TError> export function useQuery< TQueryFnData = unknown, @@ -40,7 +45,7 @@ export function useQuery< >( options: UseQueryOptions, queryClient?: QueryClient, -): UseQueryResult +): UseQueryResult, TError> export function useQuery(options: UseQueryOptions, queryClient?: QueryClient) { return useBaseQuery(options, QueryObserver, queryClient) From 2cd0cebb1e6fe7bf74798d43cc205c69483a06bc Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 7 May 2025 07:29:51 +0000 Subject: [PATCH 063/432] release: v5.75.5 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index ad488cc6bb..e34f854955 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 386143aca6..065edb10a8 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.75.4", + "@tanstack/query-sync-storage-persister": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "^0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index fcc111ad60..ef99cb35df 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 4abea90c2c..17d11f55d4 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-devtools-experimental": "^5.75.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-devtools-experimental": "^5.75.5", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 6d654692db..3ded478d47 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index b0e6e529a8..3bffabe1ea 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 499cd7b7d1..448e57b0c3 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index f0c25f61aa..e6ba21e031 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 2bb7a6151b..2b5d7960b3 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@angular/router": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index a5ae84efac..147fda7d50 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index dcef975e76..2aa3615b0e 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", - "@tanstack/angular-query-experimental": "^5.75.4", + "@tanstack/angular-query-experimental": "^5.75.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index dae482e4c5..e5b6e0738a 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 0753ff77f0..4f05b4b0a0 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 03a6258f1f..c1f2d6838d 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index ea343b6fa0..6f7521d20e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.4", - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", - "@tanstack/react-query-persist-client": "^5.75.4", + "@tanstack/query-sync-storage-persister": "^5.75.5", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", + "@tanstack/react-query-persist-client": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 434805f0ca..1acea79785 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 736dfab8a5..28ad531e66 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 52ac1091ca..1f22f82a84 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index f7df90b15d..22f1e69e64 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.4", - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", - "@tanstack/react-query-persist-client": "^5.75.4", + "@tanstack/query-sync-storage-persister": "^5.75.5", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", + "@tanstack/react-query-persist-client": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index ba6a9659ad..bef9ad6682 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 878c4da134..80dc40987a 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index c2c1be612c..02cccf3169 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 182e048042..9919d5666c 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", - "@tanstack/react-query-next-experimental": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", + "@tanstack/react-query-next-experimental": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 6ce75ee033..727df977a1 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 29f0e4f2d5..d1d29c8e5a 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.4", + "@tanstack/query-sync-storage-persister": "^5.75.5", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", - "@tanstack/react-query-persist-client": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", + "@tanstack/react-query-persist-client": "^5.75.5", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 66f2110b98..4021b80335 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 1c6f028d79..a98de3fac1 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 57e3cc5ec6..a4bc7f4d78 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 76a35a9302..058b024f79 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 6ac3248b9b..c704296be9 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 634641ea09..2eeff006a3 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 8bc36c8ef8..e6734be32f 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 1861b3e9d3..d0da4c1cb6 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index ed4a78ad47..d206dde215 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 7b1d40e9c2..fa421e3aa0 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 7a55eae87a..6afb0922dc 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 5a45d42292..6b9de89538 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.75.4", - "@tanstack/react-query-devtools": "^5.75.4", + "@tanstack/react-query": "^5.75.5", + "@tanstack/react-query-devtools": "^5.75.5", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 94d3794650..d5e4b42c27 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.75.4", - "@tanstack/solid-query-devtools": "^5.75.4", + "@tanstack/solid-query": "^5.75.5", + "@tanstack/solid-query-devtools": "^5.75.5", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 4f5c73874e..176f538a4d 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.4", - "@tanstack/solid-query-devtools": "^5.75.4", + "@tanstack/solid-query": "^5.75.5", + "@tanstack/solid-query-devtools": "^5.75.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index c1587344ab..b4b2e92f41 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.4", - "@tanstack/solid-query-devtools": "^5.75.4", + "@tanstack/solid-query": "^5.75.5", + "@tanstack/solid-query-devtools": "^5.75.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 68e798b239..ff8a0b9f34 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.4", - "@tanstack/solid-query-devtools": "^5.75.4", + "@tanstack/solid-query": "^5.75.5", + "@tanstack/solid-query-devtools": "^5.75.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index bc8c7b3a57..9c2ae5fb24 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.75.4", - "@tanstack/solid-query-devtools": "^5.75.4", + "@tanstack/solid-query": "^5.75.5", + "@tanstack/solid-query-devtools": "^5.75.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 41e4ad25c7..f172d7e6fe 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.75.4", - "@tanstack/solid-query-devtools": "^5.75.4", + "@tanstack/solid-query": "^5.75.5", + "@tanstack/solid-query-devtools": "^5.75.5", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index ade9146bd6..fd60ffdc5b 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4" + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index c29e27c7fa..8489518af6 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.75.4", - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4", - "@tanstack/svelte-query-persist-client": "^5.75.4" + "@tanstack/query-sync-storage-persister": "^5.75.5", + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5", + "@tanstack/svelte-query-persist-client": "^5.75.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index aca447daa9..c54938f1a0 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4" + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 74bff86325..82e13659b2 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4" + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 21f458c6db..441f96c77a 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4" + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 404cfbb1b7..2fd4dcbd2c 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4" + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 16316650d3..ac92ea2c7b 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4" + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 09be51fabb..303430ff98 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.75.4", - "@tanstack/svelte-query-devtools": "^5.75.4" + "@tanstack/svelte-query": "^5.75.5", + "@tanstack/svelte-query-devtools": "^5.75.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index b68a2a71a9..0acaef99a6 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.4", + "@tanstack/vue-query": "^5.75.5", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 0eb9b8ab2e..f4fcb14328 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.4", + "@tanstack/vue-query": "^5.75.5", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 791a9f8764..b2eff90df0 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.4", - "@tanstack/vue-query-devtools": "^5.75.4", + "@tanstack/vue-query": "^5.75.5", + "@tanstack/vue-query-devtools": "^5.75.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 974f4fb686..e2736d3db4 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.4", + "@tanstack/vue-query": "^5.75.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index f4c05df02c..2657fe9495 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.75.4" + "@tanstack/vue-query": "^5.75.5" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 1dfe967491..b221e971f4 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.75.4", - "@tanstack/query-persist-client-core": "^5.75.4", - "@tanstack/query-sync-storage-persister": "^5.75.4", - "@tanstack/vue-query": "^5.75.4", + "@tanstack/query-core": "^5.75.5", + "@tanstack/query-persist-client-core": "^5.75.5", + "@tanstack/query-sync-storage-persister": "^5.75.5", + "@tanstack/vue-query": "^5.75.5", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index b33f1add19..3e75ca7d28 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.75.4", - "@tanstack/vue-query-devtools": "^5.75.4", + "@tanstack/vue-query": "^5.75.5", + "@tanstack/vue-query-devtools": "^5.75.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index cd75560d86..54e044fd13 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.75.4", + "version": "5.75.5", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 5b33372bd5..bf086e02c7 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.75.4", + "version": "5.75.5", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index b3aadf4d43..71157ceaae 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.75.4", + "version": "5.75.5", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 713f318110..7a264148d7 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.75.4", + "version": "5.75.5", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 63fe2ba3da..7c905b1971 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.75.4", + "version": "5.75.5", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 0de2032e84..0cac7b9e57 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.75.4", + "version": "5.75.5", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 099b88045b..9c1be23407 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.75.4", + "version": "5.75.5", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 1774eac49a..894e5474b6 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.75.4", + "version": "5.75.5", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index a749b61472..e2d66e52c9 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.75.4", + "version": "5.75.5", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 9ee1e589b5..7a67aaed1e 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.75.4", + "version": "5.75.5", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 040e8b75f7..ee4f33d50c 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.75.4", + "version": "5.75.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index b4c6482a24..f44d4d352d 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.75.4", + "version": "5.75.5", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index cce717dc3f..948ba1a4e4 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.75.4", + "version": "5.75.5", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index e57bec74a6..079893575e 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.75.4", + "version": "5.75.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 7addc6a131..b531272a5c 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.75.4", + "version": "5.75.5", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index b6da280db5..01d8d06875 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.75.4", + "version": "5.75.5", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index f32a6cd9ae..50a615f106 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.75.4", + "version": "5.75.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 8bfd71c706..c6b1f3b6af 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.75.4", + "version": "5.75.5", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 1c3126dafd..b24f679771 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.75.4", + "version": "5.75.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From d0552afb0bccfb2045d6f1ac76a1717601b7b414 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Wed, 7 May 2025 22:34:10 +0900 Subject: [PATCH 064/432] test(query-test-utils): init (internal package) (#9095) * test(query-test-utils): init * refactor(tests): replace createQueryClient with new QueryClient instantiation across test files * refactor(tests): remove unused imports in utils test file * refactor(tests): replace fetcher functions with sleep-based implementations in query tests * refactor(tests): replace simpleFetcher with sleep-based implementations in query tests * fix(query-core): update test:build script to remove pnpm prefix * refactor(tests): extract query function into a variable for clarity in useQuery tests * chore(tsconfig): remove temporary Vitest TypeScript configuration file * chore: add @tanstack/query-test-utils as a devDependency in multiple packages --------- Co-authored-by: Dominik Dorfmeister --- codecov.yml | 4 + package.json | 1 + .../angular-query-experimental/package.json | 1 + .../__tests__/inject-infinite-query.test-d.ts | 5 +- .../__tests__/inject-infinite-query.test.ts | 12 +- .../src/__tests__/inject-is-fetching.test.ts | 4 +- .../src/__tests__/inject-is-mutating.test.ts | 4 +- .../__tests__/inject-mutation-state.test.ts | 11 +- .../src/__tests__/inject-mutation.test-d.ts | 14 +- .../src/__tests__/inject-mutation.test.ts | 48 ++--- .../src/__tests__/inject-query.test-d.ts | 12 +- .../src/__tests__/inject-query.test.ts | 45 ++--- .../src/__tests__/test-utils.ts | 60 +----- .../angular-query-persist-client/package.json | 1 + .../src/__tests__/utils.ts | 12 -- .../with-persist-query-client.test.ts | 2 +- .../package.json | 1 + .../src/__tests__/asyncThrottle.test.ts | 10 +- .../src/__tests__/utils.ts | 5 - packages/query-core/package.json | 1 + .../src/__tests__/hydration.test.tsx | 179 ++++++++---------- .../__tests__/infiniteQueryBehavior.test.tsx | 13 +- .../infiniteQueryObserver.test-d.tsx | 8 +- .../__tests__/infiniteQueryObserver.test.tsx | 7 +- .../src/__tests__/mutationCache.test.tsx | 29 +-- .../src/__tests__/mutationObserver.test.tsx | 7 +- .../src/__tests__/mutations.test.tsx | 7 +- .../src/__tests__/notifyManager.test.tsx | 2 +- .../src/__tests__/queriesObserver.test.tsx | 8 +- .../query-core/src/__tests__/query.test.tsx | 23 ++- .../src/__tests__/queryCache.test.tsx | 8 +- .../src/__tests__/queryClient.test.tsx | 32 ++-- .../src/__tests__/queryObserver.test-d.tsx | 14 +- .../src/__tests__/queryObserver.test.tsx | 8 +- .../src/__tests__/streamedQuery.test.tsx | 7 +- .../query-core/src/__tests__/utils.test.tsx | 4 +- packages/query-core/src/__tests__/utils.ts | 26 +-- .../query-persist-client-core/package.json | 1 + .../src/__tests__/persist.test.ts | 18 +- .../src/__tests__/utils.ts | 13 +- .../query-sync-storage-persister/package.json | 1 + .../src/__tests__/storageIsFull.test.ts | 2 +- .../src/__tests__/utils.ts | 5 - packages/query-test-utils/eslint.config.js | 5 + packages/query-test-utils/package.json | 40 ++++ .../query-test-utils/root.eslint.config.js | 1 + .../src/__test__/queryKey.test.ts | 12 ++ .../src/__test__/sleep.test.ts | 11 ++ packages/query-test-utils/src/index.ts | 3 + .../src/mockVisibilityState.ts | 7 + packages/query-test-utils/src/queryKey.ts | 6 + packages/query-test-utils/src/sleep.ts | 4 + packages/query-test-utils/tsconfig.json | 9 + packages/query-test-utils/vite.config.ts | 25 +++ .../react-query-persist-client/package.json | 1 + .../PersistQueryClientProvider.test.tsx | 23 ++- .../src/__tests__/utils.ts | 18 -- packages/react-query/package.json | 1 + .../src/__tests__/HydrationBoundary.test.tsx | 23 ++- .../__tests__/QueryClientProvider.test.tsx | 18 +- .../QueryResetErrorBoundary.test.tsx | 7 +- .../__tests__/fine-grained-persister.test.tsx | 8 +- .../src/__tests__/ssr-hydration.test.tsx | 22 +-- .../react-query/src/__tests__/ssr.test.tsx | 21 +- .../src/__tests__/suspense.test.tsx | 2 +- .../src/__tests__/useInfiniteQuery.test.tsx | 12 +- .../src/__tests__/useIsFetching.test.tsx | 20 +- .../src/__tests__/useMutation.test.tsx | 12 +- .../src/__tests__/useMutationState.test.tsx | 16 +- .../usePrefetchInfiniteQuery.test.tsx | 8 +- .../src/__tests__/usePrefetchQuery.test.tsx | 6 +- .../src/__tests__/useQueries.test.tsx | 14 +- .../src/__tests__/useQuery.promise.test.tsx | 5 +- .../src/__tests__/useQuery.test-d.tsx | 2 +- .../src/__tests__/useQuery.test.tsx | 32 ++-- .../useSuspenseInfiniteQuery.test.tsx | 12 +- .../src/__tests__/useSuspenseQueries.test.tsx | 14 +- .../src/__tests__/useSuspenseQuery.test.tsx | 8 +- packages/react-query/src/__tests__/utils.tsx | 26 +-- .../solid-query-persist-client/package.json | 1 + .../PersistQueryClientProvider.test.tsx | 17 +- .../src/__tests__/utils.ts | 18 -- packages/solid-query/package.json | 1 + .../__tests__/QueryClientProvider.test.tsx | 14 +- .../src/__tests__/suspense.test.tsx | 13 +- .../src/__tests__/transition.test.tsx | 6 +- .../src/__tests__/useInfiniteQuery.test.tsx | 13 +- .../src/__tests__/useIsFetching.test.tsx | 21 +- .../src/__tests__/useIsMutating.test.tsx | 20 +- .../src/__tests__/useMutation.test.tsx | 19 +- .../src/__tests__/useMutationState.test.tsx | 13 +- .../src/__tests__/useQueries.test.tsx | 14 +- .../src/__tests__/useQuery.test.tsx | 17 +- packages/solid-query/src/__tests__/utils.tsx | 24 --- .../svelte-query-persist-client/package.json | 1 + .../AwaitOnSuccess/AwaitOnSuccess.svelte | 2 +- .../tests/FreshData/FreshData.svelte | 2 +- .../tests/InitialData/InitialData.svelte | 2 +- .../tests/OnSuccess/OnSuccess.svelte | 2 +- .../tests/PersistQueryClientProvider.test.ts | 17 +- .../tests/RemoveCache/RemoveCache.svelte | 2 +- .../tests/RestoreCache/RestoreCache.svelte | 2 +- .../tests/UseQueries/UseQueries.svelte | 2 +- .../tests/utils.ts | 14 -- packages/svelte-query/package.json | 1 + .../QueryClientProvider/ChildComponent.svelte | 2 +- .../createMutation/createMutation.test.ts | 2 +- .../tests/createQueries/CombineExample.svelte | 2 +- .../tests/createQueries/createQueries.test.ts | 2 +- .../tests/createQuery/DisabledExample.svelte | 2 +- .../tests/createQuery/PlaceholderData.svelte | 2 +- .../tests/createQuery/RefetchExample.svelte | 2 +- .../tests/createQuery/createQuery.test.ts | 2 +- .../tests/useIsFetching/BaseExample.svelte | 2 +- .../tests/useIsMutating/BaseExample.svelte | 2 +- packages/svelte-query/tests/utils.ts | 5 - packages/vue-query/package.json | 1 + .../src/__tests__/queryClient.test.ts | 8 +- .../vue-query/src/__tests__/test-utils.ts | 52 ----- .../src/__tests__/useInfiniteQuery.test-d.tsx | 14 +- .../src/__tests__/useInfiniteQuery.test.ts | 16 +- .../src/__tests__/useIsFetching.test.ts | 19 +- .../src/__tests__/useIsMutating.test.ts | 26 +-- .../src/__tests__/useMutation.test-d.tsx | 26 ++- .../src/__tests__/useMutation.test.ts | 93 +++++---- .../src/__tests__/useQueries.test.ts | 74 ++++---- .../src/__tests__/useQuery.test-d.ts | 24 ++- .../vue-query/src/__tests__/useQuery.test.ts | 111 ++++++----- .../src/__tests__/vueQueryPlugin.test.ts | 8 +- pnpm-lock.yaml | 133 ++++++++++++- 130 files changed, 1047 insertions(+), 970 deletions(-) delete mode 100644 packages/angular-query-persist-client/src/__tests__/utils.ts delete mode 100644 packages/query-async-storage-persister/src/__tests__/utils.ts delete mode 100644 packages/query-sync-storage-persister/src/__tests__/utils.ts create mode 100644 packages/query-test-utils/eslint.config.js create mode 100644 packages/query-test-utils/package.json create mode 120000 packages/query-test-utils/root.eslint.config.js create mode 100644 packages/query-test-utils/src/__test__/queryKey.test.ts create mode 100644 packages/query-test-utils/src/__test__/sleep.test.ts create mode 100644 packages/query-test-utils/src/index.ts create mode 100644 packages/query-test-utils/src/mockVisibilityState.ts create mode 100644 packages/query-test-utils/src/queryKey.ts create mode 100644 packages/query-test-utils/src/sleep.ts create mode 100644 packages/query-test-utils/tsconfig.json create mode 100644 packages/query-test-utils/vite.config.ts delete mode 100644 packages/react-query-persist-client/src/__tests__/utils.ts delete mode 100644 packages/solid-query-persist-client/src/__tests__/utils.ts delete mode 100644 packages/svelte-query/tests/utils.ts delete mode 100644 packages/vue-query/src/__tests__/test-utils.ts diff --git a/codecov.yml b/codecov.yml index 3547af3b6b..ef21589e00 100644 --- a/codecov.yml +++ b/codecov.yml @@ -59,6 +59,10 @@ component_management: name: '@tanstack/query-sync-storage-persister' paths: - packages/query-sync-storage-persister/** + - component_id: query-test-utils + name: '@tanstack/query-test-utils' + paths: + - packages/query-test-utils/** - component_id: react-query name: '@tanstack/react-query' paths: diff --git a/package.json b/package.json index 54e95c533b..0b6e2ea90c 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "@tanstack/query-devtools": "workspace:*", "@tanstack/query-persist-client-core": "workspace:*", "@tanstack/query-sync-storage-persister": "workspace:*", + "@tanstack/query-test-utils": "workspace:*", "@tanstack/react-query": "workspace:*", "@tanstack/react-query-devtools": "workspace:*", "@tanstack/react-query-next-experimental": "workspace:*", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index bf086e02c7..e1a9d13dbe 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -74,6 +74,7 @@ "@angular/core": "^19.2.4", "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", + "@tanstack/query-test-utils": "workspace:*", "eslint-plugin-jsdoc": "^50.5.0", "npm-run-all2": "^5.0.0" }, diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts index 047da657e2..f07e0ded24 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test-d.ts @@ -1,8 +1,8 @@ import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expectTypeOf, test, vi } from 'vitest' import { provideExperimentalZonelessChangeDetection } from '@angular/core' +import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' -import { infiniteFetcher } from './test-utils' import type { InfiniteData } from '@tanstack/query-core' describe('injectInfiniteQuery', () => { @@ -27,7 +27,8 @@ describe('injectInfiniteQuery', () => { const query = TestBed.runInInjectionContext(() => { return injectInfiniteQuery(() => ({ queryKey: ['infiniteQuery'], - queryFn: infiniteFetcher, + queryFn: ({ pageParam }) => + sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, getNextPageParam: () => 12, })) diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index 6c7c8d1d51..5b4f6222d8 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -4,8 +4,9 @@ import { Injector, provideExperimentalZonelessChangeDetection, } from '@angular/core' +import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' -import { expectSignals, infiniteFetcher } from './test-utils' +import { expectSignals } from './test-utils' const QUERY_DURATION = 1000 @@ -33,7 +34,8 @@ describe('injectInfiniteQuery', () => { const query = TestBed.runInInjectionContext(() => { return injectInfiniteQuery(() => ({ queryKey: ['infiniteQuery'], - queryFn: infiniteFetcher, + queryFn: ({ pageParam }) => + sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, getNextPageParam: () => 12, })) @@ -72,7 +74,8 @@ describe('injectInfiniteQuery', () => { expect(() => { injectInfiniteQuery(() => ({ queryKey: ['injectionContextError'], - queryFn: infiniteFetcher, + queryFn: ({ pageParam }) => + sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, getNextPageParam: () => 12, })) @@ -83,7 +86,8 @@ describe('injectInfiniteQuery', () => { const query = injectInfiniteQuery( () => ({ queryKey: ['manualInjector'], - queryFn: infiniteFetcher, + queryFn: ({ pageParam }) => + sleep(0).then(() => 'data on page ' + pageParam), initialPageParam: 0, getNextPageParam: () => 12, }), diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index 1e42ddc124..fb21f8614d 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -4,13 +4,13 @@ import { Injector, provideExperimentalZonelessChangeDetection, } from '@angular/core' +import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectIsFetching, injectQuery, provideTanStackQuery, } from '..' -import { delayedFetcher } from './test-utils' const QUERY_DURATION = 100 @@ -39,7 +39,7 @@ describe('injectIsFetching', () => { const isFetching = TestBed.runInInjectionContext(() => { injectQuery(() => ({ queryKey: ['isFetching1'], - queryFn: delayedFetcher(100), + queryFn: () => sleep(100).then(() => 'Some data'), })) return injectIsFetching() }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 73a3ce5f24..4b7ed85f73 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -4,13 +4,13 @@ import { Injector, provideExperimentalZonelessChangeDetection, } from '@angular/core' +import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectIsMutating, injectMutation, provideTanStackQuery, } from '..' -import { successMutator } from './test-utils' describe('injectIsMutating', () => { let queryClient: QueryClient @@ -36,7 +36,7 @@ describe('injectIsMutating', () => { const isMutating = injectIsMutating() const mutation = injectMutation(() => ({ mutationKey: ['isMutating1'], - mutationFn: successMutator<{ par1: string }>, + mutationFn: (params: { par1: string }) => sleep(0).then(() => params), })) expect(isMutating()).toBe(0) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index 44e6eeab90..e5a78d6d22 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -8,13 +8,14 @@ import { import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { By } from '@angular/platform-browser' +import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectMutation, injectMutationState, provideTanStackQuery, } from '..' -import { setFixtureSignalInputs, successMutator } from './test-utils' +import { setFixtureSignalInputs } from './test-utils' describe('injectMutationState', () => { let queryClient: QueryClient @@ -42,7 +43,7 @@ describe('injectMutationState', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationKey: mutationKey, - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })) }) @@ -68,11 +69,11 @@ describe('injectMutationState', () => { return [ injectMutation(() => ({ mutationKey: mutationKey1, - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })), injectMutation(() => ({ mutationKey: mutationKey2, - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })), ] }) @@ -103,7 +104,7 @@ describe('injectMutationState', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationKey: mutationKey, - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })) }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts index b3aa0a96dc..f331bb02de 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts @@ -1,12 +1,12 @@ import { describe, expectTypeOf, test } from 'vitest' +import { sleep } from '@tanstack/query-test-utils' import { injectMutation } from '..' -import { successMutator } from './test-utils' import type { Signal } from '@angular/core' describe('Discriminated union return type', () => { test('data should be possibly undefined by default', () => { const mutation = injectMutation(() => ({ - mutationFn: successMutator, + mutationFn: () => sleep(0).then(() => 'string'), })) expectTypeOf(mutation.data).toEqualTypeOf>() @@ -14,7 +14,7 @@ describe('Discriminated union return type', () => { test('data should be defined when mutation is success', () => { const mutation = injectMutation(() => ({ - mutationFn: successMutator, + mutationFn: () => sleep(0).then(() => 'string'), })) if (mutation.isSuccess()) { @@ -24,7 +24,7 @@ describe('Discriminated union return type', () => { test('error should be null when mutation is success', () => { const mutation = injectMutation(() => ({ - mutationFn: successMutator, + mutationFn: () => sleep(0).then(() => 'string'), })) if (mutation.isSuccess()) { @@ -34,7 +34,7 @@ describe('Discriminated union return type', () => { test('data should be undefined when mutation is pending', () => { const mutation = injectMutation(() => ({ - mutationFn: successMutator, + mutationFn: () => sleep(0).then(() => 'string'), })) if (mutation.isPending()) { @@ -44,7 +44,7 @@ describe('Discriminated union return type', () => { test('error should be defined when mutation is error', () => { const mutation = injectMutation(() => ({ - mutationFn: successMutator, + mutationFn: () => sleep(0).then(() => 'string'), })) if (mutation.isError()) { @@ -54,7 +54,7 @@ describe('Discriminated union return type', () => { test('should narrow variables', () => { const mutation = injectMutation(() => ({ - mutationFn: successMutator, + mutationFn: (_variables: string) => sleep(0).then(() => 'string'), })) if (mutation.isIdle()) { diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index f595095c81..eeb0c7cc12 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -8,13 +8,9 @@ import { import { TestBed } from '@angular/core/testing' import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { By } from '@angular/platform-browser' +import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectMutation, provideTanStackQuery } from '..' -import { - errorMutator, - expectSignals, - setFixtureSignalInputs, - successMutator, -} from './test-utils' +import { expectSignals, setFixtureSignalInputs } from './test-utils' const MUTATION_DURATION = 1000 @@ -41,7 +37,7 @@ describe('injectMutation', () => { test('should be in idle state initially', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params) => successMutator(params), + mutationFn: (params) => sleep(0).then(() => params), })) }) @@ -58,7 +54,7 @@ describe('injectMutation', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })) }) @@ -80,11 +76,12 @@ describe('injectMutation', () => { test('should return error when request fails', async () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: errorMutator, + mutationFn: () => + sleep(0).then(() => Promise.reject(new Error('Some error'))), })) }) - mutation.mutate({}) + mutation.mutate() await resolveMutations() @@ -102,7 +99,7 @@ describe('injectMutation', () => { const result = 'Mock data' const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })) }) @@ -128,7 +125,7 @@ describe('injectMutation', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationKey: mutationKey(), - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })) }) @@ -144,11 +141,12 @@ describe('injectMutation', () => { test('should reset state after invoking mutation.reset', async () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => errorMutator(params), + mutationFn: () => + sleep(0).then(() => Promise.reject(new Error('Some error'))), })) }) - mutation.mutate('') + mutation.mutate() await resolveMutations() @@ -177,7 +175,7 @@ describe('injectMutation', () => { const onMutate = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), onMutate, })) }) @@ -193,7 +191,8 @@ describe('injectMutation', () => { const onError = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => errorMutator(params), + mutationFn: (_params: string) => + sleep(0).then(() => Promise.reject(new Error('Some error'))), onError, })) }) @@ -209,7 +208,7 @@ describe('injectMutation', () => { const onSuccess = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), onSuccess, })) }) @@ -225,7 +224,7 @@ describe('injectMutation', () => { const onSettled = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), onSettled, })) }) @@ -241,7 +240,8 @@ describe('injectMutation', () => { const onError = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => errorMutator(params), + mutationFn: (_params: string) => + sleep(0).then(() => Promise.reject(new Error('Some error'))), })) }) @@ -256,7 +256,7 @@ describe('injectMutation', () => { const onSuccess = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })) }) @@ -271,7 +271,7 @@ describe('injectMutation', () => { const onSettled = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), })) }) @@ -287,7 +287,7 @@ describe('injectMutation', () => { const onSettledOnFunction = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => successMutator(params), + mutationFn: (params: string) => sleep(0).then(() => params), onSettled, })) }) @@ -317,7 +317,7 @@ describe('injectMutation', () => { mutation = injectMutation(() => ({ mutationKey: ['fake', this.name()], - mutationFn: () => successMutator(this.name()), + mutationFn: () => sleep(0).then(() => this.name()), })) mutate(): void { @@ -358,7 +358,7 @@ describe('injectMutation', () => { mutation = injectMutation(() => ({ mutationKey: ['fake', this.name()], - mutationFn: () => successMutator(this.name()), + mutationFn: () => sleep(0).then(() => this.name()), })) mutate(): void { diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts index ded20a5803..541ad65f14 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test-d.ts @@ -1,6 +1,6 @@ import { describe, expectTypeOf, it, test } from 'vitest' +import { sleep } from '@tanstack/query-test-utils' import { injectQuery, queryOptions } from '..' -import { simpleFetcher } from './test-utils' import type { Signal } from '@angular/core' describe('initialData', () => { @@ -127,7 +127,7 @@ describe('Discriminated union return type', () => { test('data should be possibly undefined by default', () => { const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) expectTypeOf(query.data).toEqualTypeOf>() @@ -136,7 +136,7 @@ describe('Discriminated union return type', () => { test('data should be defined when query is success', () => { const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) if (query.isSuccess()) { @@ -147,7 +147,7 @@ describe('Discriminated union return type', () => { test('error should be null when query is success', () => { const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) if (query.isSuccess()) { @@ -158,7 +158,7 @@ describe('Discriminated union return type', () => { test('data should be undefined when query is pending', () => { const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) if (query.isPending()) { @@ -169,7 +169,7 @@ describe('Discriminated union return type', () => { test('error should be defined when query is error', () => { const query = injectQuery(() => ({ queryKey: ['key'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) if (query.isError()) { diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 2f7d5f4f45..54818704b2 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -17,15 +17,9 @@ import { test, vi, } from 'vitest' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, injectQuery, provideTanStackQuery } from '..' -import { - delayedFetcher, - getSimpleFetcherWithReturnData, - queryKey, - rejectFetcher, - setSignalInputs, - simpleFetcher, -} from './test-utils' +import { setSignalInputs } from './test-utils' import type { CreateQueryOptions, OmitKeyof, QueryFunction } from '..' const QUERY_DURATION = 100 @@ -271,7 +265,7 @@ describe('injectQuery', () => { const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['key1'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) }) @@ -286,7 +280,7 @@ describe('injectQuery', () => { const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['key2'], - queryFn: getSimpleFetcherWithReturnData('result2'), + queryFn: () => sleep(0).then(() => 'result2'), })) }) @@ -305,7 +299,8 @@ describe('injectQuery', () => { return injectQuery(() => ({ retry: false, queryKey: ['key3'], - queryFn: rejectFetcher, + queryFn: () => + sleep(0).then(() => Promise.reject(new Error('Some error'))), })) }) @@ -323,7 +318,7 @@ describe('injectQuery', () => { test('should update query on options contained signal change', async () => { const key = signal(['key6', 'key7']) - const spy = vi.fn(simpleFetcher) + const spy = vi.fn(() => sleep(0).then(() => 'Some data')) const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -352,7 +347,7 @@ describe('injectQuery', () => { }) test('should only run query once enabled signal is set to true', async () => { - const spy = vi.fn(simpleFetcher) + const spy = vi.fn(() => sleep(0).then(() => 'Some data')) const enabled = signal(false) const query = TestBed.runInInjectionContext(() => { @@ -376,11 +371,13 @@ describe('injectQuery', () => { const query1 = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['dependant1'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) }) - const dependentQueryFn = vi.fn().mockImplementation(delayedFetcher(1000)) + const dependentQueryFn = vi + .fn() + .mockImplementation(() => sleep(1000).then(() => 'Some data')) const query2 = TestBed.runInInjectionContext(() => { return injectQuery( @@ -412,7 +409,7 @@ describe('injectQuery', () => { }) test('should use the current value for the queryKey when refetch is called', async () => { - const fetchFn = vi.fn(simpleFetcher) + const fetchFn = vi.fn(() => sleep(0).then(() => 'Some data')) const keySignal = signal('key11') const query = TestBed.runInInjectionContext(() => { @@ -458,7 +455,8 @@ describe('injectQuery', () => { TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['key12'], - queryFn: rejectFetcher, + queryFn: () => + sleep(0).then(() => Promise.reject(new Error('Some error'))), throwOnError: boundaryFn, })) }) @@ -478,7 +476,8 @@ describe('injectQuery', () => { TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['key13'], - queryFn: rejectFetcher, + queryFn: () => + sleep(0).then(() => Promise.reject(new Error('Some error'))), throwOnError: true, })) }) @@ -490,7 +489,8 @@ describe('injectQuery', () => { TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['key14'], - queryFn: rejectFetcher, + queryFn: () => + sleep(0).then(() => Promise.reject(new Error('Some error'))), throwOnError: () => true, })) }) @@ -504,7 +504,8 @@ describe('injectQuery', () => { return injectQuery(() => ({ retry: false, queryKey: ['key15'], - queryFn: rejectFetcher, + queryFn: () => + sleep(0).then(() => Promise.reject(new Error('Some error'))), })) }) @@ -548,7 +549,7 @@ describe('injectQuery', () => { expect(() => { injectQuery(() => ({ queryKey: ['injectionContextError'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), })) }).toThrowError(/NG0203(.*?)injectQuery/) }) @@ -557,7 +558,7 @@ describe('injectQuery', () => { const query = injectQuery( () => ({ queryKey: ['manualInjector'], - queryFn: simpleFetcher, + queryFn: () => sleep(0).then(() => 'Some data'), }), { injector: TestBed.inject(Injector), diff --git a/packages/angular-query-experimental/src/__tests__/test-utils.ts b/packages/angular-query-experimental/src/__tests__/test-utils.ts index 9fdd01f943..a035414b0e 100644 --- a/packages/angular-query-experimental/src/__tests__/test-utils.ts +++ b/packages/angular-query-experimental/src/__tests__/test-utils.ts @@ -4,65 +4,7 @@ import { expect } from 'vitest' import type { InputSignal, Signal } from '@angular/core' import type { ComponentFixture } from '@angular/core/testing' -let queryKeyCount = 0 -export function queryKey() { - queryKeyCount++ - return [`query_${queryKeyCount}`] -} - -export function simpleFetcher(): Promise { - return new Promise((resolve) => { - setTimeout(() => { - return resolve('Some data') - }, 0) - }) -} - -export function delayedFetcher(timeout = 0): () => Promise { - return () => - new Promise((resolve) => { - setTimeout(() => { - return resolve('Some data') - }, timeout) - }) -} - -export function getSimpleFetcherWithReturnData(returnData: unknown) { - return () => - new Promise((resolve) => setTimeout(() => resolve(returnData), 0)) -} - -export function rejectFetcher(): Promise { - return new Promise((_, reject) => { - setTimeout(() => { - return reject(new Error('Some error')) - }, 0) - }) -} - -export function infiniteFetcher({ - pageParam, -}: { - pageParam?: number -}): Promise { - return new Promise((resolve) => { - setTimeout(() => { - return resolve('data on page ' + pageParam) - }, 0) - }) -} - -export function successMutator(param: T): Promise { - return new Promise((resolve) => { - setTimeout(() => { - return resolve(param) - }, 0) - }) -} - -export function errorMutator(_parameter?: unknown): Promise { - return rejectFetcher() -} +/* eslint jsdoc/require-jsdoc: 0, jsdoc/require-param: 0 */ // Evaluate all signals on an object and return the result function evaluateSignals>( diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 59d27f8e8c..d4343f998e 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -62,6 +62,7 @@ "@angular/platform-browser": "^19.2.4", "@angular/platform-browser-dynamic": "^19.2.4", "@tanstack/angular-query-experimental": "workspace:*", + "@tanstack/query-test-utils": "workspace:*", "@testing-library/angular": "^17.3.2", "@testing-library/dom": "^10.4.0", "eslint-plugin-jsdoc": "^50.5.0", diff --git a/packages/angular-query-persist-client/src/__tests__/utils.ts b/packages/angular-query-persist-client/src/__tests__/utils.ts deleted file mode 100644 index 73fb0ed26f..0000000000 --- a/packages/angular-query-persist-client/src/__tests__/utils.ts +++ /dev/null @@ -1,12 +0,0 @@ -let queryKeyCount = 0 - -export function queryKey(): Array { - queryKeyCount++ - return [`query_${queryKeyCount}`] -} - -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} diff --git a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts index 7085c753ea..4a6a8d6fab 100644 --- a/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts +++ b/packages/angular-query-persist-client/src/__tests__/with-persist-query-client.test.ts @@ -11,8 +11,8 @@ import { provideExperimentalZonelessChangeDetection, } from '@angular/core' import { render, screen, waitFor } from '@testing-library/angular' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { withPersistQueryClient } from '../with-persist-query-client' -import { queryKey, sleep } from './utils' import type { PersistedClient, Persister, diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 71157ceaae..22884685b3 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -62,6 +62,7 @@ "@tanstack/query-persist-client-core": "workspace:*" }, "devDependencies": { + "@tanstack/query-test-utils": "workspace:*", "npm-run-all2": "^5.0.0" } } diff --git a/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts b/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts index d85ea1c465..ec7476d174 100644 --- a/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts +++ b/packages/query-async-storage-persister/src/__tests__/asyncThrottle.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { sleep } from '@tanstack/query-test-utils' import { asyncThrottle } from '../asyncThrottle' -import { sleep as delay } from './utils' describe('asyncThrottle', () => { beforeEach(() => { @@ -16,7 +16,7 @@ describe('asyncThrottle', () => { const execTimeStamps: Array = [] const mockFunc = vi.fn( async (id: number, complete?: (value?: unknown) => void) => { - await delay(1) + await sleep(1) execTimeStamps.push(Date.now()) if (complete) { complete(id) @@ -49,7 +49,7 @@ describe('asyncThrottle', () => { const execTimeStamps: Array = [] const mockFunc = vi.fn( async (id: number, complete?: (value?: unknown) => void) => { - await delay(30) + await sleep(30) execTimeStamps.push(Date.now()) if (complete) { complete(id) @@ -81,7 +81,7 @@ describe('asyncThrottle', () => { const execTimeStamps: Array = [] const mockFunc = vi.fn( async (id: number, complete?: (value?: unknown) => void) => { - await delay(interval + 10) + await sleep(interval + 10) execTimeStamps.push(Date.now()) if (complete) { complete(id) @@ -112,7 +112,7 @@ describe('asyncThrottle', () => { const mockFunc = vi.fn( async (id: number, complete?: (value?: unknown) => void) => { if (id === 1) throw new Error('error') - await delay(1) + await sleep(1) if (complete) { complete(id) } diff --git a/packages/query-async-storage-persister/src/__tests__/utils.ts b/packages/query-async-storage-persister/src/__tests__/utils.ts deleted file mode 100644 index 1a3a619a22..0000000000 --- a/packages/query-async-storage-persister/src/__tests__/utils.ts +++ /dev/null @@ -1,5 +0,0 @@ -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 7c905b1971..95241f6b65 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -59,6 +59,7 @@ "!src/__tests__" ], "devDependencies": { + "@tanstack/query-test-utils": "workspace:*", "npm-run-all2": "^5.0.0" } } diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index ed9a1a2a29..353d5c1dcb 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -1,23 +1,10 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { sleep } from '@tanstack/query-test-utils' +import { QueryClient } from '../queryClient' import { QueryCache } from '../queryCache' import { dehydrate, hydrate } from '../hydration' import { MutationCache } from '../mutationCache' -import { - createQueryClient, - executeMutation, - mockOnlineManagerIsOnline, - sleep, -} from './utils' - -async function fetchData(value: TData, ms?: number): Promise { - await sleep(ms || 0) - return value -} - -async function fetchDate(value: string, ms?: number): Promise { - await sleep(ms || 0) - return new Date(value) -} +import { executeMutation, mockOnlineManagerIsOnline } from './utils' describe('dehydration and rehydration', () => { beforeEach(() => { @@ -30,42 +17,42 @@ describe('dehydration and rehydration', () => { test('should work with serializable values', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string'), + queryFn: () => sleep(0).then(() => 'string'), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['number'], - queryFn: () => fetchData(1), + queryFn: () => sleep(0).then(() => 1), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['boolean'], - queryFn: () => fetchData(true), + queryFn: () => sleep(0).then(() => true), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['null'], - queryFn: () => fetchData(null), + queryFn: () => sleep(0).then(() => null), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['array'], - queryFn: () => fetchData(['string', 0]), + queryFn: () => sleep(0).then(() => ['string', 0]), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['nested'], - queryFn: () => fetchData({ key: [{ nestedKey: 1 }] }), + queryFn: () => sleep(0).then(() => ({ key: [{ nestedKey: 1 }] })), }), ) const dehydrated = dehydrate(queryClient) @@ -75,7 +62,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ queryCache: hydrationCache, }) hydrate(hydrationClient, parsed) @@ -135,11 +122,11 @@ describe('dehydration and rehydration', () => { test('should not dehydrate queries if dehydrateQueries is set to false', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string'), + queryFn: () => sleep(0).then(() => 'string'), }), ) @@ -154,11 +141,11 @@ describe('dehydration and rehydration', () => { test('should use the garbage collection time from the client', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string'), + queryFn: () => sleep(0).then(() => 'string'), gcTime: 50, }), ) @@ -171,7 +158,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) expect(hydrationCache.find({ queryKey: ['string'] })?.state.data).toBe( 'string', @@ -185,18 +172,18 @@ describe('dehydration and rehydration', () => { test('should be able to provide default options for the hydrated queries', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string'), + queryFn: () => sleep(0).then(() => 'string'), }), ) const dehydrated = dehydrate(queryClient) const stringified = JSON.stringify(dehydrated) const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed, { defaultOptions: { queries: { retry: 10 } }, }) @@ -209,7 +196,7 @@ describe('dehydration and rehydration', () => { test('should respect query defaultOptions specified on the QueryClient', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true }, @@ -228,7 +215,7 @@ describe('dehydration and rehydration', () => { const stringified = JSON.stringify(dehydrated) const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ queryCache: hydrationCache, defaultOptions: { hydrate: { queries: { retry: 10 } } }, }) @@ -247,7 +234,7 @@ describe('dehydration and rehydration', () => { test('should respect mutation defaultOptions specified on the QueryClient', async () => { const mutationCache = new MutationCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ mutationCache, defaultOptions: { dehydrate: { @@ -270,7 +257,7 @@ describe('dehydration and rehydration', () => { const stringified = JSON.stringify(dehydrated) const parsed = JSON.parse(stringified) const hydrationCache = new MutationCache() - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ mutationCache: hydrationCache, defaultOptions: { hydrate: { mutations: { retry: 10 } } }, }) @@ -289,11 +276,11 @@ describe('dehydration and rehydration', () => { test('should work with complex keys', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string', { key: ['string'], key2: 0 }], - queryFn: () => fetchData('string'), + queryFn: () => sleep(0).then(() => 'string'), }), ) const dehydrated = dehydrate(queryClient) @@ -303,7 +290,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) expect( hydrationCache.find({ @@ -331,16 +318,16 @@ describe('dehydration and rehydration', () => { consoleMock.mockImplementation(() => undefined) const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['success'], - queryFn: () => fetchData('success'), + queryFn: () => sleep(0).then(() => 'success'), }), ) queryClient.prefetchQuery({ queryKey: ['loading'], - queryFn: () => fetchData('loading', 10000), + queryFn: () => sleep(10000).then(() => 'loading'), }) await vi.waitFor(() => queryClient.prefetchQuery({ @@ -357,7 +344,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) expect(hydrationCache.find({ queryKey: ['success'] })).toBeTruthy() @@ -371,17 +358,17 @@ describe('dehydration and rehydration', () => { test('should filter queries via dehydrateQuery', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string'), + queryFn: () => sleep(0).then(() => 'string'), }), ) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['number'], - queryFn: () => fetchData(1), + queryFn: () => sleep(0).then(() => 1), }), ) const dehydrated = dehydrate(queryClient, { @@ -401,7 +388,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) expect(hydrationCache.find({ queryKey: ['string'] })).toBeUndefined() expect(hydrationCache.find({ queryKey: ['number'] })?.state.data).toBe(1) @@ -412,11 +399,11 @@ describe('dehydration and rehydration', () => { test('should not overwrite query in cache if hydrated query is older', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string-older', 5), + queryFn: () => sleep(5).then(() => 'string-older'), }), ) const dehydrated = dehydrate(queryClient) @@ -426,11 +413,11 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) await vi.waitFor(() => hydrationClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string-newer', 5), + queryFn: () => sleep(5).then(() => 'string-newer'), }), ) @@ -445,22 +432,22 @@ describe('dehydration and rehydration', () => { test('should overwrite query in cache if hydrated query is newer', async () => { const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) await vi.waitFor(() => hydrationClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string-older', 5), + queryFn: () => sleep(5).then(() => 'string-older'), }), ) // --- const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['string'], - queryFn: () => fetchData('string-newer', 5), + queryFn: () => sleep(5).then(() => 'string-newer'), }), ) const dehydrated = dehydrate(queryClient) @@ -492,7 +479,7 @@ describe('dehydration and rehydration', () => { }) const serverOnSuccess = vi.fn() - const serverClient = createQueryClient() + const serverClient = new QueryClient() serverClient.setMutationDefaults(['addTodo'], { mutationFn: serverAddTodo, @@ -522,7 +509,7 @@ describe('dehydration and rehydration', () => { onlineMock.mockReturnValue(true) const parsed = JSON.parse(stringified) - const client = createQueryClient() + const client = new QueryClient() const clientAddTodo = vi.fn().mockImplementation((variables) => { return { id: 2, text: variables.text } @@ -567,7 +554,7 @@ describe('dehydration and rehydration', () => { .fn() .mockImplementation(() => Promise.reject(new Error('offline'))) - const queryClient = createQueryClient() + const queryClient = new QueryClient() queryClient.setMutationDefaults(['addTodo'], { mutationFn: serverAddTodo, @@ -601,7 +588,7 @@ describe('dehydration and rehydration', () => { .fn() .mockImplementation(() => Promise.reject(new Error('offline'))) - const queryClient = createQueryClient() + const queryClient = new QueryClient() queryClient.setMutationDefaults(['addTodo'], { mutationFn: serverAddTodo, @@ -630,7 +617,7 @@ describe('dehydration and rehydration', () => { test('should not hydrate if the hydratedState is null or is not an object', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) expect(() => hydrate(queryClient, null)).not.toThrow() expect(() => hydrate(queryClient, 'invalid')).not.toThrow() @@ -640,7 +627,7 @@ describe('dehydration and rehydration', () => { test('should support hydratedState with undefined queries and mutations', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) expect(() => hydrate(queryClient, {})).not.toThrow() expect(() => hydrate(queryClient, {})).not.toThrow() @@ -650,7 +637,7 @@ describe('dehydration and rehydration', () => { test('should set the fetchStatus to idle when creating a query with dehydrate', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) let isInitialFetch = true let resolvePromise: (value: unknown) => void = () => undefined @@ -686,7 +673,7 @@ describe('dehydration and rehydration', () => { // --- const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) hydrate(hydrationClient, parsed) expect( hydrationCache.find({ queryKey: ['string'] })?.state.fetchStatus, @@ -695,7 +682,7 @@ describe('dehydration and rehydration', () => { test('should dehydrate and hydrate meta for queries', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['meta'], @@ -736,7 +723,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ queryCache: hydrationCache, }) hydrate(hydrationClient, parsed) @@ -750,7 +737,7 @@ describe('dehydration and rehydration', () => { test('should dehydrate and hydrate meta for mutations', async () => { const mutationCache = new MutationCache() - const queryClient = createQueryClient({ mutationCache }) + const queryClient = new QueryClient({ mutationCache }) await executeMutation( queryClient, @@ -795,7 +782,7 @@ describe('dehydration and rehydration', () => { const parsed = JSON.parse(stringified) const hydrationCache = new MutationCache() - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ mutationCache: hydrationCache, }) hydrate(hydrationClient, parsed) @@ -808,7 +795,7 @@ describe('dehydration and rehydration', () => { }) test('should not change fetchStatus when updating a query with dehydrate', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const options = { queryKey: ['string'], @@ -830,7 +817,7 @@ describe('dehydration and rehydration', () => { // --- const parsed = JSON.parse(stringified) const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ queryCache: hydrationCache }) + const hydrationClient = new QueryClient({ queryCache: hydrationCache }) const promise = hydrationClient.prefetchQuery(options) hydrate(hydrationClient, parsed) @@ -844,7 +831,7 @@ describe('dehydration and rehydration', () => { }) test('should dehydrate and hydrate mutation scopes', () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const onlineMock = mockOnlineManagerIsOnline(false) void executeMutation( @@ -868,7 +855,7 @@ describe('dehydration and rehydration', () => { // --- const parsed = JSON.parse(stringified) const hydrationCache = new MutationCache() - const hydrationClient = createQueryClient({ mutationCache: hydrationCache }) + const hydrationClient = new QueryClient({ mutationCache: hydrationCache }) hydrate(hydrationClient, parsed) @@ -879,20 +866,20 @@ describe('dehydration and rehydration', () => { test('should dehydrate promises for pending queries', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true } }, }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['success'], - queryFn: () => fetchData('success'), + queryFn: () => sleep(0).then(() => 'success'), }), ) const promise = queryClient.prefetchQuery({ queryKey: ['pending'], - queryFn: () => fetchData('pending', 10), + queryFn: () => sleep(10).then(() => 'pending'), }) const dehydrated = dehydrate(queryClient) @@ -905,27 +892,27 @@ describe('dehydration and rehydration', () => { test('should hydrate promises even without observers', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true } }, }) await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['success'], - queryFn: () => fetchData('success'), + queryFn: () => sleep(0).then(() => 'success'), }), ) void queryClient.prefetchQuery({ queryKey: ['pending'], - queryFn: () => fetchData('pending', 20), + queryFn: () => sleep(20).then(() => 'pending'), }) const dehydrated = dehydrate(queryClient) // no stringify/parse here because promises can't be serialized to json // but nextJs still can do it const hydrationCache = new QueryCache() - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ queryCache: hydrationCache, }) @@ -973,7 +960,7 @@ describe('dehydration and rehydration', () => { }) test('should transform promise result', async () => { - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true, @@ -984,12 +971,12 @@ describe('dehydration and rehydration', () => { const promise = queryClient.prefetchQuery({ queryKey: ['transformedStringToDate'], - queryFn: () => fetchDate('2024-01-01T00:00:00.000Z', 20), + queryFn: () => sleep(20).then(() => new Date('2024-01-01T00:00:00.000Z')), }) const dehydrated = dehydrate(queryClient) expect(dehydrated.queries[0]?.promise).toBeInstanceOf(Promise) - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ defaultOptions: { hydrate: { deserializeData: (data) => new Date(data), @@ -1009,7 +996,7 @@ describe('dehydration and rehydration', () => { }) test('should transform query data if promise is already resolved', async () => { - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true, @@ -1020,12 +1007,12 @@ describe('dehydration and rehydration', () => { const promise = queryClient.prefetchQuery({ queryKey: ['transformedStringToDate'], - queryFn: () => fetchDate('2024-01-01T00:00:00.000Z', 0), + queryFn: () => sleep(0).then(() => new Date('2024-01-01T00:00:00.000Z')), }) await vi.advanceTimersByTimeAsync(20) const dehydrated = dehydrate(queryClient) - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ defaultOptions: { hydrate: { deserializeData: (data) => new Date(data), @@ -1045,7 +1032,7 @@ describe('dehydration and rehydration', () => { }) test('should overwrite query in cache if hydrated query is newer (with transformation)', async () => { - const hydrationClient = createQueryClient({ + const hydrationClient = new QueryClient({ defaultOptions: { hydrate: { deserializeData: (data) => new Date(data), @@ -1055,13 +1042,14 @@ describe('dehydration and rehydration', () => { await vi.waitFor(() => hydrationClient.prefetchQuery({ queryKey: ['date'], - queryFn: () => fetchDate('2024-01-01T00:00:00.000Z', 5), + queryFn: () => + sleep(5).then(() => new Date('2024-01-01T00:00:00.000Z')), }), ) // --- - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true, @@ -1072,7 +1060,8 @@ describe('dehydration and rehydration', () => { await vi.waitFor(() => queryClient.prefetchQuery({ queryKey: ['date'], - queryFn: () => fetchDate('2024-01-02T00:00:00.000Z', 10), + queryFn: () => + sleep(10).then(() => new Date('2024-01-02T00:00:00.000Z')), }), ) const dehydrated = dehydrate(queryClient) @@ -1092,7 +1081,7 @@ describe('dehydration and rehydration', () => { test('should overwrite query in cache if hydrated query is newer (with promise)', async () => { // --- server --- - const serverQueryClient = createQueryClient({ + const serverQueryClient = new QueryClient({ defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true, @@ -1112,7 +1101,7 @@ describe('dehydration and rehydration', () => { // --- client --- - const clientQueryClient = createQueryClient() + const clientQueryClient = new QueryClient() clientQueryClient.setQueryData(['data'], 'old data', { updatedAt: 10 }) @@ -1133,7 +1122,7 @@ describe('dehydration and rehydration', () => { const countRef = { current: 0 } // --- server --- - const serverQueryClient = createQueryClient({ + const serverQueryClient = new QueryClient({ defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true, @@ -1156,7 +1145,7 @@ describe('dehydration and rehydration', () => { // --- client --- - const clientQueryClient = createQueryClient({ + const clientQueryClient = new QueryClient({ defaultOptions: { hydrate: { deserializeData: deserializeDataMock, @@ -1205,7 +1194,7 @@ describe('dehydration and rehydration', () => { test('should not redact errors when shouldRedactErrors returns false', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { dehydrate: { @@ -1237,7 +1226,7 @@ describe('dehydration and rehydration', () => { consoleMock.mockImplementation(() => undefined) const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { dehydrate: { @@ -1271,7 +1260,7 @@ describe('dehydration and rehydration', () => { consoleMock.mockImplementation(() => undefined) const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { dehydrate: { diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index db77d25144..e382a307c9 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -1,12 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { CancelledError, InfiniteQueryObserver } from '..' -import { createQueryClient, queryKey, sleep } from './utils' -import type { - InfiniteData, - InfiniteQueryObserverResult, - QueryCache, - QueryClient, -} from '..' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { CancelledError, InfiniteQueryObserver, QueryClient } from '..' +import type { InfiniteData, InfiniteQueryObserverResult, QueryCache } from '..' describe('InfiniteQueryBehavior', () => { let queryClient: QueryClient @@ -14,7 +9,7 @@ describe('InfiniteQueryBehavior', () => { beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryCache = queryClient.getQueryCache() queryClient.mount() }) diff --git a/packages/query-core/src/__tests__/infiniteQueryObserver.test-d.tsx b/packages/query-core/src/__tests__/infiniteQueryObserver.test-d.tsx index 1124c1e0b7..8e22fafde7 100644 --- a/packages/query-core/src/__tests__/infiniteQueryObserver.test-d.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryObserver.test-d.tsx @@ -1,13 +1,13 @@ import { afterEach, beforeEach, describe, expectTypeOf, it, vi } from 'vitest' -import { InfiniteQueryObserver } from '..' -import { createQueryClient, queryKey } from './utils' -import type { InfiniteData, QueryClient } from '..' +import { queryKey } from '@tanstack/query-test-utils' +import { InfiniteQueryObserver, QueryClient } from '..' +import type { InfiniteData } from '..' describe('InfiniteQueryObserver', () => { let queryClient: QueryClient beforeEach(() => { - queryClient = createQueryClient() + queryClient = new QueryClient() queryClient.mount() }) diff --git a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx index eac9241253..22328c71e1 100644 --- a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx @@ -1,14 +1,13 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { InfiniteQueryObserver } from '..' -import { createQueryClient, queryKey, sleep } from './utils' -import type { QueryClient } from '..' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { InfiniteQueryObserver, QueryClient } from '..' describe('InfiniteQueryObserver', () => { let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryClient.mount() }) diff --git a/packages/query-core/src/__tests__/mutationCache.test.tsx b/packages/query-core/src/__tests__/mutationCache.test.tsx index 7b7f6289a6..23cf7c1e40 100644 --- a/packages/query-core/src/__tests__/mutationCache.test.tsx +++ b/packages/query-core/src/__tests__/mutationCache.test.tsx @@ -1,6 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { MutationCache, MutationObserver } from '..' -import { createQueryClient, executeMutation, queryKey, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { MutationCache, MutationObserver, QueryClient } from '..' +import { executeMutation } from './utils' describe('mutationCache', () => { beforeEach(() => { @@ -18,7 +19,7 @@ describe('mutationCache', () => { const onSuccess = vi.fn() const onSettled = vi.fn() const testCache = new MutationCache({ onError, onSuccess, onSettled }) - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) try { await executeMutation( @@ -65,7 +66,7 @@ describe('mutationCache', () => { states.push(6) } const testCache = new MutationCache({ onError, onSettled }) - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) try { await executeMutation( @@ -99,7 +100,7 @@ describe('mutationCache', () => { const onSuccess = vi.fn() const onSettled = vi.fn() const testCache = new MutationCache({ onError, onSuccess, onSettled }) - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) try { await executeMutation( @@ -145,7 +146,7 @@ describe('mutationCache', () => { states.push(6) } const testCache = new MutationCache({ onSuccess, onSettled }) - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) executeMutation( testClient, @@ -175,7 +176,7 @@ describe('mutationCache', () => { const key = queryKey() const onMutate = vi.fn() const testCache = new MutationCache({ onMutate }) - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) try { await executeMutation( @@ -202,7 +203,7 @@ describe('mutationCache', () => { states.push(2) } const testCache = new MutationCache({ onMutate }) - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) executeMutation( testClient, @@ -226,7 +227,7 @@ describe('mutationCache', () => { describe('find', () => { test('should filter correctly', async () => { const testCache = new MutationCache() - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) const key = ['mutation', 'vars'] await executeMutation( testClient, @@ -253,7 +254,7 @@ describe('mutationCache', () => { describe('findAll', () => { test('should filter correctly', async () => { const testCache = new MutationCache() - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) await executeMutation( testClient, { @@ -296,7 +297,7 @@ describe('mutationCache', () => { describe('garbage collection', () => { test('should remove unused mutations after gcTime has elapsed', async () => { const testCache = new MutationCache() - const testClient = createQueryClient({ mutationCache: testCache }) + const testClient = new QueryClient({ mutationCache: testCache }) const onSuccess = vi.fn() executeMutation( testClient, @@ -316,7 +317,7 @@ describe('mutationCache', () => { }) test('should not remove mutations if there are active observers', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const observer = new MutationObserver(queryClient, { gcTime: 10, mutationFn: (input: number) => Promise.resolve(input), @@ -337,7 +338,7 @@ describe('mutationCache', () => { }) test('should be garbage collected later when unsubscribed and mutation is pending', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const onSuccess = vi.fn() const observer = new MutationObserver(queryClient, { gcTime: 10, @@ -363,7 +364,7 @@ describe('mutationCache', () => { }) test('should call callbacks even with gcTime 0 and mutation still pending', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const onSuccess = vi.fn() const observer = new MutationObserver(queryClient, { gcTime: 0, diff --git a/packages/query-core/src/__tests__/mutationObserver.test.tsx b/packages/query-core/src/__tests__/mutationObserver.test.tsx index 13347d56ed..9ad58ac501 100644 --- a/packages/query-core/src/__tests__/mutationObserver.test.tsx +++ b/packages/query-core/src/__tests__/mutationObserver.test.tsx @@ -1,14 +1,13 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { MutationObserver } from '..' -import { createQueryClient, queryKey, sleep } from './utils' -import type { QueryClient } from '..' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { MutationObserver, QueryClient } from '..' describe('mutationObserver', () => { let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryClient.mount() }) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index 9e1288e7e0..779daff63e 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -1,7 +1,8 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { MutationObserver } from '../mutationObserver' -import { createQueryClient, executeMutation, queryKey, sleep } from './utils' -import type { QueryClient } from '..' +import { QueryClient } from '..' +import { executeMutation } from './utils' import type { MutationState } from '../mutation' describe('mutations', () => { @@ -9,7 +10,7 @@ describe('mutations', () => { beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryClient.mount() }) diff --git a/packages/query-core/src/__tests__/notifyManager.test.tsx b/packages/query-core/src/__tests__/notifyManager.test.tsx index deb070f2c5..ea13421455 100644 --- a/packages/query-core/src/__tests__/notifyManager.test.tsx +++ b/packages/query-core/src/__tests__/notifyManager.test.tsx @@ -8,8 +8,8 @@ import { it, vi, } from 'vitest' +import { sleep } from '@tanstack/query-test-utils' import { createNotifyManager } from '../notifyManager' -import { sleep } from './utils' describe('notifyManager', () => { beforeEach(() => { diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index c6d58d8d91..bdcbbd962c 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -1,14 +1,14 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' -import { QueriesObserver } from '..' -import { createQueryClient, queryKey, sleep } from './utils' -import type { QueryClient, QueryObserverResult } from '..' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { QueriesObserver, QueryClient } from '..' +import type { QueryObserverResult } from '..' describe('queriesObserver', () => { let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryClient.mount() }) diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index 6d7485a6d7..fa38abad82 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -1,19 +1,18 @@ import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' -import { QueryObserver, dehydrate, hydrate, isCancelledError } from '..' import { - createQueryClient, - mockOnlineManagerIsOnline, mockVisibilityState, queryKey, - setIsServer, sleep, -} from './utils' -import type { - QueryCache, +} from '@tanstack/query-test-utils' +import { QueryClient, - QueryFunctionContext, - QueryObserverResult, + QueryObserver, + dehydrate, + hydrate, + isCancelledError, } from '..' +import { mockOnlineManagerIsOnline, setIsServer } from './utils' +import type { QueryCache, QueryFunctionContext, QueryObserverResult } from '..' describe('query', () => { let queryClient: QueryClient @@ -21,7 +20,7 @@ describe('query', () => { beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryCache = queryClient.getQueryCache() queryClient.mount() }) @@ -387,7 +386,7 @@ describe('query', () => { }) test('should reset to default state when created from hydration', async () => { - const client = createQueryClient() + const client = new QueryClient() await client.prefetchQuery({ queryKey: ['string'], queryFn: () => Promise.resolve('string'), @@ -395,7 +394,7 @@ describe('query', () => { const dehydrated = dehydrate(client) - const hydrationClient = createQueryClient() + const hydrationClient = new QueryClient() hydrate(hydrationClient, dehydrated) expect(hydrationClient.getQueryData(['string'])).toBe('string') diff --git a/packages/query-core/src/__tests__/queryCache.test.tsx b/packages/query-core/src/__tests__/queryCache.test.tsx index 6399e78733..feb995692d 100644 --- a/packages/query-core/src/__tests__/queryCache.test.tsx +++ b/packages/query-core/src/__tests__/queryCache.test.tsx @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, QueryObserver } from '..' -import { createQueryClient, queryKey, sleep } from './utils' describe('queryCache', () => { let queryClient: QueryClient @@ -8,7 +8,7 @@ describe('queryCache', () => { beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryCache = queryClient.getQueryCache() }) @@ -320,7 +320,7 @@ describe('queryCache', () => { const onSettled = vi.fn() const onError = vi.fn() const testCache = new QueryCache({ onSuccess, onError, onSettled }) - const testClient = createQueryClient({ queryCache: testCache }) + const testClient = new QueryClient({ queryCache: testCache }) testClient.prefetchQuery({ queryKey: key, queryFn: () => sleep(100).then(() => Promise.reject('error')), @@ -342,7 +342,7 @@ describe('queryCache', () => { const onSettled = vi.fn() const onError = vi.fn() const testCache = new QueryCache({ onSuccess, onError, onSettled }) - const testClient = createQueryClient({ queryCache: testCache }) + const testClient = new QueryClient({ queryCache: testCache }) testClient.prefetchQuery({ queryKey: key, queryFn: () => sleep(100).then(() => ({ data: 5 })), diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index 68a59c75b4..4f18534808 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -1,4 +1,5 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { MutationObserver, QueryClient, @@ -9,12 +10,7 @@ import { onlineManager, skipToken, } from '..' -import { - createQueryClient, - mockOnlineManagerIsOnline, - queryKey, - sleep, -} from './utils' +import { mockOnlineManagerIsOnline } from './utils' import type { QueryCache, QueryFunction, QueryObserverOptions } from '..' describe('queryClient', () => { @@ -23,7 +19,7 @@ describe('queryClient', () => { beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryCache = queryClient.getQueryCache() queryClient.mount() }) @@ -39,7 +35,7 @@ describe('queryClient', () => { const key = queryKey() const queryFn = () => 'data' - const testClient = createQueryClient({ + const testClient = new QueryClient({ defaultOptions: { queries: { queryFn } }, }) @@ -49,7 +45,7 @@ describe('queryClient', () => { test('should merge defaultOptions when query is added to cache', async () => { const key = queryKey() - const testClient = createQueryClient({ + const testClient = new QueryClient({ defaultOptions: { queries: { gcTime: Infinity }, }, @@ -64,7 +60,7 @@ describe('queryClient', () => { test('should get defaultOptions', () => { const queryFn = () => 'data' const defaultOptions = { queries: { queryFn } } - const testClient = createQueryClient({ + const testClient = new QueryClient({ defaultOptions, }) expect(testClient.getDefaultOptions()).toMatchObject(defaultOptions) @@ -150,7 +146,7 @@ describe('queryClient', () => { describe('defaultQueryOptions', () => { test('should default networkMode when persister is present', () => { expect( - createQueryClient({ + new QueryClient({ defaultOptions: { queries: { persister: 'ignore' as any, @@ -162,7 +158,7 @@ describe('queryClient', () => { test('should not default networkMode without persister', () => { expect( - createQueryClient({ + new QueryClient({ defaultOptions: { queries: { staleTime: 1000, @@ -174,7 +170,7 @@ describe('queryClient', () => { test('should not default networkMode when already present', () => { expect( - createQueryClient({ + new QueryClient({ defaultOptions: { queries: { persister: 'ignore' as any, @@ -208,7 +204,7 @@ describe('queryClient', () => { test('should use default options', () => { const key = queryKey() - const testClient = createQueryClient({ + const testClient = new QueryClient({ defaultOptions: { queries: { queryKeyHashFn: () => 'someKey' } }, }) const testCache = testClient.getQueryCache() @@ -1641,7 +1637,7 @@ describe('queryClient', () => { focusManager.setFocused(undefined) }) test('should notify queryCache and mutationCache if focused', async () => { - const testClient = createQueryClient() + const testClient = new QueryClient() testClient.mount() const queryCacheOnFocusSpy = vi.spyOn( @@ -1675,7 +1671,7 @@ describe('queryClient', () => { }) test('should notify queryCache and mutationCache if online', async () => { - const testClient = createQueryClient() + const testClient = new QueryClient() testClient.mount() const queryCacheOnFocusSpy = vi.spyOn( @@ -1991,7 +1987,7 @@ describe('queryClient', () => { }) test('should notify queryCache and mutationCache after multiple mounts and single unmount', async () => { - const testClient = createQueryClient() + const testClient = new QueryClient() testClient.mount() testClient.mount() testClient.unmount() @@ -2030,7 +2026,7 @@ describe('queryClient', () => { }) test('should not notify queryCache and mutationCache after multiple mounts/unmounts', () => { - const testClient = createQueryClient() + const testClient = new QueryClient() testClient.mount() testClient.mount() testClient.unmount() diff --git a/packages/query-core/src/__tests__/queryObserver.test-d.tsx b/packages/query-core/src/__tests__/queryObserver.test-d.tsx index afb01d83c6..f248c393de 100644 --- a/packages/query-core/src/__tests__/queryObserver.test-d.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test-d.tsx @@ -1,13 +1,13 @@ import { afterEach, beforeEach, describe, expectTypeOf, it } from 'vitest' -import { QueryObserver } from '..' -import { createQueryClient, queryKey } from './utils' -import type { DefaultError, QueryClient } from '..' +import { queryKey } from '@tanstack/query-test-utils' +import { QueryClient, QueryObserver } from '..' +import type { DefaultError } from '..' describe('queryObserver', () => { let queryClient: QueryClient beforeEach(() => { - queryClient = createQueryClient() + queryClient = new QueryClient() queryClient.mount() }) @@ -104,7 +104,7 @@ describe('queryObserver', () => { it('previousQuery should have typed queryKey', () => { const testQueryKey = ['SomeQuery', 42, { foo: 'bar' }] as const - new QueryObserver(createQueryClient(), { + new QueryObserver(new QueryClient(), { queryKey: testQueryKey, placeholderData: (_, previousQuery) => { if (previousQuery) { @@ -121,7 +121,7 @@ describe('queryObserver', () => { name = 'CustomError' as const } - new QueryObserver(createQueryClient(), { + new QueryObserver(new QueryClient(), { queryKey: ['key'], placeholderData: (_, previousQuery) => { if (previousQuery) { @@ -137,7 +137,7 @@ describe('queryObserver', () => { it('previousData should have the same type as query data', () => { const queryData = { foo: 'bar' } as const - new QueryObserver(createQueryClient(), { + new QueryObserver(new QueryClient(), { queryKey: ['key'], queryFn: () => queryData, select: (data) => data.foo, diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index a977a4f735..6b8b70ace9 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -7,16 +7,16 @@ import { test, vi, } from 'vitest' -import { QueryObserver, focusManager } from '..' -import { createQueryClient, queryKey, sleep } from './utils' -import type { QueryClient, QueryObserverResult } from '..' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { QueryClient, QueryObserver, focusManager } from '..' +import type { QueryObserverResult } from '..' describe('queryObserver', () => { let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient({ + queryClient = new QueryClient({ defaultOptions: { queries: { experimental_prefetchInRender: true, diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index eadeebea49..931e90b9ad 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -1,15 +1,14 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { streamedQuery } from '../streamedQuery' -import { QueryObserver } from '..' -import { createQueryClient, queryKey, sleep } from './utils' -import type { QueryClient } from '..' +import { QueryClient, QueryObserver } from '..' describe('streamedQuery', () => { let queryClient: QueryClient beforeEach(() => { vi.useFakeTimers() - queryClient = createQueryClient() + queryClient = new QueryClient() queryClient.mount() }) diff --git a/packages/query-core/src/__tests__/utils.test.tsx b/packages/query-core/src/__tests__/utils.test.tsx index a162a5ab5f..8c5bc6b2dc 100644 --- a/packages/query-core/src/__tests__/utils.test.tsx +++ b/packages/query-core/src/__tests__/utils.test.tsx @@ -1,4 +1,5 @@ import { describe, expect, it, vi } from 'vitest' +import { QueryClient } from '..' import { addToEnd, addToStart, @@ -13,7 +14,6 @@ import { shallowEqualObjects, } from '../utils' import { Mutation } from '../mutation' -import { createQueryClient } from './utils' describe('core/utils', () => { describe('hashQueryKeyByOptions', () => { @@ -420,7 +420,7 @@ describe('core/utils', () => { describe('matchMutation', () => { it('should return false if mutationKey options is undefined', () => { const filters = { mutationKey: ['key1'] } - const queryClient = createQueryClient() + const queryClient = new QueryClient() const mutation = new Mutation({ mutationId: 1, mutationCache: queryClient.getMutationCache(), diff --git a/packages/query-core/src/__tests__/utils.ts b/packages/query-core/src/__tests__/utils.ts index 8d876afc3c..f9ef89d765 100644 --- a/packages/query-core/src/__tests__/utils.ts +++ b/packages/query-core/src/__tests__/utils.ts @@ -1,18 +1,8 @@ import { vi } from 'vitest' -import { QueryClient, onlineManager } from '..' +import { onlineManager } from '..' import * as utils from '../utils' import type { MockInstance } from 'vitest' -import type { MutationOptions, QueryClientConfig } from '..' - -export function createQueryClient(config?: QueryClientConfig): QueryClient { - return new QueryClient(config) -} - -export function mockVisibilityState( - value: DocumentVisibilityState, -): MockInstance<() => DocumentVisibilityState> { - return vi.spyOn(document, 'visibilityState', 'get').mockReturnValue(value) -} +import type { MutationOptions, QueryClient } from '..' export function mockOnlineManagerIsOnline( value: boolean, @@ -20,18 +10,6 @@ export function mockOnlineManagerIsOnline( return vi.spyOn(onlineManager, 'isOnline').mockReturnValue(value) } -let queryKeyCount = 0 -export function queryKey(): Array { - queryKeyCount++ - return [`query_${queryKeyCount}`] -} - -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} - export function executeMutation( queryClient: QueryClient, options: MutationOptions, diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 0cac7b9e57..11a00a05b7 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -62,6 +62,7 @@ "@tanstack/query-core": "workspace:*" }, "devDependencies": { + "@tanstack/query-test-utils": "workspace:*", "npm-run-all2": "^5.0.0" } } diff --git a/packages/query-persist-client-core/src/__tests__/persist.test.ts b/packages/query-persist-client-core/src/__tests__/persist.test.ts index 07cce75f09..14f7d0720b 100644 --- a/packages/query-persist-client-core/src/__tests__/persist.test.ts +++ b/packages/query-persist-client-core/src/__tests__/persist.test.ts @@ -1,18 +1,14 @@ import { describe, expect, test, vi } from 'vitest' -import { QueriesObserver } from '@tanstack/query-core' +import { QueriesObserver, QueryClient } from '@tanstack/query-core' import { persistQueryClientRestore, persistQueryClientSubscribe, } from '../persist' -import { - createMockPersister, - createQueryClient, - createSpyPersister, -} from './utils' +import { createMockPersister, createSpyPersister } from './utils' describe('persistQueryClientSubscribe', () => { test('should persist mutations', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const persister = createMockPersister() @@ -36,7 +32,7 @@ describe('persistQueryClientSubscribe', () => { describe('persistQueryClientSave', () => { test('should not be triggered on observer type events', () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const persister = createSpyPersister() @@ -77,7 +73,7 @@ describe('persistQueryClientRestore', () => { .spyOn(console, 'warn') .mockImplementation(() => undefined) - const queryClient = createQueryClient() + const queryClient = new QueryClient() const restoreError = new Error('Error restoring client') @@ -109,7 +105,7 @@ describe('persistQueryClientRestore', () => { .spyOn(console, 'warn') .mockImplementation(() => undefined) - const queryClient = createQueryClient() + const queryClient = new QueryClient() const restoreError = new Error('Error restoring client') const removeError = new Error('Error removing client') @@ -135,7 +131,7 @@ describe('persistQueryClientRestore', () => { }) test('should rethrow error in `removeClient`', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const persister = createSpyPersister() const removeError = new Error('Error removing client') diff --git a/packages/query-persist-client-core/src/__tests__/utils.ts b/packages/query-persist-client-core/src/__tests__/utils.ts index ee5ac7f0d4..1c9b4682e7 100644 --- a/packages/query-persist-client-core/src/__tests__/utils.ts +++ b/packages/query-persist-client-core/src/__tests__/utils.ts @@ -1,18 +1,7 @@ import { vi } from 'vitest' -import { QueryClient } from '@tanstack/query-core' -import type { QueryClientConfig } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' import type { PersistedClient, Persister } from '../persist' -export function createQueryClient(config?: QueryClientConfig): QueryClient { - return new QueryClient(config) -} - -function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} - export function createMockPersister(): Persister { let storedState: PersistedClient | undefined diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 9c1be23407..805307ef27 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -63,6 +63,7 @@ "@tanstack/query-persist-client-core": "workspace:*" }, "devDependencies": { + "@tanstack/query-test-utils": "workspace:*", "npm-run-all2": "^5.0.0" } } diff --git a/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts b/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts index ae1a1a008d..5f75d66c21 100644 --- a/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts +++ b/packages/query-sync-storage-persister/src/__tests__/storageIsFull.test.ts @@ -6,8 +6,8 @@ import { dehydrate, } from '@tanstack/query-core' import { removeOldestQuery } from '@tanstack/query-persist-client-core' +import { sleep } from '@tanstack/query-test-utils' import { createSyncStoragePersister } from '../index' -import { sleep } from './utils' function getMockStorage(limitSize?: number) { const dataSet = new Map() diff --git a/packages/query-sync-storage-persister/src/__tests__/utils.ts b/packages/query-sync-storage-persister/src/__tests__/utils.ts deleted file mode 100644 index 1a3a619a22..0000000000 --- a/packages/query-sync-storage-persister/src/__tests__/utils.ts +++ /dev/null @@ -1,5 +0,0 @@ -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} diff --git a/packages/query-test-utils/eslint.config.js b/packages/query-test-utils/eslint.config.js new file mode 100644 index 0000000000..df75435c7e --- /dev/null +++ b/packages/query-test-utils/eslint.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import rootConfig from './root.eslint.config.js' + +export default [...rootConfig] diff --git a/packages/query-test-utils/package.json b/packages/query-test-utils/package.json new file mode 100644 index 0000000000..434c84a7a3 --- /dev/null +++ b/packages/query-test-utils/package.json @@ -0,0 +1,40 @@ +{ + "name": "@tanstack/query-test-utils", + "version": "0.0.0", + "description": "Internal test utilities for TanStack Query", + "author": "Jonghyeon Ko ", + "private": true, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/TanStack/query.git", + "directory": "packages/query-test-utils" + }, + "homepage": "https://tanstack.com/query", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "main": "src/index.ts", + "types": "src/index.ts", + "module": "src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./src/index.ts" + }, + "./package.json": "./package.json" + }, + "scripts": { + "clean": "premove ./build ./coverage ./dist-ts", + "test:eslint": "eslint ./src", + "test:types": "npm-run-all --serial test:types:*", + "test:types:tscurrent": "tsc --build", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch" + }, + "type": "module", + "devDependencies": { + "npm-run-all2": "^5.0.0" + } +} diff --git a/packages/query-test-utils/root.eslint.config.js b/packages/query-test-utils/root.eslint.config.js new file mode 120000 index 0000000000..35dedbe5a4 --- /dev/null +++ b/packages/query-test-utils/root.eslint.config.js @@ -0,0 +1 @@ +../../eslint.config.js \ No newline at end of file diff --git a/packages/query-test-utils/src/__test__/queryKey.test.ts b/packages/query-test-utils/src/__test__/queryKey.test.ts new file mode 100644 index 0000000000..d403f70b01 --- /dev/null +++ b/packages/query-test-utils/src/__test__/queryKey.test.ts @@ -0,0 +1,12 @@ +import { queryKey } from 'src/queryKey' +import { describe, expect, it } from 'vitest' + +describe('queryKey', () => { + it('should return a query key', () => { + const key = queryKey() + expect(key).toEqual(['query_1']) + }) + it('should return a new query key each time', () => { + expect(queryKey()).not.toEqual(queryKey()) + }) +}) diff --git a/packages/query-test-utils/src/__test__/sleep.test.ts b/packages/query-test-utils/src/__test__/sleep.test.ts new file mode 100644 index 0000000000..db52331929 --- /dev/null +++ b/packages/query-test-utils/src/__test__/sleep.test.ts @@ -0,0 +1,11 @@ +import { describe, expect, it } from 'vitest' +import { sleep } from '../sleep' + +describe('sleep', () => { + it('should sleep for the given amount of time', async () => { + const start = Date.now() + await sleep(100) + const end = Date.now() + expect(end - start).toBeGreaterThanOrEqual(100) + }) +}) diff --git a/packages/query-test-utils/src/index.ts b/packages/query-test-utils/src/index.ts new file mode 100644 index 0000000000..5bd8473b3a --- /dev/null +++ b/packages/query-test-utils/src/index.ts @@ -0,0 +1,3 @@ +export { sleep } from './sleep' +export { queryKey } from './queryKey' +export { mockVisibilityState } from './mockVisibilityState' diff --git a/packages/query-test-utils/src/mockVisibilityState.ts b/packages/query-test-utils/src/mockVisibilityState.ts new file mode 100644 index 0000000000..a3a043adab --- /dev/null +++ b/packages/query-test-utils/src/mockVisibilityState.ts @@ -0,0 +1,7 @@ +import { vi } from 'vitest' +import type { MockInstance } from 'vitest' + +export const mockVisibilityState = ( + value: DocumentVisibilityState, +): MockInstance<() => DocumentVisibilityState> => + vi.spyOn(document, 'visibilityState', 'get').mockReturnValue(value) diff --git a/packages/query-test-utils/src/queryKey.ts b/packages/query-test-utils/src/queryKey.ts new file mode 100644 index 0000000000..6c2fc03505 --- /dev/null +++ b/packages/query-test-utils/src/queryKey.ts @@ -0,0 +1,6 @@ +let queryKeyCount = 0 + +export const queryKey = (): Array => { + queryKeyCount++ + return [`query_${queryKeyCount}`] +} diff --git a/packages/query-test-utils/src/sleep.ts b/packages/query-test-utils/src/sleep.ts new file mode 100644 index 0000000000..3df1811e99 --- /dev/null +++ b/packages/query-test-utils/src/sleep.ts @@ -0,0 +1,4 @@ +export const sleep = (ms: number): Promise => + new Promise((resolve) => { + setTimeout(resolve, ms) + }) diff --git a/packages/query-test-utils/tsconfig.json b/packages/query-test-utils/tsconfig.json new file mode 100644 index 0000000000..21715ae3ce --- /dev/null +++ b/packages/query-test-utils/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist-ts", + "rootDir": ".", + "baseUrl": "." + }, + "include": ["src", "*.config.js", "package.json"] +} diff --git a/packages/query-test-utils/vite.config.ts b/packages/query-test-utils/vite.config.ts new file mode 100644 index 0000000000..730e2b979c --- /dev/null +++ b/packages/query-test-utils/vite.config.ts @@ -0,0 +1,25 @@ +import { defineConfig } from 'vitest/config' + +import packageJson from './package.json' + +export default defineConfig({ + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, + }, + test: { + name: packageJson.name, + dir: './src', + watch: false, + coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, + typecheck: { enabled: true }, + restoreMocks: true, + }, +}) diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 7a67aaed1e..53b5445614 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -62,6 +62,7 @@ "@tanstack/query-persist-client-core": "workspace:*" }, "devDependencies": { + "@tanstack/query-test-utils": "workspace:*", "@tanstack/react-query": "workspace:*", "@testing-library/react": "^16.1.0", "@types/react": "^19.0.1", diff --git a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index e47a1f75f4..74bccab533 100644 --- a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -3,9 +3,8 @@ import * as React from 'react' import { fireEvent, render, waitFor } from '@testing-library/react' import { QueryClient, useQueries, useQuery } from '@tanstack/react-query' import { persistQueryClientSave } from '@tanstack/query-persist-client-core' - +import { queryKey, sleep } from '@tanstack/query-test-utils' import { PersistQueryClientProvider } from '../PersistQueryClientProvider' -import { createQueryClient, queryKey, sleep } from './utils' import type { PersistedClient, Persister, @@ -56,7 +55,7 @@ describe('PersistQueryClientProvider', () => { const key = queryKey() const states: Array> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -130,7 +129,7 @@ describe('PersistQueryClientProvider', () => { test('should subscribe correctly in StrictMode', async () => { const key = queryKey() - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -195,7 +194,7 @@ describe('PersistQueryClientProvider', () => { const key = queryKey() const states: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -274,7 +273,7 @@ describe('PersistQueryClientProvider', () => { const key = queryKey() const states: Array> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -354,7 +353,7 @@ describe('PersistQueryClientProvider', () => { const key = queryKey() const states: Array> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -422,7 +421,7 @@ describe('PersistQueryClientProvider', () => { test('should call onSuccess after successful restoring', async () => { const key = queryKey() - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -472,7 +471,7 @@ describe('PersistQueryClientProvider', () => { test('should await onSuccess after successful restoring', async () => { const key = queryKey() - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -537,7 +536,7 @@ describe('PersistQueryClientProvider', () => { .mockImplementation(() => undefined) consoleMock.mockImplementation(() => undefined) - const queryClient = createQueryClient() + const queryClient = new QueryClient() const removeClient = vi.fn() const onSuccess = vi.fn() const onError = vi.fn() @@ -587,7 +586,7 @@ describe('PersistQueryClientProvider', () => { const key = queryKey() const states: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -722,7 +721,7 @@ describe('PersistQueryClientProvider', () => { const key = queryKey() - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), diff --git a/packages/react-query-persist-client/src/__tests__/utils.ts b/packages/react-query-persist-client/src/__tests__/utils.ts deleted file mode 100644 index 1dd6aa1b48..0000000000 --- a/packages/react-query-persist-client/src/__tests__/utils.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { QueryClient } from '@tanstack/react-query' -import type { QueryClientConfig } from '@tanstack/react-query' - -export function createQueryClient(config?: QueryClientConfig): QueryClient { - return new QueryClient(config) -} - -let queryKeyCount = 0 -export function queryKey(): Array { - queryKeyCount++ - return [`query_${queryKeyCount}`] -} - -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} diff --git a/packages/react-query/package.json b/packages/react-query/package.json index ee4f33d50c..36bf1d6042 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -69,6 +69,7 @@ }, "devDependencies": { "@tanstack/query-persist-client-core": "workspace:*", + "@tanstack/query-test-utils": "workspace:*", "@testing-library/react": "^16.1.0", "@testing-library/react-render-stream": "^2.0.0", "@types/react": "^19.0.1", diff --git a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx index f81c028948..aea35826c2 100644 --- a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx @@ -1,8 +1,8 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import * as React from 'react' import { render } from '@testing-library/react' - import * as coreModule from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' import { HydrationBoundary, QueryClient, @@ -10,14 +10,13 @@ import { dehydrate, useQuery, } from '..' -import { createQueryClient, sleep } from './utils' describe('React hydration', () => { let stringifiedState: string beforeEach(async () => { vi.useFakeTimers() - const queryClient = createQueryClient() + const queryClient = new QueryClient() queryClient.prefetchQuery({ queryKey: ['string'], queryFn: () => sleep(10).then(() => ['stringCached']), @@ -33,7 +32,7 @@ describe('React hydration', () => { test('should hydrate queries to the cache on context', async () => { const dehydratedState = JSON.parse(stringifiedState) - const queryClient = createQueryClient() + const queryClient = new QueryClient() function Page() { const { data } = useQuery({ @@ -101,7 +100,7 @@ describe('React hydration', () => { describe('ReactQueryCacheProvider with hydration support', () => { test('should hydrate new queries if queries change', async () => { const dehydratedState = JSON.parse(stringifiedState) - const queryClient = createQueryClient() + const queryClient = new QueryClient() function Page({ queryKey }: { queryKey: [string] }) { const { data } = useQuery({ @@ -128,7 +127,7 @@ describe('React hydration', () => { await vi.advanceTimersByTimeAsync(20) expect(rendered.getByText('string')).toBeInTheDocument() - const intermediateClient = createQueryClient() + const intermediateClient = new QueryClient() intermediateClient.prefetchQuery({ queryKey: ['string'], @@ -174,7 +173,7 @@ describe('React hydration', () => { // since they don't have any observers on the current page that would update. test('should hydrate new but not existing queries if transition is aborted', async () => { const initialDehydratedState = JSON.parse(stringifiedState) - const queryClient = createQueryClient() + const queryClient = new QueryClient() function Page({ queryKey }: { queryKey: [string] }) { const { data } = useQuery({ @@ -201,7 +200,7 @@ describe('React hydration', () => { await vi.advanceTimersByTimeAsync(20) expect(rendered.getByText('string')).toBeInTheDocument() - const intermediateClient = createQueryClient() + const intermediateClient = new QueryClient() intermediateClient.prefetchQuery({ queryKey: ['string'], queryFn: () => sleep(20).then(() => ['should not change']), @@ -270,7 +269,7 @@ describe('React hydration', () => { test('should hydrate queries to new cache if cache changes', async () => { const dehydratedState = JSON.parse(stringifiedState) - const queryClient = createQueryClient() + const queryClient = new QueryClient() function Page() { const { data } = useQuery({ @@ -296,7 +295,7 @@ describe('React hydration', () => { expect(rendered.getByText('stringCached')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(20) expect(rendered.getByText('string')).toBeInTheDocument() - const newClientQueryClient = createQueryClient() + const newClientQueryClient = new QueryClient() rendered.rerender( @@ -315,7 +314,7 @@ describe('React hydration', () => { }) test('should not hydrate queries if state is null', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') @@ -343,7 +342,7 @@ describe('React hydration', () => { }) test('should not hydrate queries if state is undefined', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const hydrateSpy = vi.spyOn(coreModule, 'hydrate') diff --git a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx index 53ebf7bafb..ebf599c1a4 100644 --- a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx @@ -1,7 +1,13 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { render } from '@testing-library/react' -import { QueryCache, QueryClientProvider, useQuery, useQueryClient } from '..' -import { createQueryClient, queryKey, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + QueryClientProvider, + useQuery, + useQueryClient, +} from '..' describe('QueryClientProvider', () => { beforeEach(() => { @@ -16,7 +22,7 @@ describe('QueryClientProvider', () => { const key = queryKey() const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) function Page() { const { data } = useQuery({ @@ -49,8 +55,8 @@ describe('QueryClientProvider', () => { const queryCache1 = new QueryCache() const queryCache2 = new QueryCache() - const queryClient1 = createQueryClient({ queryCache: queryCache1 }) - const queryClient2 = createQueryClient({ queryCache: queryCache2 }) + const queryClient1 = new QueryClient({ queryCache: queryCache1 }) + const queryClient2 = new QueryClient({ queryCache: queryCache2 }) function Page1() { const { data } = useQuery({ @@ -101,7 +107,7 @@ describe('QueryClientProvider', () => { const key = queryKey() const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { queries: { diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index eeb19512d9..8bc5dd9923 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -2,20 +2,21 @@ import { describe, expect, it, vi } from 'vitest' import { fireEvent, waitFor } from '@testing-library/react' import { ErrorBoundary } from 'react-error-boundary' import * as React from 'react' - +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, + QueryClient, QueryErrorResetBoundary, useQueries, useQuery, useSuspenseQueries, useSuspenseQuery, } from '..' -import { createQueryClient, queryKey, renderWithClient, sleep } from './utils' +import { renderWithClient } from './utils' describe('QueryErrorResetBoundary', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) describe('useQuery', () => { it('should retry fetch if the reset error boundary has been reset', async () => { diff --git a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx index 800e708559..13a2e3aed9 100644 --- a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx @@ -1,12 +1,12 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import * as React from 'react' -import { QueryCache, hashKey } from '@tanstack/query-core' import { PERSISTER_KEY_PREFIX, experimental_createPersister, } from '@tanstack/query-persist-client-core' -import { useQuery } from '..' -import { createQueryClient, queryKey, renderWithClient, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { QueryCache, QueryClient, hashKey, useQuery } from '..' +import { renderWithClient } from './utils' describe('fine grained persister', () => { beforeEach(() => { @@ -18,7 +18,7 @@ describe('fine grained persister', () => { }) const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should restore query state from persister and not refetch', async () => { const key = queryKey() diff --git a/packages/react-query/src/__tests__/ssr-hydration.test.tsx b/packages/react-query/src/__tests__/ssr-hydration.test.tsx index 1edf18d564..07f469b568 100644 --- a/packages/react-query/src/__tests__/ssr-hydration.test.tsx +++ b/packages/react-query/src/__tests__/ssr-hydration.test.tsx @@ -2,15 +2,15 @@ import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' import { hydrateRoot } from 'react-dom/client' import { act } from 'react' import * as ReactDOMServer from 'react-dom/server' - import { QueryCache, + QueryClient, QueryClientProvider, dehydrate, hydrate, useQuery, } from '..' -import { createQueryClient, setIsServer } from './utils' +import { setIsServer } from './utils' const ReactHydrate = (element: React.ReactElement, container: Element) => { let root: any @@ -66,7 +66,7 @@ describe('Server side rendering with de/rehydration', () => { setIsServer(true) const prefetchCache = new QueryCache() - const prefetchClient = createQueryClient({ + const prefetchClient = new QueryClient({ queryCache: prefetchCache, }) await prefetchClient.prefetchQuery({ @@ -75,7 +75,7 @@ describe('Server side rendering with de/rehydration', () => { }) const dehydratedStateServer = dehydrate(prefetchClient) const renderCache = new QueryCache() - const renderClient = createQueryClient({ + const renderClient = new QueryClient({ queryCache: renderCache, }) hydrate(renderClient, dehydratedStateServer) @@ -99,7 +99,7 @@ describe('Server side rendering with de/rehydration', () => { el.innerHTML = markup const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) hydrate(queryClient, JSON.parse(stringifiedState)) const unmount = ReactHydrate( @@ -143,7 +143,7 @@ describe('Server side rendering with de/rehydration', () => { // -- Server part -- setIsServer(true) const prefetchCache = new QueryCache() - const prefetchClient = createQueryClient({ + const prefetchClient = new QueryClient({ queryCache: prefetchCache, }) await prefetchClient.prefetchQuery({ @@ -152,7 +152,7 @@ describe('Server side rendering with de/rehydration', () => { }) const dehydratedStateServer = dehydrate(prefetchClient) const renderCache = new QueryCache() - const renderClient = createQueryClient({ + const renderClient = new QueryClient({ queryCache: renderCache, }) hydrate(renderClient, dehydratedStateServer) @@ -175,7 +175,7 @@ describe('Server side rendering with de/rehydration', () => { el.innerHTML = markup const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) hydrate(queryClient, JSON.parse(stringifiedState)) const unmount = ReactHydrate( @@ -219,9 +219,9 @@ describe('Server side rendering with de/rehydration', () => { // -- Server part -- setIsServer(true) - const prefetchClient = createQueryClient() + const prefetchClient = new QueryClient() const dehydratedStateServer = dehydrate(prefetchClient) - const renderClient = createQueryClient() + const renderClient = new QueryClient() hydrate(renderClient, dehydratedStateServer) const markup = ReactDOMServer.renderToString( @@ -242,7 +242,7 @@ describe('Server side rendering with de/rehydration', () => { el.innerHTML = markup const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) hydrate(queryClient, JSON.parse(stringifiedState)) const unmount = ReactHydrate( diff --git a/packages/react-query/src/__tests__/ssr.test.tsx b/packages/react-query/src/__tests__/ssr.test.tsx index 49d51abcaf..0fdd248159 100644 --- a/packages/react-query/src/__tests__/ssr.test.tsx +++ b/packages/react-query/src/__tests__/ssr.test.tsx @@ -1,8 +1,15 @@ import * as React from 'react' import { renderToString } from 'react-dom/server' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { QueryCache, QueryClientProvider, useInfiniteQuery, useQuery } from '..' -import { createQueryClient, queryKey, setIsServer } from './utils' +import { queryKey } from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + QueryClientProvider, + useInfiniteQuery, + useQuery, +} from '..' +import { setIsServer } from './utils' describe('Server Side Rendering', () => { setIsServer(true) @@ -17,7 +24,7 @@ describe('Server Side Rendering', () => { it('should not trigger fetch', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key = queryKey() const queryFn = vi.fn().mockReturnValue('data') @@ -46,7 +53,7 @@ describe('Server Side Rendering', () => { it('should add prefetched data to cache', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key = queryKey() const fetchFn = () => Promise.resolve('data') const data = await queryClient.fetchQuery({ @@ -60,7 +67,7 @@ describe('Server Side Rendering', () => { it('should return existing data from the cache', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key = queryKey() const queryFn = vi.fn(async () => { await vi.advanceTimersByTimeAsync(10) @@ -96,7 +103,7 @@ describe('Server Side Rendering', () => { const key = queryKey() const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) function Page() { const [page, setPage] = React.useState(1) @@ -128,7 +135,7 @@ describe('Server Side Rendering', () => { it('useInfiniteQuery should return the correct state', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key = queryKey() const queryFn = vi.fn(async () => { await vi.advanceTimersByTimeAsync(5) diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index cc8ae1fe7f..c00c036c0a 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -9,8 +9,8 @@ import { it, vi, } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, useSuspenseQuery } from '..' -import { queryKey } from './utils' import type { QueryKey } from '..' function renderWithSuspense(client: QueryClient, ui: React.ReactNode) { diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index 433bc3fa2c..e114642019 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -5,19 +5,15 @@ import { createRenderStream, useTrackRenders, } from '@testing-library/react-render-stream' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, + QueryClient, QueryClientProvider, keepPreviousData, useInfiniteQuery, } from '..' -import { - createQueryClient, - queryKey, - renderWithClient, - setActTimeout, - sleep, -} from './utils' +import { renderWithClient, setActTimeout } from './utils' import type { InfiniteData, QueryFunctionContext, @@ -51,7 +47,7 @@ const fetchItems = async ( describe('useInfiniteQuery', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { queries: { diff --git a/packages/react-query/src/__tests__/useIsFetching.test.tsx b/packages/react-query/src/__tests__/useIsFetching.test.tsx index bed5506fe9..4b2ca7e0f6 100644 --- a/packages/react-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/react-query/src/__tests__/useIsFetching.test.tsx @@ -1,13 +1,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' -import { QueryCache, useIsFetching, useQuery } from '..' -import { - createQueryClient, - queryKey, - renderWithClient, - setActTimeout, -} from './utils' +import { queryKey } from '@tanstack/query-test-utils' +import { QueryCache, QueryClient, useIsFetching, useQuery } from '..' +import { renderWithClient, setActTimeout } from './utils' describe('useIsFetching', () => { beforeEach(() => { @@ -21,7 +17,7 @@ describe('useIsFetching', () => { // See https://github.com/tannerlinsley/react-query/issues/105 it('should update as queries start and stop fetching', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key = queryKey() function IsFetching() { @@ -72,7 +68,7 @@ describe('useIsFetching', () => { it('should not update state while rendering', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key1 = queryKey() const key2 = queryKey() @@ -133,7 +129,7 @@ describe('useIsFetching', () => { }) it('should be able to filter', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const key1 = queryKey() const key2 = queryKey() @@ -202,7 +198,7 @@ describe('useIsFetching', () => { }) it('should show the correct fetching state when mounted after a query', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const key = queryKey() function Page() { @@ -235,7 +231,7 @@ describe('useIsFetching', () => { }) it('should use provided custom queryClient', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const key = queryKey() function Page() { diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 20aad96b95..d98ec6d1df 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -4,21 +4,19 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' -import { MutationCache, QueryCache, useMutation } from '..' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { MutationCache, QueryCache, QueryClient, useMutation } from '..' import { - createQueryClient, mockOnlineManagerIsOnline, - queryKey, renderWithClient, setActTimeout, - sleep, } from './utils' import type { UseMutationResult } from '../types' describe('useMutation', () => { let queryCache = new QueryCache() let mutationCache = new MutationCache() - let queryClient = createQueryClient({ + let queryClient = new QueryClient({ queryCache, mutationCache, }) @@ -26,7 +24,7 @@ describe('useMutation', () => { beforeEach(() => { queryCache = new QueryCache() mutationCache = new MutationCache() - queryClient = createQueryClient({ + queryClient = new QueryClient({ queryCache, }) vi.useFakeTimers() @@ -826,7 +824,7 @@ describe('useMutation', () => { const errorMock = vi.fn() const successMock = vi.fn() - const queryClientMutationMeta = createQueryClient({ + const queryClientMutationMeta = new QueryClient({ mutationCache: new MutationCache({ onSuccess: (_, __, ___, mutation) => { successMock(mutation.meta?.metaSuccessMessage) diff --git a/packages/react-query/src/__tests__/useMutationState.test.tsx b/packages/react-query/src/__tests__/useMutationState.test.tsx index 1f88ed6200..5797172030 100644 --- a/packages/react-query/src/__tests__/useMutationState.test.tsx +++ b/packages/react-query/src/__tests__/useMutationState.test.tsx @@ -1,9 +1,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' -import { useIsMutating, useMutationState } from '../useMutationState' -import { useMutation } from '../useMutation' -import { createQueryClient, renderWithClient, sleep } from './utils' +import { sleep } from '@tanstack/query-test-utils' +import { QueryClient, useIsMutating, useMutation, useMutationState } from '..' +import { renderWithClient } from './utils' describe('useIsMutating', () => { beforeEach(() => { @@ -16,7 +16,7 @@ describe('useIsMutating', () => { it('should return the number of fetching mutations', async () => { const isMutatingArray: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() function IsMutating() { const isMutating = useIsMutating() @@ -72,7 +72,7 @@ describe('useIsMutating', () => { it('should filter correctly by mutationKey', async () => { const isMutatingArray: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() function IsMutating() { const isMutating = useIsMutating({ mutationKey: ['mutation1'] }) @@ -104,7 +104,7 @@ describe('useIsMutating', () => { it('should filter correctly by predicate', async () => { const isMutatingArray: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() function IsMutating() { const isMutating = useIsMutating({ @@ -138,7 +138,7 @@ describe('useIsMutating', () => { }) it('should use provided custom queryClient', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() function Page() { const isMutating = useIsMutating({}, queryClient) @@ -171,7 +171,7 @@ describe('useIsMutating', () => { describe('useMutationState', () => { it('should return variables after calling mutate', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const variables: Array> = [] const mutationKey = ['mutation'] diff --git a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx index 326149991d..0ebd96c68e 100644 --- a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx @@ -1,14 +1,14 @@ import { describe, expect, it, vi } from 'vitest' import React from 'react' import { fireEvent, waitFor } from '@testing-library/react' - +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, + QueryClient, usePrefetchInfiniteQuery, useSuspenseInfiniteQuery, } from '..' -import { createQueryClient, queryKey, renderWithClient, sleep } from './utils' - +import { renderWithClient } from './utils' import type { InfiniteData, UseSuspenseInfiniteQueryOptions } from '..' import type { Mock } from 'vitest' @@ -41,7 +41,7 @@ const generateInfiniteQueryOptions = ( describe('usePrefetchInfiniteQuery', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const Fallback = vi.fn().mockImplementation(() =>
Loading...
) diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx index 894d7c2ac2..2f8fdeca54 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx @@ -2,13 +2,15 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import React from 'react' import { fireEvent } from '@testing-library/react' import { ErrorBoundary } from 'react-error-boundary' +import { queryKey } from '@tanstack/query-test-utils' import { QueryCache, + QueryClient, usePrefetchQuery, useQueryErrorResetBoundary, useSuspenseQuery, } from '..' -import { createQueryClient, queryKey, renderWithClient } from './utils' +import { renderWithClient } from './utils' import type { UseSuspenseQueryOptions } from '..' @@ -23,7 +25,7 @@ const generateQueryFn = (data: string) => describe('usePrefetchQuery', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) beforeEach(() => { vi.useFakeTimers() diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index 8bb81fffcc..b885def59c 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -2,9 +2,15 @@ import { describe, expect, expectTypeOf, it, vi } from 'vitest' import { fireEvent, render, waitFor } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' -import { QueryClient } from '@tanstack/query-core' -import { QueryCache, queryOptions, skipToken, useQueries } from '..' -import { createQueryClient, queryKey, renderWithClient, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + queryOptions, + skipToken, + useQueries, +} from '..' +import { renderWithClient } from './utils' import type { QueryFunction, QueryKey, @@ -16,7 +22,7 @@ import type { QueryFunctionContext } from '@tanstack/query-core' describe('useQueries', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should return the correct states', async () => { const key1 = queryKey() diff --git a/packages/react-query/src/__tests__/useQuery.promise.test.tsx b/packages/react-query/src/__tests__/useQuery.promise.test.tsx index 915100d367..8f06f1e165 100644 --- a/packages/react-query/src/__tests__/useQuery.promise.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.promise.test.tsx @@ -5,18 +5,19 @@ import { createRenderStream, useTrackRenders, } from '@testing-library/react-render-stream' +import { queryKey } from '@tanstack/query-test-utils' import { + QueryClient, QueryClientProvider, QueryErrorResetBoundary, keepPreviousData, useQuery, } from '..' import { QueryCache } from '../index' -import { createQueryClient, queryKey } from './utils' describe('useQuery().promise', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, }) diff --git a/packages/react-query/src/__tests__/useQuery.test-d.tsx b/packages/react-query/src/__tests__/useQuery.test-d.tsx index b59e7f295d..fd5e265b74 100644 --- a/packages/react-query/src/__tests__/useQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/useQuery.test-d.tsx @@ -1,7 +1,7 @@ import { describe, expectTypeOf, it } from 'vitest' +import { queryKey } from '@tanstack/query-test-utils' import { useQuery } from '../useQuery' import { queryOptions } from '../queryOptions' -import { queryKey } from './utils' import type { OmitKeyof, QueryFunction, UseQueryOptions } from '..' describe('useQuery', () => { diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 0cc6d639fb..3635b668bf 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -2,30 +2,38 @@ import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' import { act, fireEvent, render } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' -import { dehydrate, hydrate, skipToken } from '@tanstack/query-core' -import { QueryCache, keepPreviousData, useQuery } from '..' import { - Blink, - createQueryClient, - mockOnlineManagerIsOnline, mockVisibilityState, queryKey, + sleep, +} from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + dehydrate, + hydrate, + keepPreviousData, + skipToken, + useQuery, +} from '..' +import { + Blink, + mockOnlineManagerIsOnline, renderWithClient, setActTimeout, - sleep, } from './utils' import type { DefinedUseQueryResult, QueryFunction, UseQueryResult } from '..' import type { Mock } from 'vitest' describe('useQuery', () => { let queryCache = new QueryCache() - let queryClient = createQueryClient({ + let queryClient = new QueryClient({ queryCache, }) beforeEach(() => { queryCache = new QueryCache() - queryClient = createQueryClient({ + queryClient = new QueryClient({ queryCache, }) vi.useFakeTimers() @@ -6735,7 +6743,7 @@ describe('useQuery', () => { it('should pick up an initialPromise', async () => { const key = queryKey() - const serverQueryClient = createQueryClient({ + const serverQueryClient = new QueryClient({ defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true } }, }) @@ -6769,7 +6777,7 @@ describe('useQuery', () => { ) } - const clientQueryClient = createQueryClient() + const clientQueryClient = new QueryClient() hydrate(clientQueryClient, dehydrated) const rendered = renderWithClient(clientQueryClient, ) @@ -6789,7 +6797,7 @@ describe('useQuery', () => { .mockImplementation(() => undefined) const key = queryKey() - const serverQueryClient = createQueryClient({ + const serverQueryClient = new QueryClient({ defaultOptions: { dehydrate: { shouldDehydrateQuery: () => true }, }, @@ -6825,7 +6833,7 @@ describe('useQuery', () => { ) } - const clientQueryClient = createQueryClient({ + const clientQueryClient = new QueryClient({ defaultOptions: { hydrate: { queries: { retry: 1, retryDelay: 10 } } }, }) hydrate(clientQueryClient, dehydrated) diff --git a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx index b5d7b4a49d..398b7515cd 100644 --- a/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseInfiniteQuery.test.tsx @@ -1,11 +1,17 @@ import { describe, expect, it, vi } from 'vitest' import * as React from 'react' -import { QueryCache, skipToken, useSuspenseInfiniteQuery } from '..' -import { createQueryClient, queryKey, renderWithClient } from './utils' +import { queryKey } from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + skipToken, + useSuspenseInfiniteQuery, +} from '..' +import { renderWithClient } from './utils' describe('useSuspenseInfiniteQuery', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should log an error when skipToken is passed as queryFn', () => { const consoleErrorSpy = vi diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index af541cebb6..64f09fb800 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -10,8 +10,14 @@ import { import { act, fireEvent, render, waitFor } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' -import { skipToken, useSuspenseQueries, useSuspenseQuery } from '..' -import { createQueryClient, queryKey, renderWithClient, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { + QueryClient, + skipToken, + useSuspenseQueries, + useSuspenseQuery, +} from '..' +import { renderWithClient } from './utils' import type { UseSuspenseQueryOptions } from '..' type NumberQueryOptions = UseSuspenseQueryOptions @@ -27,7 +33,7 @@ const createQuery: (id: number) => NumberQueryOptions = (id) => ({ }) const resolveQueries = () => vi.advanceTimersByTimeAsync(QUERY_DURATION) -const queryClient = createQueryClient() +const queryClient = new QueryClient() describe('useSuspenseQueries', () => { const onSuspend = vi.fn() @@ -506,7 +512,7 @@ describe('useSuspenseQueries 2', () => { it('should still suspense if queryClient has placeholderData config', async () => { const key = queryKey() - const queryClientWithPlaceholder = createQueryClient({ + const queryClientWithPlaceholder = new QueryClient({ defaultOptions: { queries: { placeholderData: (previousData: any) => previousData, diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index 06b8e61d07..3ea24a9326 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -2,15 +2,17 @@ import { describe, expect, it, vi } from 'vitest' import { fireEvent, waitFor } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, + QueryClient, QueryErrorResetBoundary, skipToken, useQueryErrorResetBoundary, useSuspenseInfiniteQuery, useSuspenseQuery, } from '..' -import { createQueryClient, queryKey, renderWithClient, sleep } from './utils' +import { renderWithClient } from './utils' import type { InfiniteData, UseSuspenseInfiniteQueryResult, @@ -19,7 +21,7 @@ import type { describe('useSuspenseQuery', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should render the correct amount of times in Suspense mode', async () => { const key = queryKey() @@ -848,7 +850,7 @@ describe('useSuspenseQuery', () => { it('should still suspense if queryClient has placeholderData config', async () => { const key = queryKey() - const queryClientWithPlaceholder = createQueryClient({ + const queryClientWithPlaceholder = new QueryClient({ defaultOptions: { queries: { placeholderData: (previousData: any) => previousData, diff --git a/packages/react-query/src/__tests__/utils.tsx b/packages/react-query/src/__tests__/utils.tsx index d3536bf98d..3734c1caf6 100644 --- a/packages/react-query/src/__tests__/utils.tsx +++ b/packages/react-query/src/__tests__/utils.tsx @@ -2,8 +2,8 @@ import { vi } from 'vitest' import * as React from 'react' import { act, render } from '@testing-library/react' import * as utils from '@tanstack/query-core' -import { QueryClient, QueryClientProvider, onlineManager } from '..' -import type { QueryClientConfig } from '..' +import { QueryClientProvider, onlineManager } from '..' +import type { QueryClient } from '..' import type { MockInstance } from 'vitest' export function renderWithClient( @@ -42,34 +42,12 @@ export function Blink({ return shouldShow ? <>{children} : <>off } -export function createQueryClient(config?: QueryClientConfig): QueryClient { - return new QueryClient(config) -} - -export function mockVisibilityState( - value: DocumentVisibilityState, -): MockInstance<() => DocumentVisibilityState> { - return vi.spyOn(document, 'visibilityState', 'get').mockReturnValue(value) -} - export function mockOnlineManagerIsOnline( value: boolean, ): MockInstance<() => boolean> { return vi.spyOn(onlineManager, 'isOnline').mockReturnValue(value) } -let queryKeyCount = 0 -export function queryKey(): Array { - queryKeyCount++ - return [`query_${queryKeyCount}`] -} - -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} - export function setActTimeout(fn: () => void, ms?: number) { return setTimeout(() => { act(() => { diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 948ba1a4e4..09b5dea478 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -68,6 +68,7 @@ }, "devDependencies": { "@solidjs/testing-library": "^0.8.10", + "@tanstack/query-test-utils": "workspace:*", "@tanstack/solid-query": "workspace:*", "npm-run-all2": "^5.0.0", "solid-js": "^1.9.5", diff --git a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index 164a387d40..06bf8790cd 100644 --- a/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/solid-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -3,9 +3,8 @@ import { render, screen, waitFor } from '@solidjs/testing-library' import { QueryClient, useQueries, useQuery } from '@tanstack/solid-query' import { persistQueryClientSave } from '@tanstack/query-persist-client-core' import { createEffect, createSignal, onMount } from 'solid-js' - +import { queryKey, sleep } from '@tanstack/query-test-utils' import { PersistQueryClientProvider } from '../PersistQueryClientProvider' -import { createQueryClient, queryKey, sleep } from './utils' import type { PersistedClient, Persister, @@ -56,7 +55,7 @@ describe('PersistQueryClientProvider', () => { data: string | undefined }> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -134,7 +133,7 @@ describe('PersistQueryClientProvider', () => { data: string | undefined }> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -217,7 +216,7 @@ describe('PersistQueryClientProvider', () => { data: string | undefined }> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -300,7 +299,7 @@ describe('PersistQueryClientProvider', () => { data: string | undefined }> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -373,7 +372,7 @@ describe('PersistQueryClientProvider', () => { test('should call onSuccess after successful restoring', async () => { const key = queryKey() - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), @@ -426,7 +425,7 @@ describe('PersistQueryClientProvider', () => { const onErrorMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) - const queryClient = createQueryClient() + const queryClient = new QueryClient() const removeClient = vi.fn() const onSuccess = vi.fn() const onError = vi.fn() @@ -479,7 +478,7 @@ describe('PersistQueryClientProvider', () => { data: string | undefined }> = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() await queryClient.prefetchQuery({ queryKey: key, queryFn: () => Promise.resolve('hydrated'), diff --git a/packages/solid-query-persist-client/src/__tests__/utils.ts b/packages/solid-query-persist-client/src/__tests__/utils.ts deleted file mode 100644 index dd483203f3..0000000000 --- a/packages/solid-query-persist-client/src/__tests__/utils.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { QueryClient } from '@tanstack/solid-query' -import type { QueryClientConfig } from '@tanstack/solid-query' - -export function createQueryClient(config?: QueryClientConfig): QueryClient { - return new QueryClient(config) -} - -let queryKeyCount = 0 -export function queryKey(): Array { - queryKeyCount++ - return [`query_${queryKeyCount}`] -} - -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 079893575e..986ba11844 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -70,6 +70,7 @@ }, "devDependencies": { "@solidjs/testing-library": "^0.8.10", + "@tanstack/query-test-utils": "workspace:*", "npm-run-all2": "^5.0.0", "solid-js": "^1.9.5", "tsup-preset-solid": "^2.2.0", diff --git a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx index 025b633106..53bd1d0269 100644 --- a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx @@ -1,15 +1,15 @@ import { describe, expect, it, vi } from 'vitest' import { render, waitFor } from '@solidjs/testing-library' import { QueryCache } from '@tanstack/query-core' -import { QueryClientProvider, useQuery, useQueryClient } from '..' -import { createQueryClient, queryKey, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { QueryClient, QueryClientProvider, useQuery, useQueryClient } from '..' describe('QueryClientProvider', () => { it('sets a specific cache for all queries to use', async () => { const key = queryKey() const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) function Page() { const query = useQuery(() => ({ @@ -47,8 +47,8 @@ describe('QueryClientProvider', () => { const queryCache1 = new QueryCache() const queryCache2 = new QueryCache() - const queryClient1 = createQueryClient({ queryCache: queryCache1 }) - const queryClient2 = createQueryClient({ queryCache: queryCache2 }) + const queryClient1 = new QueryClient({ queryCache: queryCache1 }) + const queryClient2 = new QueryClient({ queryCache: queryCache2 }) function Page1() { const query = useQuery(() => ({ @@ -105,7 +105,7 @@ describe('QueryClientProvider', () => { const key = queryKey() const queryCache = new QueryCache() - const queryClient = createQueryClient({ + const queryClient = new QueryClient({ queryCache, defaultOptions: { queries: { @@ -167,7 +167,7 @@ describe('QueryClientProvider', () => { .mockImplementation(() => undefined) function Page() { - const client = createQueryClient() + const client = new QueryClient() useQueryClient(client) return null } diff --git a/packages/solid-query/src/__tests__/suspense.test.tsx b/packages/solid-query/src/__tests__/suspense.test.tsx index 8a35844618..a0ac00b8e2 100644 --- a/packages/solid-query/src/__tests__/suspense.test.tsx +++ b/packages/solid-query/src/__tests__/suspense.test.tsx @@ -1,6 +1,5 @@ import { describe, expect, it, vi } from 'vitest' import { fireEvent, render, waitFor } from '@solidjs/testing-library' - import { ErrorBoundary, Show, @@ -9,13 +8,19 @@ import { createSignal, on, } from 'solid-js' -import { QueryCache, QueryClientProvider, useInfiniteQuery, useQuery } from '..' -import { createQueryClient, queryKey, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + QueryClientProvider, + useInfiniteQuery, + useQuery, +} from '..' import type { InfiniteData, UseInfiniteQueryResult, UseQueryResult } from '..' describe("useQuery's in Suspense mode", () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should render the correct amount of times in Suspense mode', async () => { const key = queryKey() diff --git a/packages/solid-query/src/__tests__/transition.test.tsx b/packages/solid-query/src/__tests__/transition.test.tsx index 72f1491d2a..f329f73efe 100644 --- a/packages/solid-query/src/__tests__/transition.test.tsx +++ b/packages/solid-query/src/__tests__/transition.test.tsx @@ -1,12 +1,12 @@ import { describe, expect, it } from 'vitest' import { fireEvent, render, waitFor } from '@solidjs/testing-library' import { Show, Suspense, createSignal, startTransition } from 'solid-js' -import { QueryCache, QueryClientProvider, useQuery } from '..' -import { createQueryClient, queryKey, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { QueryCache, QueryClient, QueryClientProvider, useQuery } from '..' describe("useQuery's in Suspense mode with transitions", () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should render the content when the transition is done', async () => { const key = queryKey() diff --git a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx index 6fc070a04b..402e4bc22a 100644 --- a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx @@ -11,21 +11,16 @@ import { createSignal, on, } from 'solid-js' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, + QueryClient, QueryClientProvider, infiniteQueryOptions, keepPreviousData, useInfiniteQuery, } from '..' -import { - Blink, - createQueryClient, - queryKey, - setActTimeout, - sleep, -} from './utils' - +import { Blink, setActTimeout } from './utils' import type { InfiniteData, QueryFunctionContext, @@ -59,7 +54,7 @@ const fetchItems = async ( describe('useInfiniteQuery', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should return the correct states for a successful query', async () => { const key = queryKey() diff --git a/packages/solid-query/src/__tests__/useIsFetching.test.tsx b/packages/solid-query/src/__tests__/useIsFetching.test.tsx index c72a07784b..313f74d7a3 100644 --- a/packages/solid-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/solid-query/src/__tests__/useIsFetching.test.tsx @@ -1,14 +1,21 @@ import { describe, expect, it } from 'vitest' import { fireEvent, render, waitFor } from '@solidjs/testing-library' import { Show, createEffect, createRenderEffect, createSignal } from 'solid-js' -import { QueryCache, QueryClientProvider, useIsFetching, useQuery } from '..' -import { createQueryClient, queryKey, setActTimeout, sleep } from './utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + QueryClientProvider, + useIsFetching, + useQuery, +} from '..' +import { setActTimeout } from './utils' describe('useIsFetching', () => { // See https://github.com/tannerlinsley/react-query/issues/105 it('should update as queries start and stop fetching', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key = queryKey() function IsFetching() { @@ -60,7 +67,7 @@ describe('useIsFetching', () => { it('should not update state while rendering', async () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) const key1 = queryKey() const key2 = queryKey() @@ -127,7 +134,7 @@ describe('useIsFetching', () => { }) it('should be able to filter', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const key1 = queryKey() const key2 = queryKey() @@ -194,7 +201,7 @@ describe('useIsFetching', () => { }) it('should show the correct fetching state when mounted after a query', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const key = queryKey() function Page() { @@ -230,7 +237,7 @@ describe('useIsFetching', () => { }) it('should use provided custom queryClient', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const key = queryKey() function Page() { diff --git a/packages/solid-query/src/__tests__/useIsMutating.test.tsx b/packages/solid-query/src/__tests__/useIsMutating.test.tsx index 81c29ef591..0a8dd6c199 100644 --- a/packages/solid-query/src/__tests__/useIsMutating.test.tsx +++ b/packages/solid-query/src/__tests__/useIsMutating.test.tsx @@ -2,13 +2,19 @@ import { describe, expect, it, vi } from 'vitest' import { fireEvent, render, waitFor } from '@solidjs/testing-library' import { Show, createEffect, createRenderEffect, createSignal } from 'solid-js' import * as QueryCore from '@tanstack/query-core' -import { QueryClientProvider, useIsMutating, useMutation } from '..' -import { createQueryClient, setActTimeout, sleep } from './utils' +import { sleep } from '@tanstack/query-test-utils' +import { + QueryClient, + QueryClientProvider, + useIsMutating, + useMutation, +} from '..' +import { setActTimeout } from './utils' describe('useIsMutating', () => { it('should return the number of fetching mutations', async () => { const isMutatingArray: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() function IsMutating() { const isMutating = useIsMutating() @@ -63,7 +69,7 @@ describe('useIsMutating', () => { it('should filter correctly by mutationKey', async () => { const isMutatingArray: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() function IsMutating() { const isMutating = useIsMutating(() => ({ mutationKey: ['mutation1'] })) @@ -108,7 +114,7 @@ describe('useIsMutating', () => { it('should filter correctly by predicate', async () => { const isMutatingArray: Array = [] - const queryClient = createQueryClient() + const queryClient = new QueryClient() function IsMutating() { const isMutating = useIsMutating(() => ({ @@ -156,7 +162,7 @@ describe('useIsMutating', () => { }) it('should use provided custom queryClient', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() function Page() { const isMutating = useIsMutating(undefined, () => queryClient) @@ -204,7 +210,7 @@ describe('useIsMutating', () => { return new MutationCacheMock(fn) }) - const queryClient = createQueryClient() + const queryClient = new QueryClient() function IsMutating() { useIsMutating() diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index 3d0894b004..7c5149f900 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -6,14 +6,15 @@ import { createSignal, } from 'solid-js' import { fireEvent, render } from '@solidjs/testing-library' -import { MutationCache, QueryCache, QueryClientProvider, useMutation } from '..' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { - createQueryClient, - mockOnlineManagerIsOnline, - queryKey, - setActTimeout, - sleep, -} from './utils' + MutationCache, + QueryCache, + QueryClient, + QueryClientProvider, + useMutation, +} from '..' +import { mockOnlineManagerIsOnline, setActTimeout } from './utils' import type { UseMutationResult } from '../types' describe('useMutation', () => { @@ -27,7 +28,7 @@ describe('useMutation', () => { const queryCache = new QueryCache() const mutationCache = new MutationCache() - const queryClient = createQueryClient({ queryCache, mutationCache }) + const queryClient = new QueryClient({ queryCache, mutationCache }) it('should be able to reset `data`', async () => { function Page() { @@ -898,7 +899,7 @@ describe('useMutation', () => { const errorMock = vi.fn() const successMock = vi.fn() - const queryClientMutationMeta = createQueryClient({ + const queryClientMutationMeta = new QueryClient({ mutationCache: new MutationCache({ onSuccess: (_, __, ___, mutation) => { successMock(mutation.meta?.metaSuccessMessage) diff --git a/packages/solid-query/src/__tests__/useMutationState.test.tsx b/packages/solid-query/src/__tests__/useMutationState.test.tsx index 2ba5cdb648..47ee04c35a 100644 --- a/packages/solid-query/src/__tests__/useMutationState.test.tsx +++ b/packages/solid-query/src/__tests__/useMutationState.test.tsx @@ -1,14 +1,17 @@ import { describe, expect, it } from 'vitest' import { fireEvent, render, waitFor } from '@solidjs/testing-library' import { createEffect } from 'solid-js' -import { useMutationState } from '../useMutationState' -import { useMutation } from '../useMutation' -import { QueryClientProvider } from '../QueryClientProvider' -import { createQueryClient, sleep } from './utils' +import { sleep } from '@tanstack/query-test-utils' +import { + QueryClient, + QueryClientProvider, + useMutation, + useMutationState, +} from '..' describe('useMutationState', () => { it('should return variables after calling mutate', async () => { - const queryClient = createQueryClient() + const queryClient = new QueryClient() const variables: Array> = [] const mutationKey = ['mutation'] diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index 6dca9bac2f..ad0a3ef2f3 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -2,19 +2,25 @@ import { describe, expect, expectTypeOf, it, vi } from 'vitest' import { fireEvent, render, waitFor } from '@solidjs/testing-library' import * as QueryCore from '@tanstack/query-core' import { createRenderEffect, createSignal } from 'solid-js' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueriesObserver, QueryCache, + QueryClient, QueryClientProvider, useQueries, } from '..' -import { createQueryClient, queryKey, sleep } from './utils' -import type { QueryFunctionContext, QueryKey } from '@tanstack/query-core' -import type { QueryFunction, SolidQueryOptions, UseQueryResult } from '..' +import type { + QueryFunction, + QueryFunctionContext, + QueryKey, + SolidQueryOptions, + UseQueryResult, +} from '..' describe('useQueries', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should return the correct states', async () => { const key1 = queryKey() diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 0701d4ec8f..7e3027afcc 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -11,16 +11,19 @@ import { } from 'solid-js' import { fireEvent, render, waitFor } from '@solidjs/testing-library' import { reconcile } from 'solid-js/store' -import { QueryCache, QueryClientProvider, keepPreviousData, useQuery } from '..' import { - Blink, - createQueryClient, - mockOnlineManagerIsOnline, mockVisibilityState, queryKey, - setActTimeout, sleep, -} from './utils' +} from '@tanstack/query-test-utils' +import { + QueryCache, + QueryClient, + QueryClientProvider, + keepPreviousData, + useQuery, +} from '..' +import { Blink, mockOnlineManagerIsOnline, setActTimeout } from './utils' import type { DefinedUseQueryResult, OmitKeyof, @@ -33,7 +36,7 @@ import type { JSX } from 'solid-js' describe('useQuery', () => { const queryCache = new QueryCache() - const queryClient = createQueryClient({ queryCache }) + const queryClient = new QueryClient({ queryCache }) it('should return the correct types', () => { const key = queryKey() diff --git a/packages/solid-query/src/__tests__/utils.tsx b/packages/solid-query/src/__tests__/utils.tsx index 98bd80b57e..f93a8f8399 100644 --- a/packages/solid-query/src/__tests__/utils.tsx +++ b/packages/solid-query/src/__tests__/utils.tsx @@ -1,17 +1,9 @@ import { vi } from 'vitest' import { Show, createEffect, createSignal, onCleanup } from 'solid-js' import { onlineManager } from '@tanstack/query-core' -import { QueryClient } from '../QueryClient' -import type { QueryClientConfig } from '..' import type { ParentProps } from 'solid-js' import type { MockInstance } from 'vitest' -let queryKeyCount = 0 -export function queryKey() { - queryKeyCount++ - return [`query_${queryKeyCount}`] -} - export function Blink( props: { duration: number @@ -32,28 +24,12 @@ export function Blink( ) } -export function createQueryClient(config?: QueryClientConfig): QueryClient { - return new QueryClient(config) -} - -export function mockVisibilityState( - value: DocumentVisibilityState, -): MockInstance<() => DocumentVisibilityState> { - return vi.spyOn(document, 'visibilityState', 'get').mockReturnValue(value) -} - export function mockOnlineManagerIsOnline( value: boolean, ): MockInstance<() => boolean> { return vi.spyOn(onlineManager, 'isOnline').mockReturnValue(value) } -export function sleep(timeout: number): Promise { - return new Promise((resolve, _reject) => { - setTimeout(resolve, timeout) - }) -} - export function setActTimeout(fn: () => void, ms?: number) { return setTimeout(() => { fn() diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 01d8d06875..7643d7efda 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -49,6 +49,7 @@ "devDependencies": { "@sveltejs/package": "^2.3.10", "@sveltejs/vite-plugin-svelte": "^5.0.3", + "@tanstack/query-test-utils": "workspace:*", "@tanstack/svelte-query": "workspace:*", "@testing-library/svelte": "^5.2.6", "eslint-plugin-svelte": "^2.46.0", diff --git a/packages/svelte-query-persist-client/tests/AwaitOnSuccess/AwaitOnSuccess.svelte b/packages/svelte-query-persist-client/tests/AwaitOnSuccess/AwaitOnSuccess.svelte index 2a7501660e..74f09accd8 100644 --- a/packages/svelte-query-persist-client/tests/AwaitOnSuccess/AwaitOnSuccess.svelte +++ b/packages/svelte-query-persist-client/tests/AwaitOnSuccess/AwaitOnSuccess.svelte @@ -1,6 +1,6 @@ - - -``` - -## Extends - -- `SvelteComponent_1`\<`Props`, `Events`\> - -## Type Parameters - -โ€ข **Props** _extends_ `Record`\<`string`, `any`\> = `any` - -โ€ข **Events** _extends_ `Record`\<`string`, `any`\> = `any` - -โ€ข **Slots** _extends_ `Record`\<`string`, `any`\> = `any` - -## Indexable - -\[`prop`: `string`\]: `any` - -## Constructors - -### new HydrationBoundary() - -```ts -new HydrationBoundary(options): HydrationBoundary -``` - -#### Parameters - -โ€ข **options**: `ComponentConstructorOptions`\<`Props`\> - -#### Returns - -[`HydrationBoundary`](hydrationboundary.md)\<`Props`, `Events`, `Slots`\> - -#### Overrides - -`SvelteComponent_1.constructor` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:144 - -## Properties - -### $$ - -```ts -$$: any -``` - -### PRIVATE API - -Do not use, may change at any time - -#### Inherited from - -`SvelteComponent_1.$$` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:102 - ---- - -### $$events_def - -```ts -$$events_def: Events -``` - -For type checking capabilities only. -Does not exist at runtime. - -### DO NOT USE! - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:158 - ---- - -### $$prop_def - -```ts -$$prop_def: Props -``` - -For type checking capabilities only. -Does not exist at runtime. - -### DO NOT USE! - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:151 - ---- - -### $$set - -```ts -$$set: any -``` - -### PRIVATE API - -Do not use, may change at any time - -#### Inherited from - -`SvelteComponent_1.$$set` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:109 - ---- - -### $$slot_def - -```ts -$$slot_def: Slots -``` - -For type checking capabilities only. -Does not exist at runtime. - -### DO NOT USE! - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:165 - -## Methods - -### $capture_state() - -```ts -$capture_state(): void -``` - -#### Returns - -`void` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:167 - ---- - -### $destroy() - -```ts -$destroy(): void -``` - -#### Returns - -`void` - -#### Inherited from - -`SvelteComponent_1.$destroy` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:111 - ---- - -### $inject_state() - -```ts -$inject_state(): void -``` - -#### Returns - -`void` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:169 - ---- - -### $on() - -```ts -$on(type, callback): () => void -``` - -#### Type Parameters - -โ€ข **K** _extends_ `string` - -#### Parameters - -โ€ข **type**: `K` - -โ€ข **callback**: `undefined` \| `null` \| (`e`) => `void` - -#### Returns - -`Function` - -##### Returns - -`void` - -#### Inherited from - -`SvelteComponent_1.$on` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:113 - ---- - -### $set() - -```ts -$set(props): void -``` - -#### Parameters - -โ€ข **props**: `Partial`\<`Props`\> - -#### Returns - -`void` - -#### Inherited from - -`SvelteComponent_1.$set` - -#### Defined in - -node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/types/index.d.ts:115 diff --git a/docs/framework/svelte/reference/functions/createinfinitequery.md b/docs/framework/svelte/reference/functions/createinfinitequery.md index a067f73775..5626f640e1 100644 --- a/docs/framework/svelte/reference/functions/createinfinitequery.md +++ b/docs/framework/svelte/reference/functions/createinfinitequery.md @@ -6,13 +6,7 @@ title: createInfiniteQuery # Function: createInfiniteQuery() ```ts -function createInfiniteQuery< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam, ->(options, queryClient?): CreateInfiniteQueryResult +function createInfiniteQuery(options, queryClient?): CreateInfiniteQueryResult ``` ## Type Parameters @@ -23,20 +17,24 @@ function createInfiniteQuery< โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` ## Parameters -โ€ข **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`CreateInfiniteQueryOptions`](../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>\> +### options -โ€ข **queryClient?**: `QueryClient` +[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateInfiniteQueryOptions`](../../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\>\> + +### queryClient? + +`QueryClient` ## Returns -[`CreateInfiniteQueryResult`](../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\> +[`CreateInfiniteQueryResult`](../../type-aliases/createinfinitequeryresult.md)\<`TData`, `TError`\> ## Defined in -[packages/svelte-query/src/createInfiniteQuery.ts:16](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createInfiniteQuery.ts#L16) +[packages/svelte-query/src/createInfiniteQuery.ts:16](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createInfiniteQuery.ts#L16) diff --git a/docs/framework/svelte/reference/functions/createmutation.md b/docs/framework/svelte/reference/functions/createmutation.md index ad11e8c6e9..e76c79cf42 100644 --- a/docs/framework/svelte/reference/functions/createmutation.md +++ b/docs/framework/svelte/reference/functions/createmutation.md @@ -6,10 +6,7 @@ title: createMutation # Function: createMutation() ```ts -function createMutation( - options, - queryClient?, -): CreateMutationResult +function createMutation(options, queryClient?): CreateMutationResult ``` ## Type Parameters @@ -24,14 +21,18 @@ function createMutation( ## Parameters -โ€ข **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`CreateMutationOptions`](../type-aliases/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>\> +### options -โ€ข **queryClient?**: `QueryClient` +[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateMutationOptions`](../../type-aliases/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>\> + +### queryClient? + +`QueryClient` ## Returns -[`CreateMutationResult`](../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\> +[`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\> ## Defined in -[packages/svelte-query/src/createMutation.ts:13](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createMutation.ts#L13) +[packages/svelte-query/src/createMutation.ts:13](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createMutation.ts#L13) diff --git a/docs/framework/svelte/reference/functions/createqueries.md b/docs/framework/svelte/reference/functions/createqueries.md index 90a77b2a1c..44d393f8c6 100644 --- a/docs/framework/svelte/reference/functions/createqueries.md +++ b/docs/framework/svelte/reference/functions/createqueries.md @@ -6,27 +6,31 @@ title: createQueries # Function: createQueries() ```ts -function createQueries( - __namedParameters, - queryClient?, -): Readable +function createQueries(__namedParameters, queryClient?): Readable ``` ## Type Parameters -โ€ข **T** _extends_ `any`[] +โ€ข **T** *extends* `any`[] -โ€ข **TCombinedResult** = `T` _extends_ [] ? [] : `T` _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>] : `T` _extends_ [`Head`, `...Tails[]`] ? [`...Tails[]`] _extends_ [] ? [] : [`...Tails[]`] _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] _extends_ [`Head`, `...Tails[]`] ? [`...Tails[]`] _extends_ [] ? [] : [`...Tails[]`] _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] _extends_ [`Head`, `...Tails[]`] ? [`...(...)[]`] _extends_ [] ? [] : ... _extends_ ... ? ... : ... : [`...(...)[]`] _extends_ ...[] ? ...[] : ...[] : [`...Tails[]`] _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] +โ€ข **TCombinedResult** = `T` *extends* [] ? [] : `T` *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>] : `T` *extends* [`Head`, `...Tails[]`] ? [`...Tails[]`] *extends* [] ? [] : [`...Tails[]`] *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] *extends* [`Head`, `...Tails[]`] ? [`...Tails[]`] *extends* [] ? [] : [`...Tails[]`] *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] *extends* [`Head`, `...Tails[]`] ? [`...(...)[]`] *extends* [] ? [] : ... *extends* ... ? ... : ... : [`...{ [K in (...)]: (...) }[]`] : [...\{ \[K in string \| number \| symbol\]: GetCreateQueryResult\\]\> \}\[\]] : \{ \[K in string \| number \| symbol\]: GetCreateQueryResult\\]\> \} ## Parameters -โ€ข **\_\_namedParameters** +### \_\_namedParameters -โ€ข **\_\_namedParameters.combine?** +#### combine -โ€ข **\_\_namedParameters.queries?**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`...(T extends [] ? [] : T extends [Head] ? [GetQueryObserverOptionsForCreateQueries] : T extends [Head, ...Tails[]] ? [...Tails[]] extends [] ? [] : [...Tails[]] extends [Head] ? [GetQueryObserverOptionsForCreateQueries, GetQueryObserverOptionsForCreateQueries] : [...Tails[]] extends [Head, ...Tails[]] ? [...(...)[]] extends [] ? [] : (...) extends (...) ? (...) : (...) : readonly (...)[] extends [...(...)[]] ? [...(...)[]] : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverOptionsForCreateQueries[] : QueryObserverOptionsForCreateQueries[])[]`]\> +(`result`) => `TCombinedResult` -โ€ข **queryClient?**: `QueryClient` +#### queries + + \| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[`...(T extends [] ? [] : T extends [Head] ? [GetQueryObserverOptionsForCreateQueries] : T extends [Head, ...Tails[]] ? [...Tails[]] extends [] ? [] : [...Tails[]] extends [Head] ? [GetQueryObserverOptionsForCreateQueries<(...)>, GetQueryObserverOptionsForCreateQueries<(...)>] : [...(...)[]] extends [(...), ...(...)[]] ? (...) extends (...) ? (...) : (...) : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] ? QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] : QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[])[]`]\> + \| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[...\{ \[K in string \| number \| symbol\]: GetQueryObserverOptionsForCreateQueries\\]\> \}\[\]]\> + +### queryClient? + +`QueryClient` ## Returns @@ -34,4 +38,4 @@ function createQueries( ## Defined in -[packages/svelte-query/src/createQueries.ts:205](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQueries.ts#L205) +[packages/svelte-query/src/createQueries.ts:189](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQueries.ts#L189) diff --git a/docs/framework/svelte/reference/functions/createquery.md b/docs/framework/svelte/reference/functions/createquery.md index 605fbc1f99..8cf7c132de 100644 --- a/docs/framework/svelte/reference/functions/createquery.md +++ b/docs/framework/svelte/reference/functions/createquery.md @@ -5,13 +5,10 @@ title: createQuery # Function: createQuery() -## createQuery(options, queryClient) +## Call Signature ```ts -function createQuery( - options, - queryClient?, -): DefinedCreateQueryResult +function createQuery(options, queryClient?): DefinedCreateQueryResult ``` ### Type Parameters @@ -22,29 +19,30 @@ function createQuery( โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters -โ€ข **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\> +#### options -โ€ข **queryClient?**: `QueryClient` +[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\> + +#### queryClient? + +`QueryClient` ### Returns -[`DefinedCreateQueryResult`](../type-aliases/definedcreatequeryresult.md)\<`TData`, `TError`\> +[`DefinedCreateQueryResult`](../../type-aliases/definedcreatequeryresult.md)\<`TData`, `TError`\> ### Defined in -[packages/svelte-query/src/createQuery.ts:15](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQuery.ts#L15) +[packages/svelte-query/src/createQuery.ts:15](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQuery.ts#L15) -## createQuery(options, queryClient) +## Call Signature ```ts -function createQuery( - options, - queryClient?, -): CreateQueryResult +function createQuery(options, queryClient?): CreateQueryResult ``` ### Type Parameters @@ -55,29 +53,30 @@ function createQuery( โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters -โ€ข **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\> +#### options + +[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\> -โ€ข **queryClient?**: `QueryClient` +#### queryClient? + +`QueryClient` ### Returns -[`CreateQueryResult`](../type-aliases/createqueryresult.md)\<`TData`, `TError`\> +[`CreateQueryResult`](../../type-aliases/createqueryresult.md)\<`TData`, `TError`\> ### Defined in -[packages/svelte-query/src/createQuery.ts:27](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQuery.ts#L27) +[packages/svelte-query/src/createQuery.ts:27](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQuery.ts#L27) -## createQuery(options, queryClient) +## Call Signature ```ts -function createQuery( - options, - queryClient?, -): CreateQueryResult +function createQuery(options, queryClient?): CreateQueryResult ``` ### Type Parameters @@ -88,18 +87,22 @@ function createQuery( โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters -โ€ข **options**: [`StoreOrVal`](../type-aliases/storeorval.md)\<[`CreateQueryOptions`](../type-aliases/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\> +#### options + +[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateQueryOptions`](../../type-aliases/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>\> + +#### queryClient? -โ€ข **queryClient?**: `QueryClient` +`QueryClient` ### Returns -[`CreateQueryResult`](../type-aliases/createqueryresult.md)\<`TData`, `TError`\> +[`CreateQueryResult`](../../type-aliases/createqueryresult.md)\<`TData`, `TError`\> ### Defined in -[packages/svelte-query/src/createQuery.ts:39](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQuery.ts#L39) +[packages/svelte-query/src/createQuery.ts:39](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQuery.ts#L39) diff --git a/docs/framework/svelte/reference/functions/getisrestoringcontext.md b/docs/framework/svelte/reference/functions/getisrestoringcontext.md index 22aa563796..923a433775 100644 --- a/docs/framework/svelte/reference/functions/getisrestoringcontext.md +++ b/docs/framework/svelte/reference/functions/getisrestoringcontext.md @@ -17,4 +17,4 @@ Retrieves a `isRestoring` from Svelte's context ## Defined in -[packages/svelte-query/src/context.ts:28](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L28) +[packages/svelte-query/src/context.ts:28](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L28) diff --git a/docs/framework/svelte/reference/functions/getqueryclientcontext.md b/docs/framework/svelte/reference/functions/getqueryclientcontext.md index f311a473f6..8d34ab100c 100644 --- a/docs/framework/svelte/reference/functions/getqueryclientcontext.md +++ b/docs/framework/svelte/reference/functions/getqueryclientcontext.md @@ -17,4 +17,4 @@ Retrieves a Client from Svelte's context ## Defined in -[packages/svelte-query/src/context.ts:9](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L9) +[packages/svelte-query/src/context.ts:9](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L9) diff --git a/docs/framework/svelte/reference/functions/infinitequeryoptions.md b/docs/framework/svelte/reference/functions/infinitequeryoptions.md index 3e9a0c5b4b..52577caf02 100644 --- a/docs/framework/svelte/reference/functions/infinitequeryoptions.md +++ b/docs/framework/svelte/reference/functions/infinitequeryoptions.md @@ -6,22 +6,7 @@ title: infiniteQueryOptions # Function: infiniteQueryOptions() ```ts -function infiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam, ->( - options, -): CreateInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryFnData, - TQueryKey, - TPageParam -> +function infiniteQueryOptions(options): CreateInfiniteQueryOptions ``` ## Type Parameters @@ -32,18 +17,20 @@ function infiniteQueryOptions< โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` ## Parameters -โ€ข **options**: [`CreateInfiniteQueryOptions`](../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\> +### options + +[`CreateInfiniteQueryOptions`](../../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\> ## Returns -[`CreateInfiniteQueryOptions`](../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\> +[`CreateInfiniteQueryOptions`](../../type-aliases/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\> ## Defined in -[packages/svelte-query/src/infiniteQueryOptions.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/infiniteQueryOptions.ts#L4) +[packages/svelte-query/src/infiniteQueryOptions.ts:4](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/infiniteQueryOptions.ts#L4) diff --git a/docs/framework/svelte/reference/functions/queryoptions.md b/docs/framework/svelte/reference/functions/queryoptions.md index d499202669..2733e14b58 100644 --- a/docs/framework/svelte/reference/functions/queryoptions.md +++ b/docs/framework/svelte/reference/functions/queryoptions.md @@ -5,12 +5,10 @@ title: queryOptions # Function: queryOptions() -## queryOptions(options) +## Call Signature ```ts -function queryOptions( - options, -): DefinedInitialDataOptions & object +function queryOptions(options): DefinedInitialDataOptions & object ``` ### Type Parameters @@ -21,26 +19,26 @@ function queryOptions( โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters -โ€ข **options**: [`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> +#### options + +[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> ### Returns -[`DefinedInitialDataOptions`](../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` +[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` ### Defined in -[packages/svelte-query/src/queryOptions.ts:26](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/queryOptions.ts#L26) +[packages/svelte-query/src/queryOptions.ts:31](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/queryOptions.ts#L31) -## queryOptions(options) +## Call Signature ```ts -function queryOptions( - options, -): UndefinedInitialDataOptions & object +function queryOptions(options): UndefinedInitialDataOptions & object ``` ### Type Parameters @@ -51,16 +49,18 @@ function queryOptions( โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] ### Parameters -โ€ข **options**: [`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> +#### options + +[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> ### Returns -[`UndefinedInitialDataOptions`](../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` +[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` ### Defined in -[packages/svelte-query/src/queryOptions.ts:37](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/queryOptions.ts#L37) +[packages/svelte-query/src/queryOptions.ts:42](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/queryOptions.ts#L42) diff --git a/docs/framework/svelte/reference/functions/setisrestoringcontext.md b/docs/framework/svelte/reference/functions/setisrestoringcontext.md index 0ab290bf09..95555d77cb 100644 --- a/docs/framework/svelte/reference/functions/setisrestoringcontext.md +++ b/docs/framework/svelte/reference/functions/setisrestoringcontext.md @@ -13,7 +13,9 @@ Sets a `isRestoring` on Svelte's context ## Parameters -โ€ข **isRestoring**: `Readable`\<`boolean`\> +### isRestoring + +`Readable`\<`boolean`\> ## Returns @@ -21,4 +23,4 @@ Sets a `isRestoring` on Svelte's context ## Defined in -[packages/svelte-query/src/context.ts:40](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L40) +[packages/svelte-query/src/context.ts:40](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L40) diff --git a/docs/framework/svelte/reference/functions/setqueryclientcontext.md b/docs/framework/svelte/reference/functions/setqueryclientcontext.md index 4a4ce300b2..22caba70a8 100644 --- a/docs/framework/svelte/reference/functions/setqueryclientcontext.md +++ b/docs/framework/svelte/reference/functions/setqueryclientcontext.md @@ -13,7 +13,9 @@ Sets a QueryClient on Svelte's context ## Parameters -โ€ข **client**: `QueryClient` +### client + +`QueryClient` ## Returns @@ -21,4 +23,4 @@ Sets a QueryClient on Svelte's context ## Defined in -[packages/svelte-query/src/context.ts:21](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/context.ts#L21) +[packages/svelte-query/src/context.ts:21](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/context.ts#L21) diff --git a/docs/framework/svelte/reference/functions/usehydrate.md b/docs/framework/svelte/reference/functions/usehydrate.md index c4abb97e0d..a2dbd05fdf 100644 --- a/docs/framework/svelte/reference/functions/usehydrate.md +++ b/docs/framework/svelte/reference/functions/usehydrate.md @@ -6,16 +6,25 @@ title: useHydrate # Function: useHydrate() ```ts -function useHydrate(state?, options?, queryClient?): void +function useHydrate( + state?, + options?, + queryClient?): void ``` ## Parameters -โ€ข **state?**: `unknown` +### state? -โ€ข **options?**: `HydrateOptions` +`unknown` -โ€ข **queryClient?**: `QueryClient` +### options? + +`HydrateOptions` + +### queryClient? + +`QueryClient` ## Returns @@ -23,4 +32,4 @@ function useHydrate(state?, options?, queryClient?): void ## Defined in -[packages/svelte-query/src/useHydrate.ts:8](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useHydrate.ts#L8) +[packages/svelte-query/src/useHydrate.ts:5](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useHydrate.ts#L5) diff --git a/docs/framework/svelte/reference/functions/useisfetching.md b/docs/framework/svelte/reference/functions/useisfetching.md index fbfd0d55bf..0b637880c4 100644 --- a/docs/framework/svelte/reference/functions/useisfetching.md +++ b/docs/framework/svelte/reference/functions/useisfetching.md @@ -11,9 +11,13 @@ function useIsFetching(filters?, queryClient?): Readable ## Parameters -โ€ข **filters?**: `QueryFilters` +### filters? -โ€ข **queryClient?**: `QueryClient` +`QueryFilters`\ + +### queryClient? + +`QueryClient` ## Returns @@ -21,4 +25,4 @@ function useIsFetching(filters?, queryClient?): Readable ## Defined in -[packages/svelte-query/src/useIsFetching.ts:10](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useIsFetching.ts#L10) +[packages/svelte-query/src/useIsFetching.ts:7](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useIsFetching.ts#L7) diff --git a/docs/framework/svelte/reference/functions/useismutating.md b/docs/framework/svelte/reference/functions/useismutating.md index 2e05ae3218..a2773004ab 100644 --- a/docs/framework/svelte/reference/functions/useismutating.md +++ b/docs/framework/svelte/reference/functions/useismutating.md @@ -11,9 +11,13 @@ function useIsMutating(filters?, queryClient?): Readable ## Parameters -โ€ข **filters?**: `MutationFilters` +### filters? -โ€ข **queryClient?**: `QueryClient` +`MutationFilters`\<`unknown`, `Error`, `unknown`, `unknown`\> + +### queryClient? + +`QueryClient` ## Returns @@ -21,4 +25,4 @@ function useIsMutating(filters?, queryClient?): Readable ## Defined in -[packages/svelte-query/src/useIsMutating.ts:10](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useIsMutating.ts#L10) +[packages/svelte-query/src/useIsMutating.ts:7](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useIsMutating.ts#L7) diff --git a/docs/framework/svelte/reference/functions/useisrestoring.md b/docs/framework/svelte/reference/functions/useisrestoring.md index 4cd72cfab8..5bebc77087 100644 --- a/docs/framework/svelte/reference/functions/useisrestoring.md +++ b/docs/framework/svelte/reference/functions/useisrestoring.md @@ -15,4 +15,4 @@ function useIsRestoring(): Readable ## Defined in -[packages/svelte-query/src/useIsRestoring.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useIsRestoring.ts#L4) +[packages/svelte-query/src/useIsRestoring.ts:4](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useIsRestoring.ts#L4) diff --git a/docs/framework/svelte/reference/functions/usemutationstate.md b/docs/framework/svelte/reference/functions/usemutationstate.md index 83de5455e7..14ceee7865 100644 --- a/docs/framework/svelte/reference/functions/usemutationstate.md +++ b/docs/framework/svelte/reference/functions/usemutationstate.md @@ -15,9 +15,13 @@ function useMutationState(options, queryClient?): Readable ## Parameters -โ€ข **options**: [`MutationStateOptions`](../type-aliases/mutationstateoptions.md)\<`TResult`\> = `{}` +### options -โ€ข **queryClient?**: `QueryClient` +[`MutationStateOptions`](../../type-aliases/mutationstateoptions.md)\<`TResult`\> = `{}` + +### queryClient? + +`QueryClient` ## Returns @@ -25,4 +29,4 @@ function useMutationState(options, queryClient?): Readable ## Defined in -[packages/svelte-query/src/useMutationState.ts:24](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useMutationState.ts#L24) +[packages/svelte-query/src/useMutationState.ts:24](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useMutationState.ts#L24) diff --git a/docs/framework/svelte/reference/functions/usequeryclient.md b/docs/framework/svelte/reference/functions/usequeryclient.md index e6f169c143..2a962408ca 100644 --- a/docs/framework/svelte/reference/functions/usequeryclient.md +++ b/docs/framework/svelte/reference/functions/usequeryclient.md @@ -11,7 +11,9 @@ function useQueryClient(queryClient?): QueryClient ## Parameters -โ€ข **queryClient?**: `QueryClient` +### queryClient? + +`QueryClient` ## Returns @@ -19,4 +21,4 @@ function useQueryClient(queryClient?): QueryClient ## Defined in -[packages/svelte-query/src/useQueryClient.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/useQueryClient.ts#L4) +[packages/svelte-query/src/useQueryClient.ts:4](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/useQueryClient.ts#L4) diff --git a/docs/framework/svelte/reference/index.md b/docs/framework/svelte/reference/index.md index 8b50592d89..0ffa33f6fe 100644 --- a/docs/framework/svelte/reference/index.md +++ b/docs/framework/svelte/reference/index.md @@ -1,6 +1,6 @@ --- -id: '@tanstack/svelte-query' -title: '@tanstack/svelte-query' +id: "@tanstack/svelte-query" +title: "@tanstack/svelte-query" --- # @tanstack/svelte-query @@ -9,49 +9,50 @@ title: '@tanstack/svelte-query' ### QueryClientProvider -Renames and re-exports [HydrationBoundary](classes/hydrationboundary.md) - -## Classes - -- [HydrationBoundary](classes/hydrationboundary.md) +Renames and re-exports [HydrationBoundary](../variables/hydrationboundary.md) ## Type Aliases -- [CreateBaseMutationResult](type-aliases/createbasemutationresult.md) -- [CreateBaseQueryOptions](type-aliases/createbasequeryoptions.md) -- [CreateBaseQueryResult](type-aliases/createbasequeryresult.md) -- [CreateInfiniteQueryOptions](type-aliases/createinfinitequeryoptions.md) -- [CreateInfiniteQueryResult](type-aliases/createinfinitequeryresult.md) -- [CreateMutateAsyncFunction](type-aliases/createmutateasyncfunction.md) -- [CreateMutateFunction](type-aliases/createmutatefunction.md) -- [CreateMutationOptions](type-aliases/createmutationoptions.md) -- [CreateMutationResult](type-aliases/createmutationresult.md) -- [CreateQueryOptions](type-aliases/createqueryoptions.md) -- [CreateQueryResult](type-aliases/createqueryresult.md) -- [DefinedCreateBaseQueryResult](type-aliases/definedcreatebasequeryresult.md) -- [DefinedCreateQueryResult](type-aliases/definedcreatequeryresult.md) -- [DefinedInitialDataOptions](type-aliases/definedinitialdataoptions.md) -- [MutationStateOptions](type-aliases/mutationstateoptions.md) -- [QueriesOptions](type-aliases/queriesoptions.md) -- [QueriesResults](type-aliases/queriesresults.md) -- [StoreOrVal](type-aliases/storeorval.md) -- [UndefinedInitialDataOptions](type-aliases/undefinedinitialdataoptions.md) +- [CreateBaseMutationResult](../type-aliases/createbasemutationresult.md) +- [CreateBaseQueryOptions](../type-aliases/createbasequeryoptions.md) +- [CreateBaseQueryResult](../type-aliases/createbasequeryresult.md) +- [CreateInfiniteQueryOptions](../type-aliases/createinfinitequeryoptions.md) +- [CreateInfiniteQueryResult](../type-aliases/createinfinitequeryresult.md) +- [CreateMutateAsyncFunction](../type-aliases/createmutateasyncfunction.md) +- [CreateMutateFunction](../type-aliases/createmutatefunction.md) +- [CreateMutationOptions](../type-aliases/createmutationoptions.md) +- [CreateMutationResult](../type-aliases/createmutationresult.md) +- [CreateQueryOptions](../type-aliases/createqueryoptions.md) +- [CreateQueryResult](../type-aliases/createqueryresult.md) +- [DefinedCreateBaseQueryResult](../type-aliases/definedcreatebasequeryresult.md) +- [DefinedCreateQueryResult](../type-aliases/definedcreatequeryresult.md) +- [DefinedInitialDataOptions](../type-aliases/definedinitialdataoptions.md) +- [HydrationBoundary](../type-aliases/hydrationboundary.md) +- [MutationStateOptions](../type-aliases/mutationstateoptions.md) +- [QueriesOptions](../type-aliases/queriesoptions.md) +- [QueriesResults](../type-aliases/queriesresults.md) +- [StoreOrVal](../type-aliases/storeorval.md) +- [UndefinedInitialDataOptions](../type-aliases/undefinedinitialdataoptions.md) + +## Variables + +- [HydrationBoundary](../variables/hydrationboundary.md) ## Functions -- [createInfiniteQuery](functions/createinfinitequery.md) -- [createMutation](functions/createmutation.md) -- [createQueries](functions/createqueries.md) -- [createQuery](functions/createquery.md) -- [getIsRestoringContext](functions/getisrestoringcontext.md) -- [getQueryClientContext](functions/getqueryclientcontext.md) -- [infiniteQueryOptions](functions/infinitequeryoptions.md) -- [queryOptions](functions/queryoptions.md) -- [setIsRestoringContext](functions/setisrestoringcontext.md) -- [setQueryClientContext](functions/setqueryclientcontext.md) -- [useHydrate](functions/usehydrate.md) -- [useIsFetching](functions/useisfetching.md) -- [useIsMutating](functions/useismutating.md) -- [useIsRestoring](functions/useisrestoring.md) -- [useMutationState](functions/usemutationstate.md) -- [useQueryClient](functions/usequeryclient.md) +- [createInfiniteQuery](../functions/createinfinitequery.md) +- [createMutation](../functions/createmutation.md) +- [createQueries](../functions/createqueries.md) +- [createQuery](../functions/createquery.md) +- [getIsRestoringContext](../functions/getisrestoringcontext.md) +- [getQueryClientContext](../functions/getqueryclientcontext.md) +- [infiniteQueryOptions](../functions/infinitequeryoptions.md) +- [queryOptions](../functions/queryoptions.md) +- [setIsRestoringContext](../functions/setisrestoringcontext.md) +- [setQueryClientContext](../functions/setqueryclientcontext.md) +- [useHydrate](../functions/usehydrate.md) +- [useIsFetching](../functions/useisfetching.md) +- [useIsMutating](../functions/useismutating.md) +- [useIsRestoring](../functions/useisrestoring.md) +- [useMutationState](../functions/usemutationstate.md) +- [useQueryClient](../functions/usequeryclient.md) diff --git a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md index 750c599d80..02f68b27e2 100644 --- a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md +++ b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md @@ -6,7 +6,9 @@ title: CreateBaseMutationResult # Type Alias: CreateBaseMutationResult\ ```ts -type CreateBaseMutationResult: Override, object> & object; +type CreateBaseMutationResult = Override, { + mutate: CreateMutateFunction; + }> & object; ``` ## Type declaration @@ -14,7 +16,7 @@ type CreateBaseMutationResult: Override +mutateAsync: CreateMutateAsyncFunction; ``` ## Type Parameters @@ -29,4 +31,4 @@ mutateAsync: CreateMutateAsyncFunction ## Defined in -[packages/svelte-query/src/types.ts:113](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L113) +[packages/svelte-query/src/types.ts:114](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L114) diff --git a/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md b/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md index 8a1967c124..51f6a6d003 100644 --- a/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md @@ -6,7 +6,7 @@ title: CreateBaseQueryOptions # Type Alias: CreateBaseQueryOptions\ ```ts -type CreateBaseQueryOptions: QueryObserverOptions; +type CreateBaseQueryOptions = QueryObserverOptions; ``` Options for createBaseQuery @@ -21,8 +21,8 @@ Options for createBaseQuery โ€ข **TQueryData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` ## Defined in -[packages/svelte-query/src/types.ts:23](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L23) +[packages/svelte-query/src/types.ts:24](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L24) diff --git a/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md b/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md index 01d19e64ea..861f43cf98 100644 --- a/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md @@ -6,7 +6,7 @@ title: CreateBaseQueryResult # Type Alias: CreateBaseQueryResult\ ```ts -type CreateBaseQueryResult: Readable>; +type CreateBaseQueryResult = Readable>; ``` Result from createBaseQuery @@ -19,4 +19,4 @@ Result from createBaseQuery ## Defined in -[packages/svelte-query/src/types.ts:32](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L32) +[packages/svelte-query/src/types.ts:33](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L33) diff --git a/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md b/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md index e248532a85..ff726a1ccc 100644 --- a/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md @@ -6,7 +6,7 @@ title: CreateInfiniteQueryOptions # Type Alias: CreateInfiniteQueryOptions\ ```ts -type CreateInfiniteQueryOptions: InfiniteQueryObserverOptions; +type CreateInfiniteQueryOptions = InfiniteQueryObserverOptions; ``` Options for createInfiniteQuery @@ -21,10 +21,10 @@ Options for createInfiniteQuery โ€ข **TQueryData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` ## Defined in -[packages/svelte-query/src/types.ts:52](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L52) +[packages/svelte-query/src/types.ts:53](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L53) diff --git a/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md b/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md index 4027388adc..e5247763c5 100644 --- a/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md @@ -6,7 +6,7 @@ title: CreateInfiniteQueryResult # Type Alias: CreateInfiniteQueryResult\ ```ts -type CreateInfiniteQueryResult: Readable>; +type CreateInfiniteQueryResult = Readable>; ``` Result from createInfiniteQuery @@ -19,4 +19,4 @@ Result from createInfiniteQuery ## Defined in -[packages/svelte-query/src/types.ts:69](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L69) +[packages/svelte-query/src/types.ts:70](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L70) diff --git a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md index 01567a772e..ac34d9829b 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md +++ b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md @@ -6,7 +6,7 @@ title: CreateMutateAsyncFunction # Type Alias: CreateMutateAsyncFunction\ ```ts -type CreateMutateAsyncFunction: MutateFunction; +type CreateMutateAsyncFunction = MutateFunction; ``` ## Type Parameters @@ -21,4 +21,4 @@ type CreateMutateAsyncFunction: MutateFunct ## Defined in -[packages/svelte-query/src/types.ts:106](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L106) +[packages/svelte-query/src/types.ts:107](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L107) diff --git a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md index 18230411ef..034c383b7c 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md +++ b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md @@ -6,7 +6,7 @@ title: CreateMutateFunction # Type Alias: CreateMutateFunction()\ ```ts -type CreateMutateFunction: (...args) => void; +type CreateMutateFunction = (...args) => void; ``` ## Type Parameters @@ -21,7 +21,9 @@ type CreateMutateFunction: (...args) => voi ## Parameters -โ€ข ...**args**: `Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\> +### args + +...`Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\> ## Returns @@ -29,4 +31,4 @@ type CreateMutateFunction: (...args) => voi ## Defined in -[packages/svelte-query/src/types.ts:97](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L97) +[packages/svelte-query/src/types.ts:98](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L98) diff --git a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md index c091bb44db..d5c192b9e4 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md @@ -6,7 +6,7 @@ title: CreateMutationOptions # Type Alias: CreateMutationOptions\ ```ts -type CreateMutationOptions: OmitKeyof, "_defaulted">; +type CreateMutationOptions = OmitKeyof, "_defaulted">; ``` Options for createMutation @@ -23,4 +23,4 @@ Options for createMutation ## Defined in -[packages/svelte-query/src/types.ts:87](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L87) +[packages/svelte-query/src/types.ts:88](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L88) diff --git a/docs/framework/svelte/reference/type-aliases/createmutationresult.md b/docs/framework/svelte/reference/type-aliases/createmutationresult.md index f0cc9f62c7..48a6dfe524 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutationresult.md +++ b/docs/framework/svelte/reference/type-aliases/createmutationresult.md @@ -6,7 +6,7 @@ title: CreateMutationResult # Type Alias: CreateMutationResult\ ```ts -type CreateMutationResult: Readable>; +type CreateMutationResult = Readable>; ``` Result from createMutation @@ -23,4 +23,4 @@ Result from createMutation ## Defined in -[packages/svelte-query/src/types.ts:126](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L126) +[packages/svelte-query/src/types.ts:127](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L127) diff --git a/docs/framework/svelte/reference/type-aliases/createqueryoptions.md b/docs/framework/svelte/reference/type-aliases/createqueryoptions.md index 0f24070104..520d38f29f 100644 --- a/docs/framework/svelte/reference/type-aliases/createqueryoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createqueryoptions.md @@ -6,7 +6,7 @@ title: CreateQueryOptions # Type Alias: CreateQueryOptions\ ```ts -type CreateQueryOptions: CreateBaseQueryOptions; +type CreateQueryOptions = CreateBaseQueryOptions; ``` Options for createQuery @@ -19,8 +19,8 @@ Options for createQuery โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` ## Defined in -[packages/svelte-query/src/types.ts:38](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L38) +[packages/svelte-query/src/types.ts:39](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L39) diff --git a/docs/framework/svelte/reference/type-aliases/createqueryresult.md b/docs/framework/svelte/reference/type-aliases/createqueryresult.md index f57f253fea..04fc016e01 100644 --- a/docs/framework/svelte/reference/type-aliases/createqueryresult.md +++ b/docs/framework/svelte/reference/type-aliases/createqueryresult.md @@ -6,7 +6,7 @@ title: CreateQueryResult # Type Alias: CreateQueryResult\ ```ts -type CreateQueryResult: CreateBaseQueryResult; +type CreateQueryResult = CreateBaseQueryResult; ``` Result from createQuery @@ -19,4 +19,4 @@ Result from createQuery ## Defined in -[packages/svelte-query/src/types.ts:46](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L46) +[packages/svelte-query/src/types.ts:47](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L47) diff --git a/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md b/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md index 1c4afda88a..8a874c6d20 100644 --- a/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md @@ -6,7 +6,7 @@ title: DefinedCreateBaseQueryResult # Type Alias: DefinedCreateBaseQueryResult\ ```ts -type DefinedCreateBaseQueryResult: Readable>; +type DefinedCreateBaseQueryResult = Readable>; ``` Options for createBaseQuery with initialData @@ -19,4 +19,4 @@ Options for createBaseQuery with initialData ## Defined in -[packages/svelte-query/src/types.ts:75](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L75) +[packages/svelte-query/src/types.ts:76](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L76) diff --git a/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md b/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md index 7f360dc680..bcf78ad036 100644 --- a/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md @@ -6,7 +6,7 @@ title: DefinedCreateQueryResult # Type Alias: DefinedCreateQueryResult\ ```ts -type DefinedCreateQueryResult: DefinedCreateBaseQueryResult; +type DefinedCreateQueryResult = DefinedCreateBaseQueryResult; ``` Options for createQuery with initialData @@ -19,4 +19,4 @@ Options for createQuery with initialData ## Defined in -[packages/svelte-query/src/types.ts:81](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L81) +[packages/svelte-query/src/types.ts:82](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L82) diff --git a/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md b/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md index 95a0613537..176d91c61d 100644 --- a/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md +++ b/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md @@ -6,7 +6,7 @@ title: DefinedInitialDataOptions # Type Alias: DefinedInitialDataOptions\ ```ts -type DefinedInitialDataOptions: CreateQueryOptions & object; +type DefinedInitialDataOptions = CreateQueryOptions & object; ``` ## Type declaration @@ -14,7 +14,9 @@ type DefinedInitialDataOptions: CreateQu ### initialData ```ts -initialData: NonUndefinedGuard | () => NonUndefinedGuard; +initialData: + | NonUndefinedGuard +| () => NonUndefinedGuard; ``` ## Type Parameters @@ -25,8 +27,8 @@ initialData: NonUndefinedGuard | () => NonUndefinedGuard ```ts -type MutationStateOptions: object; +type MutationStateOptions = object; ``` Options for useMutationState @@ -31,7 +31,9 @@ optional select: (mutation) => TResult; #### Parameters -โ€ข **mutation**: `Mutation`\<`unknown`, `DefaultError`, `unknown`, `unknown`\> +##### mutation + +`Mutation`\<`unknown`, `DefaultError`, `unknown`, `unknown`\> #### Returns @@ -39,4 +41,4 @@ optional select: (mutation) => TResult; ## Defined in -[packages/svelte-query/src/types.ts:140](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L140) +[packages/svelte-query/src/types.ts:135](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L135) diff --git a/docs/framework/svelte/reference/type-aliases/queriesoptions.md b/docs/framework/svelte/reference/type-aliases/queriesoptions.md index 0f6fe1097b..831379b4f4 100644 --- a/docs/framework/svelte/reference/type-aliases/queriesoptions.md +++ b/docs/framework/svelte/reference/type-aliases/queriesoptions.md @@ -6,19 +6,19 @@ title: QueriesOptions # Type Alias: QueriesOptions\ ```ts -type QueriesOptions: TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetQueryObserverOptionsForCreateQueries] : T extends [infer Head, ...(infer Tails)] ? QueriesOptions<[...Tails], [...TResults, GetQueryObserverOptionsForCreateQueries], [...TDepth, 1]> : ReadonlyArray extends T ? T : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverOptionsForCreateQueries[] : QueryObserverOptionsForCreateQueries[]; +type QueriesOptions = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetQueryObserverOptionsForCreateQueries] : T extends [infer Head, ...(infer Tails)] ? QueriesOptions<[...Tails], [...TResults, GetQueryObserverOptionsForCreateQueries], [...TDepth, 1]> : ReadonlyArray extends T ? T : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverOptionsForCreateQueries[] : QueryObserverOptionsForCreateQueries[]; ``` QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param ## Type Parameters -โ€ข **T** _extends_ `any`[] +โ€ข **T** *extends* `any`[] -โ€ข **TResults** _extends_ `any`[] = [] +โ€ข **TResults** *extends* `any`[] = [] -โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] +โ€ข **TDepth** *extends* `ReadonlyArray`\<`number`\> = [] ## Defined in -[packages/svelte-query/src/createQueries.ts:129](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQueries.ts#L129) +[packages/svelte-query/src/createQueries.ts:129](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQueries.ts#L129) diff --git a/docs/framework/svelte/reference/type-aliases/queriesresults.md b/docs/framework/svelte/reference/type-aliases/queriesresults.md index 7ce41d896f..f02e4cfa9f 100644 --- a/docs/framework/svelte/reference/type-aliases/queriesresults.md +++ b/docs/framework/svelte/reference/type-aliases/queriesresults.md @@ -6,19 +6,19 @@ title: QueriesResults # Type Alias: QueriesResults\ ```ts -type QueriesResults: TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryResult] : T extends [infer Head, ...(infer Tails)] ? QueriesResults<[...Tails], [...TResults, GetCreateQueryResult], [...TDepth, 1]> : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverResult[] : QueryObserverResult[]; +type QueriesResults = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryResult] : T extends [infer Head, ...(infer Tails)] ? QueriesResults<[...Tails], [...TResults, GetCreateQueryResult], [...TDepth, 1]> : { [K in keyof T]: GetCreateQueryResult }; ``` QueriesResults reducer recursively maps type param to results ## Type Parameters -โ€ข **T** _extends_ `any`[] +โ€ข **T** *extends* `any`[] -โ€ข **TResults** _extends_ `any`[] = [] +โ€ข **TResults** *extends* `any`[] = [] -โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] +โ€ข **TDepth** *extends* `ReadonlyArray`\<`number`\> = [] ## Defined in -[packages/svelte-query/src/createQueries.ts:171](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/createQueries.ts#L171) +[packages/svelte-query/src/createQueries.ts:171](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/createQueries.ts#L171) diff --git a/docs/framework/svelte/reference/type-aliases/storeorval.md b/docs/framework/svelte/reference/type-aliases/storeorval.md index 7f7c5d5125..b3151118ff 100644 --- a/docs/framework/svelte/reference/type-aliases/storeorval.md +++ b/docs/framework/svelte/reference/type-aliases/storeorval.md @@ -6,7 +6,7 @@ title: StoreOrVal # Type Alias: StoreOrVal\ ```ts -type StoreOrVal: T | Readable; +type StoreOrVal = T | Readable; ``` Allows a type to be either the base object or a store of that object @@ -17,4 +17,4 @@ Allows a type to be either the base object or a store of that object ## Defined in -[packages/svelte-query/src/types.ts:20](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/types.ts#L20) +[packages/svelte-query/src/types.ts:21](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/types.ts#L21) diff --git a/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md b/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md index de13b3d802..88747af68f 100644 --- a/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md +++ b/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md @@ -6,7 +6,7 @@ title: UndefinedInitialDataOptions # Type Alias: UndefinedInitialDataOptions\ ```ts -type UndefinedInitialDataOptions: CreateQueryOptions & object; +type UndefinedInitialDataOptions = CreateQueryOptions & object; ``` ## Type declaration @@ -14,7 +14,7 @@ type UndefinedInitialDataOptions: Create ### initialData? ```ts -optional initialData: undefined; +optional initialData: InitialDataFunction>; ``` ## Type Parameters @@ -25,8 +25,8 @@ optional initialData: undefined; โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` +โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` ## Defined in -[packages/svelte-query/src/queryOptions.ts:4](https://github.com/TanStack/query/blob/dac5da5416b82b0be38a8fb34dde1fc6670f0a59/packages/svelte-query/src/queryOptions.ts#L4) +[packages/svelte-query/src/queryOptions.ts:9](https://github.com/TanStack/query/blob/main/packages/svelte-query/src/queryOptions.ts#L9) diff --git a/docs/framework/svelte/reference/variables/hydrationboundary.md b/docs/framework/svelte/reference/variables/hydrationboundary.md new file mode 100644 index 0000000000..3015e71d81 --- /dev/null +++ b/docs/framework/svelte/reference/variables/hydrationboundary.md @@ -0,0 +1,14 @@ +--- +id: HydrationBoundary +title: HydrationBoundary +--- + +# Variable: HydrationBoundary + +```ts +const HydrationBoundary: LegacyComponentType; +``` + +## Defined in + +node\_modules/.pnpm/svelte@5.26.1/node\_modules/svelte/types/index.d.ts:2675 diff --git a/docs/framework/vue/reactivity.md b/docs/framework/vue/reactivity.md index 50e5b8874f..6ad9a459a1 100644 --- a/docs/framework/vue/reactivity.md +++ b/docs/framework/vue/reactivity.md @@ -155,7 +155,7 @@ export function useUserProjects(userId: MaybeRef) { } ``` -More details on this option can be found on the [useQuery reference](./reference/useQuery.md) page. +More details on this option can be found on the [useQuery reference](../reference/useQuery.md) page. ## Immutability diff --git a/docs/reference/QueryCache.md b/docs/reference/QueryCache.md index cd3e0f2a51..2b3843cc1f 100644 --- a/docs/reference/QueryCache.md +++ b/docs/reference/QueryCache.md @@ -75,8 +75,8 @@ const queries = queryCache.findAll(queryKey) **Options** -- `queryKey?: QueryKey`: [Query Keys](../framework/react/guides/query-keys.md) -- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters.md#query-filters) +- `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md) +- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) **Returns** @@ -118,6 +118,6 @@ queryCache.clear() ## Further reading To get a better understanding how the QueryCache works internally, have a look at [#18: Inside React Query -](../framework/react/community/tkdodos-blog.md#18-inside-react-query) from the Community Resources. +](../../framework/react/community/tkdodos-blog.md#18-inside-react-query) from the Community Resources. [//]: # 'Materials' diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md index 8ce2c3b510..78fab85092 100644 --- a/docs/reference/QueryClient.md +++ b/docs/reference/QueryClient.md @@ -63,7 +63,7 @@ Its available methods are: - `defaultOptions?: DefaultOptions` - Optional - Define defaults for all queries and mutations using this queryClient. - - You can also define defaults to be used for [hydration](../framework/react/reference/hydration) + - You can also define defaults to be used for [hydration](../../framework/react/reference/hydration.md) ## `queryClient.fetchQuery` @@ -95,7 +95,7 @@ try { **Options** -The options for `fetchQuery` are exactly the same as those of [`useQuery`](../framework/react/reference/useQuery), except the following: `enabled, refetchInterval, refetchIntervalInBackground, refetchOnWindowFocus, refetchOnReconnect, refetchOnMount, notifyOnChangeProps, throwOnError, select, suspense, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/TanStack/query/blob/7cd2d192e6da3df0b08e334ea1cf04cd70478827/packages/query-core/src/types.ts#L119) for more clarity. +The options for `fetchQuery` are exactly the same as those of [`useQuery`](../../framework/react/reference/useQuery.md), except the following: `enabled, refetchInterval, refetchIntervalInBackground, refetchOnWindowFocus, refetchOnReconnect, refetchOnMount, notifyOnChangeProps, throwOnError, select, suspense, placeholderData`; which are strictly for useQuery and useInfiniteQuery. You can check the [source code](https://github.com/TanStack/query/blob/7cd2d192e6da3df0b08e334ea1cf04cd70478827/packages/query-core/src/types.ts#L119) for more clarity. **Returns** @@ -172,7 +172,7 @@ const data = queryClient.getQueryData(queryKey) **Options** -- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys) +- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md) **Returns** @@ -234,7 +234,7 @@ const data = queryClient.getQueriesData(filters) **Options** -- `filters: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) +- `filters: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) - if a filter is passed, the data with queryKeys matching the filter will be returned **Returns** @@ -260,7 +260,7 @@ queryClient.setQueryData(queryKey, updater) **Options** -- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys) +- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md) - `updater: TQueryFnData | undefined | ((oldData: TQueryFnData | undefined) => TQueryFnData | undefined)` - If non-function is passed, the data will be updated to this value - If a function is passed, it will receive the old data value and be expected to return a new one. @@ -298,7 +298,7 @@ console.log(state.dataUpdatedAt) **Options** -- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys) +- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md) ## `queryClient.setQueriesData` @@ -310,7 +310,7 @@ queryClient.setQueriesData(filters, updater) **Options** -- `filters: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) +- `filters: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) - if a filter is passed, queryKeys matching the filter will be updated - `updater: TQueryFnData | (oldData: TQueryFnData | undefined) => TQueryFnData` - the [setQueryData](#queryclientsetquerydata) updater function or new data, will be called for each matching queryKey @@ -335,8 +335,8 @@ await queryClient.invalidateQueries( **Options** -- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) - - `queryKey?: QueryKey`: [Query Keys](../framework/react/guides/query-keys) +- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) + - `queryKey?: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md) - `refetchType?: 'active' | 'inactive' | 'all' | 'none'` - Defaults to `'active'` - When set to `active`, only queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will be refetched in the background. @@ -377,7 +377,7 @@ await queryClient.refetchQueries({ **Options** -- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) +- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) - `options?: RefetchOptions`: - `throwOnError?: boolean` - When set to `true`, this method will throw if any of the query refetch tasks fail. @@ -402,7 +402,7 @@ await queryClient.cancelQueries({ queryKey: ['posts'], exact: true }) **Options** -- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) +- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) **Returns** @@ -418,7 +418,7 @@ queryClient.removeQueries({ queryKey, exact: true }) **Options** -- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) +- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) **Returns** @@ -441,7 +441,7 @@ queryClient.resetQueries({ queryKey, exact: true }) **Options** -- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) +- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) - `options?: ResetOptions`: - `throwOnError?: boolean` - When set to `true`, this method will throw if any of the query refetch tasks fail. @@ -464,11 +464,11 @@ if (queryClient.isFetching()) { } ``` -TanStack Query also exports a handy [`useIsFetching`](../framework/react/reference/useIsFetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache. +TanStack Query also exports a handy [`useIsFetching`](../../framework/react/reference/useIsFetching.md) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache. **Options** -- `filters?: QueryFilters`: [Query Filters](../framework/react/guides/filters#query-filters) +- `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) **Returns** @@ -484,11 +484,11 @@ if (queryClient.isMutating()) { } ``` -TanStack Query also exports a handy [`useIsMutating`](../framework/react/reference/useIsMutating) hook that will let you subscribe to this state in your components without creating a manual subscription to the mutation cache. +TanStack Query also exports a handy [`useIsMutating`](../../framework/react/reference/useIsMutating.md) hook that will let you subscribe to this state in your components without creating a manual subscription to the mutation cache. **Options** -- `filters: MutationFilters`: [Mutation Filters](../framework/react/guides/filters#mutation-filters) +- `filters: MutationFilters`: [Mutation Filters](../../framework/react/guides/filters.md#mutation-filters) **Returns** @@ -539,7 +539,7 @@ function Component() { **Options** -- `queryKey: QueryKey`: [Query Keys](../framework/react/guides/query-keys) +- `queryKey: QueryKey`: [Query Keys](../../framework/react/guides/query-keys.md) - `options: QueryOptions` > As stated in [`getQueryDefaults`](#queryclientgetquerydefaults), the order of registration of query defaults does matter. diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index 1926b0fd68..6c1444c254 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -5,7 +5,7 @@ title: streamedQuery `streamedQuery` is a helper function to create a query function that streams data from an [AsyncIterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator). Data will be an Array of all the chunks received. The query will be in a `pending` state until the first chunk of data is received, but will go to `success` after that. The query will stay in fetchStatus `fetching` until the stream ends. -To see `streamedQuery` in action, take a look at our [chat example](../framework/react/examples/chat). +To see `streamedQuery` in action, take a look at our chat example in the [examples/react/chat directory on GitHub](https://github.com/TanStack/query/tree/main/examples/react/chat). ```tsx import { experimental_streamedQuery as streamedQuery } from '@tanstack/react-query' @@ -25,7 +25,7 @@ const query = queryOptions({ - `queryFn: (context: QueryFunctionContext) => Promise>` - **Required** - The function that returns a Promise of an AsyncIterable of data to stream in. - - Receives a [QueryFunctionContext](../guides/query-functions.md#queryfunctioncontext) + - Receives a [QueryFunctionContext](../../framework/react/guides/query-functions.md#queryfunctioncontext) - `refetchMode?: 'append' | 'reset' | 'replace` - Optional - Defines how refetches are handled. @@ -33,3 +33,4 @@ const query = queryOptions({ - When set to `'reset'`, the query will erase all data and go back into `pending` state. - When set to `'append'`, data will be appended to existing data. - When set to `'replace'`, data will be written to the cache at the end of the stream. + diff --git a/package.json b/package.json index 835dd44626..879e472583 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "prettier": "prettier --ignore-unknown '**/*'", "prettier:write": "pnpm run prettier --write", "docs:generate": "node scripts/generateDocs.js", - "cipublish": "node scripts/publish.js" + "cipublish": "node scripts/publish.js", + "verify-links": "node scripts/verify-links.ts" }, "nx": { "includedScripts": [ @@ -42,7 +43,7 @@ "@eslint-react/eslint-plugin": "^1.19.0", "@tanstack/config": "^0.14.2", "@testing-library/jest-dom": "^6.6.3", - "@types/node": "^22.9.3", + "@types/node": "^22.15.3", "@types/react": "^19.0.1", "@types/react-dom": "^19.0.2", "@vitest/coverage-istanbul": "^3.1.1", @@ -51,8 +52,10 @@ "esbuild-plugin-file-path-extensions": "^2.1.4", "eslint": "^9.15.0", "eslint-plugin-react-hooks": "^5.2.0", + "fast-glob": "^3.3.3", "jsdom": "^25.0.1", "knip": "^5.50.2", + "markdown-link-extractor": "^4.0.2", "nx": "20.7.2", "premove": "^4.0.0", "prettier": "^3.5.3", @@ -61,6 +64,7 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "sherif": "^1.0.0", + "ts-node": "^10.9.2", "tsup": "^8.4.0", "typescript": "5.8.3", "typescript50": "npm:typescript@5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf50e50f0a..35a700d63f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,7 +51,7 @@ importers: specifier: ^6.6.3 version: 6.6.3 '@types/node': - specifier: ^22.9.3 + specifier: ^22.15.3 version: 22.15.3 '@types/react': specifier: ^19.0.1 @@ -77,12 +77,18 @@ importers: eslint-plugin-react-hooks: specifier: ^5.2.0 version: 5.2.0(eslint@9.15.0(jiti@2.4.2)) + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 jsdom: specifier: ^25.0.1 version: 25.0.1 knip: specifier: ^5.50.2 version: 5.50.2(@types/node@22.15.3)(typescript@5.8.3) + markdown-link-extractor: + specifier: ^4.0.2 + version: 4.0.2 nx: specifier: 20.7.2 version: 20.7.2 @@ -107,6 +113,9 @@ importers: sherif: specifier: ^1.0.0 version: 1.0.0 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) tsup: specifier: ^8.4.0 version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) @@ -1514,7 +1523,7 @@ importers: version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(yaml@2.6.1) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7) + version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) '@astrojs/vercel': specifier: ^8.1.3 version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) @@ -1532,7 +1541,7 @@ importers: version: 1.9.5 tailwindcss: specifier: ^3.4.7 - version: 3.4.7 + version: 3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1910,7 +1919,7 @@ importers: version: 4.1.5(picomatch@4.0.2)(svelte@5.26.1)(typescript@5.8.3) tailwindcss: specifier: ^3.4.7 - version: 3.4.7 + version: 3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 @@ -2736,7 +2745,7 @@ importers: version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1) + version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -2764,7 +2773,7 @@ importers: version: link:../svelte-query eslint-plugin-svelte: specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1) + version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -2795,7 +2804,7 @@ importers: version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1) + version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -4530,6 +4539,10 @@ packages: resolution: {integrity: sha512-LMvReIndW1ckvemElfDgTt282fb2C3C/ZXfsm0pJsTV5ZmtdelCHwzmgSBmY5fDr7D66XDp8EurotSE0K6BTvw==} engines: {node: '>=18.0'} + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + '@deno/shim-deno-test@0.5.0': resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} @@ -5859,6 +5872,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@js-temporal/polyfill@0.4.4': resolution: {integrity: sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg==} engines: {node: '>=12'} @@ -7375,6 +7391,18 @@ packages: vitest: optional: true + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tsconfig/svelte@5.0.4': resolution: {integrity: sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==} @@ -8032,6 +8060,10 @@ packages: peerDependencies: acorn: '>=8.9.0' + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + acorn@6.4.2: resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} engines: {node: '>=0.4.0'} @@ -8200,6 +8232,9 @@ packages: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -8757,6 +8792,13 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + chokidar@2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} @@ -9131,6 +9173,9 @@ packages: create-hmac@1.1.7: resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + croner@9.0.0: resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} engines: {node: '>=18.0'} @@ -9440,6 +9485,10 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -9578,6 +9627,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + encoding-sniffer@0.2.0: + resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -10699,6 +10751,9 @@ packages: html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + html-link-extractor@1.0.5: + resolution: {integrity: sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==} + html-minifier-terser@5.1.1: resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==} engines: {node: '>=6'} @@ -10739,6 +10794,9 @@ packages: htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} @@ -11818,6 +11876,9 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-fetch-happen@13.0.1: resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -11841,6 +11902,9 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + markdown-link-extractor@4.0.2: + resolution: {integrity: sha512-5cUOu4Vwx1wenJgxaudsJ8xwLUMN7747yDJX3V/L7+gi3e4MsCm7w5nbrDQQy8nEfnl4r5NV3pDXMAjhGXYXAw==} + markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -11850,6 +11914,11 @@ packages: peerDependencies: marked: '>=1 <12' + marked@12.0.2: + resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} + engines: {node: '>= 18'} + hasBin: true + marked@9.1.6: resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} engines: {node: '>= 16'} @@ -12892,6 +12961,12 @@ packages: parse5-html-rewriting-stream@7.1.0: resolution: {integrity: sha512-2ifK6Jb+ONoqOy5f+cYHsqvx1obHQdvIk13Jmt/5ezxP0U9p+fqd+R6O73KblGswyuzBYfetmsfK9ThMgnuPPg==} + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5-sax-parser@7.0.0: resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==} @@ -14835,6 +14910,20 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + ts-pattern@5.6.0: resolution: {integrity: sha512-SL8u60X5+LoEy9tmQHWCdPc2hhb2pKI6I1tU5Jue3v8+iRqZdcT3mWPwKKJy1fMfky6uha82c8ByHAE8PMhKHw==} @@ -15337,6 +15426,9 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + v8flags@4.0.1: resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} engines: {node: '>= 10.13.0'} @@ -16091,6 +16183,10 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -16508,13 +16604,13 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7)': + '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': dependencies: astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1) autoprefixer: 10.4.21(postcss@8.5.3) postcss: 8.5.3 - postcss-load-config: 4.0.2(postcss@8.5.3) - tailwindcss: 3.4.7 + postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) transitivePeerDependencies: - ts-node @@ -18371,6 +18467,10 @@ snapshots: '@cspell/url@8.17.1': {} + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + '@deno/shim-deno-test@0.5.0': {} '@deno/shim-deno@0.19.2': @@ -19721,6 +19821,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@js-temporal/polyfill@0.4.4': dependencies: jsbi: 4.3.0 @@ -21421,6 +21526,14 @@ snapshots: vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + '@tsconfig/svelte@5.0.4': {} '@tufjs/canonical-json@2.0.0': {} @@ -22319,6 +22432,10 @@ snapshots: dependencies: acorn: 8.14.1 + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.1 + acorn@6.4.2: {} acorn@8.14.1: {} @@ -22480,6 +22597,8 @@ snapshots: are-docs-informative@0.0.2: {} + arg@4.1.3: {} + arg@5.0.2: {} argparse@1.0.10: @@ -23293,6 +23412,29 @@ snapshots: check-error@2.1.1: {} + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.0 + htmlparser2: 9.1.0 + parse5: 7.2.1 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 6.21.0 + whatwg-mimetype: 4.0.0 + chokidar@2.1.8: dependencies: anymatch: 2.0.0 @@ -23716,6 +23858,8 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 + create-require@1.1.1: {} + croner@9.0.0: {} cross-env@7.0.3: @@ -24032,6 +24176,8 @@ snapshots: diff-sequences@29.6.3: {} + diff@4.0.2: {} + diff@5.2.0: {} diff@7.0.0: {} @@ -24180,6 +24326,11 @@ snapshots: encodeurl@2.0.0: {} + encoding-sniffer@0.2.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 @@ -24669,7 +24820,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1): + eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) '@jridgewell/sourcemap-codec': 1.5.0 @@ -24678,7 +24829,7 @@ snapshots: esutils: 2.0.3 known-css-properties: 0.35.0 postcss: 8.5.3 - postcss-load-config: 3.1.4(postcss@8.5.3) + postcss-load-config: 3.1.4(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) postcss-safe-parser: 6.0.0(postcss@8.5.3) postcss-selector-parser: 6.1.1 semver: 7.7.1 @@ -25735,6 +25886,10 @@ snapshots: html-escaper@3.0.3: {} + html-link-extractor@1.0.5: + dependencies: + cheerio: 1.0.0 + html-minifier-terser@5.1.1: dependencies: camel-case: 4.1.2 @@ -25796,6 +25951,13 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 + htmlparser2@9.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + http-cache-semantics@4.1.1: {} http-errors@2.0.0: @@ -26957,6 +27119,8 @@ snapshots: dependencies: semver: 7.7.1 + make-error@1.3.6: {} + make-fetch-happen@13.0.1: dependencies: '@npmcli/agent': 2.2.2 @@ -27009,6 +27173,11 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + markdown-link-extractor@4.0.2: + dependencies: + html-link-extractor: 1.0.5 + marked: 12.0.2 + markdown-table@3.0.4: {} marked-terminal@6.2.0(marked@9.1.6): @@ -27021,6 +27190,8 @@ snapshots: node-emoji: 2.1.3 supports-hyperlinks: 3.0.0 + marked@12.0.2: {} + marked@9.1.6: {} marky@1.2.5: {} @@ -28673,6 +28844,15 @@ snapshots: parse5: 7.2.1 parse5-sax-parser: 7.0.0 + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.2.1 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.2.1 + parse5-sax-parser@7.0.0: dependencies: parse5: 7.2.1 @@ -28823,19 +29003,21 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.3 - postcss-load-config@3.1.4(postcss@8.5.3): + postcss-load-config@3.1.4(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.5.3 + ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) - postcss-load-config@4.0.2(postcss@8.5.3): + postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): dependencies: lilconfig: 3.1.2 yaml: 2.6.1 optionalDependencies: postcss: 8.5.3 + ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.6.1): dependencies: @@ -30599,7 +30781,7 @@ snapshots: system-architecture@0.1.0: {} - tailwindcss@3.4.7: + tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -30618,7 +30800,7 @@ snapshots: postcss: 8.5.3 postcss-import: 15.1.0(postcss@8.5.3) postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.2(postcss@8.5.3) + postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.1 resolve: 1.22.10 @@ -30872,6 +31054,24 @@ snapshots: ts-interface-checker@0.1.13: {} + ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.15.3 + acorn: 8.14.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.8.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + ts-pattern@5.6.0: {} tsconfck@3.1.5(typescript@5.8.3): @@ -31346,6 +31546,8 @@ snapshots: uuid@8.3.2: {} + v8-compile-cache-lib@3.0.1: {} + v8flags@4.0.1: {} validate-html-nesting@1.2.2: {} @@ -32192,6 +32394,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yn@3.1.1: {} + yocto-queue@0.1.0: {} yocto-queue@1.1.1: {} diff --git a/scripts/generateDocs.js b/scripts/generateDocs.js index fdf6aac0a7..a02332bd46 100644 --- a/scripts/generateDocs.js +++ b/scripts/generateDocs.js @@ -29,4 +29,36 @@ const packages = [ await generateReferenceDocs({ packages }) +import fg from 'fast-glob' +import { readFileSync, writeFileSync } from 'node:fs' + +// Define the pattern to match all generated markdown files +const markdownFilesPattern = 'docs/framework/{angular,svelte}/reference/**/*.md' + +// Find all markdown files matching the pattern +const markdownFiles = await fg(markdownFilesPattern) + +console.log(`Found ${markdownFiles.length} markdown files to process\n`) + +// Process each markdown file +markdownFiles.forEach(file => { + const content = readFileSync(file, 'utf-8') + let updatedContent = content + updatedContent = updatedContent.replaceAll(/\]\(\.\.\//gm, '](../../') + // updatedContent = content.replaceAll(/\]\(\.\//gm, '](../') + updatedContent = updatedContent.replaceAll( + /\]\((?!https?:\/\/|\/\/|\/|\.\/|\.\.\/|#)([^)]+)\)/gm, + (match, p1) => `](../${p1})` + ) + + // Write the updated content back to the file + if (updatedContent !== content) { + writeFileSync(file, updatedContent, 'utf-8') + console.log(`Processed file: ${file}`) + } +}) + +console.log('\nโœ… All markdown files have been processed!') + + process.exit(0) diff --git a/scripts/verify-links.ts b/scripts/verify-links.ts new file mode 100644 index 0000000000..023e981c52 --- /dev/null +++ b/scripts/verify-links.ts @@ -0,0 +1,130 @@ +import fg from 'fast-glob' +import { readFileSync, existsSync, statSync } from 'node:fs' +// @ts-ignore +import markdownLinkExtractor from 'markdown-link-extractor' +import path, { join, dirname, resolve } from 'node:path' + +interface MarkdownLink { + href: string + text: string +} + +function isRelativeLink(link: string) { + return ( + link && + !link.startsWith('http://') && + !link.startsWith('https://') && + !link.startsWith('//') && + !link.startsWith('#') && + !link.startsWith('mailto:') + ) +} + +function normalizePath(p: string): string { + // Remove any trailing .md + p = p.replace(`${path.extname(p)}`, '') + return p +} + +function fileExistsForLink(link: string, markdownFile: string, errors: any[]): boolean { + // Remove hash if present + const filePart = link.split('#')[0] + // If the link is empty after removing hash, it's not a file + if (!filePart) return false + + // Normalize the markdown file path + markdownFile = normalizePath(markdownFile) + + // Normalize the path + const normalizedPath = normalizePath(filePart) + + // Resolve the path relative to the markdown file's directory + let absPath = resolve(markdownFile, normalizedPath) + + // Ensure the resolved path is within /docs + const docsRoot = resolve('docs') + if (!absPath.startsWith(docsRoot)) { + errors.push({ + link, + markdownFile, + resolvedPath: absPath, + reason: 'navigates above /docs, invalid', + }) + return false + } + + // Check if this is an example path + const isExample = absPath.includes('/examples/') + + let exists = false + + if (isExample) { + // Transform /docs/framework/{framework}/examples/ to /examples/{framework}/ + absPath = absPath.replace(/\/docs\/framework\/([^/]+)\/examples\//, '/examples/$1/') + // For examples, we want to check if the directory exists + exists = existsSync(absPath) && statSync(absPath).isDirectory() + } else { + // For non-examples, we want to check if the .md file exists + if (!absPath.endsWith('.md')) { + absPath = `${absPath}.md` + } + exists = existsSync(absPath) + } + + if (!exists) { + errors.push({ + link, + markdownFile, + resolvedPath: absPath, + reason: 'not found', + }) + } + return exists +} + +async function findMarkdownLinks() { + // Find all markdown files in docs directory + const markdownFiles = await fg('docs/**/*.md', { + ignore: ['**/node_modules/**'], + }) + + console.log(`Found ${markdownFiles.length} markdown files\n`) + + const errors: any[] = [] + + // Process each file + for (const file of markdownFiles) { + const content = readFileSync(file, 'utf-8') + const links: any[] = markdownLinkExtractor(content) + + const filteredLinks = links.filter((link: any) => { + if (typeof link === 'string') { + return isRelativeLink(link) + } else if (link && typeof link.href === 'string') { + return isRelativeLink(link.href) + } + return false + }) + + if (filteredLinks.length > 0) { + filteredLinks.forEach((link: any) => { + const href = typeof link === 'string' ? link : link.href + fileExistsForLink(href, file, errors) + }) + } + } + + if (errors.length > 0) { + console.log(`\nโŒ Found ${errors.length} broken links:`) + errors.forEach(err => { + console.log( + `${err.link}\n in: ${err.markdownFile}\n path: ${err.resolvedPath}\n why: ${err.reason}\n` + ) + }) + process.exit(1) + } else { + console.log('\nโœ… No broken links found!') + } +} + +findMarkdownLinks().catch(console.error) From 20c36c8bf3c87f7637f2c6b476451b748b4c117d Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sat, 24 May 2025 06:48:59 +0000 Subject: [PATCH 098/432] ci: apply automated fixes --- .../functions/infinitequeryoptions.md | 57 +++++++++-- .../functions/injectinfinitequery.md | 33 +++++-- .../reference/functions/injectmutation.md | 5 +- .../functions/injectmutationstate.md | 5 +- .../reference/functions/injectqueries.md | 9 +- .../reference/functions/injectquery.md | 29 ++++-- .../reference/functions/injectqueryclient.md | 3 +- .../reference/functions/mutationoptions.md | 14 +-- .../functions/providetanstackquery.md | 5 +- .../reference/functions/queryfeature.md | 2 +- .../reference/functions/queryoptions.md | 90 +++++++++--------- .../reference/functions/withdevtools.md | 9 +- docs/framework/angular/reference/index.md | 4 +- .../interfaces/basemutationnarrowing.md | 94 +++++++++++++++++-- .../interfaces/basequerynarrowing.md | 4 +- .../interfaces/createbasequeryoptions.md | 2 +- .../interfaces/createinfinitequeryoptions.md | 2 +- .../interfaces/createqueryoptions.md | 2 +- .../reference/interfaces/devtoolsoptions.md | 26 ++--- .../reference/interfaces/queryfeature.md | 6 +- .../type-aliases/createbasemutationresult.md | 12 ++- .../type-aliases/createbasequeryresult.md | 6 +- .../type-aliases/createinfinitequeryresult.md | 6 +- .../type-aliases/createmutateasyncfunction.md | 3 +- .../type-aliases/createmutatefunction.md | 4 +- .../type-aliases/createmutationresult.md | 4 +- .../type-aliases/createqueryresult.md | 2 +- .../definedcreateinfinitequeryresult.md | 6 +- .../type-aliases/definedcreatequeryresult.md | 6 +- .../definedinitialdatainfiniteoptions.md | 20 +++- .../type-aliases/definedinitialdataoptions.md | 10 +- .../type-aliases/developertoolsfeature.md | 2 +- .../type-aliases/persistqueryclientfeature.md | 2 +- .../reference/type-aliases/queriesoptions.md | 34 ++++++- .../reference/type-aliases/queriesresults.md | 30 +++++- .../type-aliases/queryfeaturekind.md | 2 +- .../reference/type-aliases/queryfeatures.md | 4 +- .../undefinedinitialdatainfiniteoptions.md | 20 +++- .../undefinedinitialdataoptions.md | 7 +- .../unusedskiptokeninfiniteoptions.md | 21 ++++- .../type-aliases/unusedskiptokenoptions.md | 8 +- .../reference/variables/queryfeatures.md | 2 +- docs/framework/react/guides/mutations.md | 2 +- .../functions/createinfinitequery.md | 10 +- .../reference/functions/createmutation.md | 5 +- .../reference/functions/createqueries.md | 13 ++- .../svelte/reference/functions/createquery.md | 21 +++-- .../functions/infinitequeryoptions.md | 19 +++- .../reference/functions/queryoptions.md | 12 ++- .../svelte/reference/functions/usehydrate.md | 5 +- docs/framework/svelte/reference/index.md | 4 +- .../type-aliases/createbasemutationresult.md | 12 ++- .../type-aliases/createbasequeryoptions.md | 10 +- .../type-aliases/createbasequeryresult.md | 4 +- .../createinfinitequeryoptions.md | 18 +++- .../type-aliases/createinfinitequeryresult.md | 4 +- .../type-aliases/createmutateasyncfunction.md | 3 +- .../type-aliases/createmutatefunction.md | 4 +- .../type-aliases/createmutationoptions.md | 5 +- .../type-aliases/createmutationresult.md | 4 +- .../type-aliases/createqueryoptions.md | 5 +- .../type-aliases/createqueryresult.md | 2 +- .../definedcreatebasequeryresult.md | 4 +- .../type-aliases/definedcreatequeryresult.md | 5 +- .../type-aliases/definedinitialdataoptions.md | 7 +- .../type-aliases/hydrationboundary.md | 4 +- .../type-aliases/mutationstateoptions.md | 2 +- .../reference/type-aliases/queriesoptions.md | 35 ++++++- .../reference/type-aliases/queriesresults.md | 21 ++++- .../reference/type-aliases/storeorval.md | 2 +- .../undefinedinitialdataoptions.md | 5 +- .../reference/variables/hydrationboundary.md | 4 +- docs/reference/streamedQuery.md | 1 - scripts/generateDocs.js | 5 +- scripts/verify-links.ts | 17 +++- 75 files changed, 660 insertions(+), 226 deletions(-) diff --git a/docs/framework/angular/reference/functions/infinitequeryoptions.md b/docs/framework/angular/reference/functions/infinitequeryoptions.md index c32914b159..92894f5bcd 100644 --- a/docs/framework/angular/reference/functions/infinitequeryoptions.md +++ b/docs/framework/angular/reference/functions/infinitequeryoptions.md @@ -16,7 +16,22 @@ The infinite query options to tag with the type from `queryFn`. ## Call Signature ```ts -function infiniteQueryOptions(options): DefinedInitialDataInfiniteOptions & object +function infiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>( + options, +): DefinedInitialDataInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam +> & + object ``` Allows to share and re-use infinite query options in a type-safe way. @@ -31,7 +46,7 @@ The `queryKey` will be tagged with the type from `queryFn`. โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` @@ -62,7 +77,22 @@ The infinite query options to tag with the type from `queryFn`. ## Call Signature ```ts -function infiniteQueryOptions(options): UnusedSkipTokenInfiniteOptions & object +function infiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>( + options, +): UnusedSkipTokenInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam +> & + object ``` Allows to share and re-use infinite query options in a type-safe way. @@ -77,7 +107,7 @@ The `queryKey` will be tagged with the type from `queryFn`. โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` @@ -108,7 +138,22 @@ The infinite query options to tag with the type from `queryFn`. ## Call Signature ```ts -function infiniteQueryOptions(options): UndefinedInitialDataInfiniteOptions & object +function infiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>( + options, +): UndefinedInitialDataInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam +> & + object ``` Allows to share and re-use infinite query options in a type-safe way. @@ -123,7 +168,7 @@ The `queryKey` will be tagged with the type from `queryFn`. โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/angular/reference/functions/injectinfinitequery.md b/docs/framework/angular/reference/functions/injectinfinitequery.md index fc90fbabd3..7cc9e202e5 100644 --- a/docs/framework/angular/reference/functions/injectinfinitequery.md +++ b/docs/framework/angular/reference/functions/injectinfinitequery.md @@ -19,7 +19,16 @@ Additional configuration. ## Call Signature ```ts -function injectInfiniteQuery(injectInfiniteQueryFn, options?): DefinedCreateInfiniteQueryResult +function injectInfiniteQuery< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>( + injectInfiniteQueryFn, + options?, +): DefinedCreateInfiniteQueryResult ``` Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key. @@ -33,7 +42,7 @@ Infinite queries can additively "load more" data onto an existing set of data or โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` @@ -74,7 +83,13 @@ Additional configuration. ## Call Signature ```ts -function injectInfiniteQuery(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult +function injectInfiniteQuery< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult ``` Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key. @@ -88,7 +103,7 @@ Infinite queries can additively "load more" data onto an existing set of data or โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` @@ -129,7 +144,13 @@ Additional configuration. ## Call Signature ```ts -function injectInfiniteQuery(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult +function injectInfiniteQuery< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult ``` Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key. @@ -143,7 +164,7 @@ Infinite queries can additively "load more" data onto an existing set of data or โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/angular/reference/functions/injectmutation.md b/docs/framework/angular/reference/functions/injectmutation.md index 7b95480f47..6711e90c85 100644 --- a/docs/framework/angular/reference/functions/injectmutation.md +++ b/docs/framework/angular/reference/functions/injectmutation.md @@ -6,7 +6,10 @@ title: injectMutation # Function: injectMutation() ```ts -function injectMutation(injectMutationFn, options?): CreateMutationResult +function injectMutation( + injectMutationFn, + options?, +): CreateMutationResult ``` Injects a mutation: an imperative function that can be invoked which typically performs server side effects. diff --git a/docs/framework/angular/reference/functions/injectmutationstate.md b/docs/framework/angular/reference/functions/injectmutationstate.md index 80b1bdcd6a..16e31386fc 100644 --- a/docs/framework/angular/reference/functions/injectmutationstate.md +++ b/docs/framework/angular/reference/functions/injectmutationstate.md @@ -6,7 +6,10 @@ title: injectMutationState # Function: injectMutationState() ```ts -function injectMutationState(injectMutationStateFn, options?): Signal +function injectMutationState( + injectMutationStateFn, + options?, +): Signal ``` Injects a signal that tracks the state of all mutations. diff --git a/docs/framework/angular/reference/functions/injectqueries.md b/docs/framework/angular/reference/functions/injectqueries.md index 955bf00837..326e4faf2c 100644 --- a/docs/framework/angular/reference/functions/injectqueries.md +++ b/docs/framework/angular/reference/functions/injectqueries.md @@ -6,14 +6,17 @@ title: injectQueries # Function: injectQueries() ```ts -function injectQueries(__namedParameters, injector?): Signal +function injectQueries( + __namedParameters, + injector?, +): Signal ``` ## Type Parameters -โ€ข **T** *extends* `any`[] +โ€ข **T** _extends_ `any`[] -โ€ข **TCombinedResult** = `T` *extends* [] ? [] : `T` *extends* [`Head`] ? [`GetResults`\<`Head`\>] : `T` *extends* [`Head`, `...Tail[]`] ? [`...Tail[]`] *extends* [] ? [] : [`...Tail[]`] *extends* [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] *extends* [`Head`, `...Tail[]`] ? [`...Tail[]`] *extends* [] ? [] : [`...Tail[]`] *extends* [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] *extends* [`Head`, `...Tail[]`] ? [`...(...)[]`] *extends* [] ? [] : ... *extends* ... ? ... : ... : [`...(...)[]`] *extends* ...[] ? ...[] : ...[] : [`...Tail[]`] *extends* `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` *extends* `TData` ? `TQueryFnData` : `TData`, `unknown` *extends* `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` *extends* `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` *extends* `TData` ? `TQueryFnData` : `TData`, `unknown` *extends* `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] +โ€ข **TCombinedResult** = `T` _extends_ [] ? [] : `T` _extends_ [`Head`] ? [`GetResults`\<`Head`\>] : `T` _extends_ [`Head`, `...Tail[]`] ? [`...Tail[]`] _extends_ [] ? [] : [`...Tail[]`] _extends_ [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] _extends_ [`Head`, `...Tail[]`] ? [`...Tail[]`] _extends_ [] ? [] : [`...Tail[]`] _extends_ [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] _extends_ [`Head`, `...Tail[]`] ? [`...(...)[]`] _extends_ [] ? [] : ... _extends_ ... ? ... : ... : [`...(...)[]`] _extends_ ...[] ? ...[] : ...[] : [`...Tail[]`] _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] ## Parameters diff --git a/docs/framework/angular/reference/functions/injectquery.md b/docs/framework/angular/reference/functions/injectquery.md index 27c0147848..74a2c1ecf6 100644 --- a/docs/framework/angular/reference/functions/injectquery.md +++ b/docs/framework/angular/reference/functions/injectquery.md @@ -8,6 +8,7 @@ title: injectQuery Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. **Basic example** + ```ts class ServiceOrComponent { query = injectQuery(() => ({ @@ -23,6 +24,7 @@ In the example below, the query will be automatically enabled and executed when to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled. **Reactive example** + ```ts class ServiceOrComponent { filter = signal('') @@ -51,12 +53,16 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries ## Call Signature ```ts -function injectQuery(injectQueryFn, options?): DefinedCreateQueryResult +function injectQuery( + injectQueryFn, + options?, +): DefinedCreateQueryResult ``` Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. **Basic example** + ```ts class ServiceOrComponent { query = injectQuery(() => ({ @@ -72,6 +78,7 @@ In the example below, the query will be automatically enabled and executed when to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled. **Reactive example** + ```ts class ServiceOrComponent { filter = signal('') @@ -93,7 +100,7 @@ class ServiceOrComponent { โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters @@ -140,12 +147,16 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries ## Call Signature ```ts -function injectQuery(injectQueryFn, options?): CreateQueryResult +function injectQuery( + injectQueryFn, + options?, +): CreateQueryResult ``` Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. **Basic example** + ```ts class ServiceOrComponent { query = injectQuery(() => ({ @@ -161,6 +172,7 @@ In the example below, the query will be automatically enabled and executed when to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled. **Reactive example** + ```ts class ServiceOrComponent { filter = signal('') @@ -182,7 +194,7 @@ class ServiceOrComponent { โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters @@ -229,12 +241,16 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries ## Call Signature ```ts -function injectQuery(injectQueryFn, options?): CreateQueryResult +function injectQuery( + injectQueryFn, + options?, +): CreateQueryResult ``` Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. **Basic example** + ```ts class ServiceOrComponent { query = injectQuery(() => ({ @@ -250,6 +266,7 @@ In the example below, the query will be automatically enabled and executed when to a truthy value. When the filter signal changes back to a falsy value, the query will be disabled. **Reactive example** + ```ts class ServiceOrComponent { filter = signal('') @@ -271,7 +288,7 @@ class ServiceOrComponent { โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters diff --git a/docs/framework/angular/reference/functions/injectqueryclient.md b/docs/framework/angular/reference/functions/injectqueryclient.md index b77145e6ed..fbe1a39573 100644 --- a/docs/framework/angular/reference/functions/injectqueryclient.md +++ b/docs/framework/angular/reference/functions/injectqueryclient.md @@ -31,8 +31,9 @@ Use `inject(QueryClient)` instead. If you need to get a `QueryClient` from a custom injector, use `injector.get(QueryClient)`. **Example** + ```ts -const queryClient = injectQueryClient(); +const queryClient = injectQueryClient() ``` ## Defined in diff --git a/docs/framework/angular/reference/functions/mutationoptions.md b/docs/framework/angular/reference/functions/mutationoptions.md index dc3f9eb4cb..ff7377df57 100644 --- a/docs/framework/angular/reference/functions/mutationoptions.md +++ b/docs/framework/angular/reference/functions/mutationoptions.md @@ -6,7 +6,9 @@ title: mutationOptions # Function: mutationOptions() ```ts -function mutationOptions(options): CreateMutationOptions +function mutationOptions( + options, +): CreateMutationOptions ``` Allows to share and re-use mutation options in a type-safe way. @@ -15,22 +17,22 @@ Allows to share and re-use mutation options in a type-safe way. ```ts export class QueriesService { - private http = inject(HttpClient); + private http = inject(HttpClient) updatePost(id: number) { return mutationOptions({ mutationFn: (post: Post) => Promise.resolve(post), - mutationKey: ["updatePost", id], + mutationKey: ['updatePost', id], onSuccess: (newPost) => { // ^? newPost: Post - this.queryClient.setQueryData(["posts", id], newPost); + this.queryClient.setQueryData(['posts', id], newPost) }, - }); + }) } } queries = inject(QueriesService) -idSignal = new Signal(0); +idSignal = new Signal(0) mutation = injectMutation(() => this.queries.updatePost(this.idSignal())) mutation.mutate({ title: 'New Title' }) diff --git a/docs/framework/angular/reference/functions/providetanstackquery.md b/docs/framework/angular/reference/functions/providetanstackquery.md index a72158e74f..3c83ce2bb6 100644 --- a/docs/framework/angular/reference/functions/providetanstackquery.md +++ b/docs/framework/angular/reference/functions/providetanstackquery.md @@ -45,6 +45,7 @@ export class AppModule {} You can also enable optional developer tools by adding `withDevtools`. By default the tools will then be loaded when your app is in development mode. + ```ts import { provideTanStackQuery, @@ -94,8 +95,8 @@ A set of providers to set up TanStack Query. ## See - - https://tanstack.com/query/v5/docs/framework/angular/quick-start - - withDevtools +- https://tanstack.com/query/v5/docs/framework/angular/quick-start +- withDevtools ## Defined in diff --git a/docs/framework/angular/reference/functions/queryfeature.md b/docs/framework/angular/reference/functions/queryfeature.md index 6e5f17c375..78d71ca0aa 100644 --- a/docs/framework/angular/reference/functions/queryfeature.md +++ b/docs/framework/angular/reference/functions/queryfeature.md @@ -13,7 +13,7 @@ Helper function to create an object that represents a Query feature. ## Type Parameters -โ€ข **TFeatureKind** *extends* `"DeveloperTools"` \| `"PersistQueryClient"` +โ€ข **TFeatureKind** _extends_ `"DeveloperTools"` \| `"PersistQueryClient"` ## Parameters diff --git a/docs/framework/angular/reference/functions/queryoptions.md b/docs/framework/angular/reference/functions/queryoptions.md index 2ed665f4dc..27627d7672 100644 --- a/docs/framework/angular/reference/functions/queryoptions.md +++ b/docs/framework/angular/reference/functions/queryoptions.md @@ -12,15 +12,15 @@ The `queryKey` will be tagged with the type from `queryFn`. **Example** ```ts - const { queryKey } = queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // ^? Promise - }) - - const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) - // ^? number | undefined +const { queryKey } = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // ^? Promise +}) + +const queryClient = new QueryClient() +const data = queryClient.getQueryData(queryKey) +// ^? number | undefined ``` ## Param @@ -30,7 +30,9 @@ The query options to tag with the type from `queryFn`. ## Call Signature ```ts -function queryOptions(options): DefinedInitialDataOptions & object +function queryOptions( + options, +): DefinedInitialDataOptions & object ``` Allows to share and re-use query options in a type-safe way. @@ -40,15 +42,15 @@ The `queryKey` will be tagged with the type from `queryFn`. **Example** ```ts - const { queryKey } = queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // ^? Promise - }) - - const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) - // ^? number | undefined +const { queryKey } = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // ^? Promise +}) + +const queryClient = new QueryClient() +const data = queryClient.getQueryData(queryKey) +// ^? number | undefined ``` ### Type Parameters @@ -59,7 +61,7 @@ The `queryKey` will be tagged with the type from `queryFn`. โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters @@ -88,7 +90,9 @@ The query options to tag with the type from `queryFn`. ## Call Signature ```ts -function queryOptions(options): UnusedSkipTokenOptions & object +function queryOptions( + options, +): UnusedSkipTokenOptions & object ``` Allows to share and re-use query options in a type-safe way. @@ -98,15 +102,15 @@ The `queryKey` will be tagged with the type from `queryFn`. **Example** ```ts - const { queryKey } = queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // ^? Promise - }) - - const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) - // ^? number | undefined +const { queryKey } = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // ^? Promise +}) + +const queryClient = new QueryClient() +const data = queryClient.getQueryData(queryKey) +// ^? number | undefined ``` ### Type Parameters @@ -117,7 +121,7 @@ The `queryKey` will be tagged with the type from `queryFn`. โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters @@ -146,7 +150,9 @@ The query options to tag with the type from `queryFn`. ## Call Signature ```ts -function queryOptions(options): UndefinedInitialDataOptions & object +function queryOptions( + options, +): UndefinedInitialDataOptions & object ``` Allows to share and re-use query options in a type-safe way. @@ -156,15 +162,15 @@ The `queryKey` will be tagged with the type from `queryFn`. **Example** ```ts - const { queryKey } = queryOptions({ - queryKey: ['key'], - queryFn: () => Promise.resolve(5), - // ^? Promise - }) - - const queryClient = new QueryClient() - const data = queryClient.getQueryData(queryKey) - // ^? number | undefined +const { queryKey } = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + // ^? Promise +}) + +const queryClient = new QueryClient() +const data = queryClient.getQueryData(queryKey) +// ^? number | undefined ``` ### Type Parameters @@ -175,7 +181,7 @@ The `queryKey` will be tagged with the type from `queryFn`. โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters diff --git a/docs/framework/angular/reference/functions/withdevtools.md b/docs/framework/angular/reference/functions/withdevtools.md index 7e2edfaebb..6dfdac2d77 100644 --- a/docs/framework/angular/reference/functions/withdevtools.md +++ b/docs/framework/angular/reference/functions/withdevtools.md @@ -15,11 +15,10 @@ Enables developer tools. ```ts export const appConfig: ApplicationConfig = { - providers: [ - provideTanStackQuery(new QueryClient(), withDevtools()) - ] + providers: [provideTanStackQuery(new QueryClient(), withDevtools())], } ``` + By default the devtools will be loaded when Angular runs in development mode and rendered in ``. If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available. @@ -42,8 +41,8 @@ A set of providers for use with `provideTanStackQuery`. ## See - - [provideTanStackQuery](../providetanstackquery.md) - - [DevtoolsOptions](../../interfaces/devtoolsoptions.md) +- [provideTanStackQuery](../providetanstackquery.md) +- [DevtoolsOptions](../../interfaces/devtoolsoptions.md) ## Defined in diff --git a/docs/framework/angular/reference/index.md b/docs/framework/angular/reference/index.md index 0a14b95e1a..c8b1690d3d 100644 --- a/docs/framework/angular/reference/index.md +++ b/docs/framework/angular/reference/index.md @@ -1,6 +1,6 @@ --- -id: "@tanstack/angular-query-experimental" -title: "@tanstack/angular-query-experimental" +id: '@tanstack/angular-query-experimental' +title: '@tanstack/angular-query-experimental' --- # @tanstack/angular-query-experimental diff --git a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md index 2d11653893..6142101c78 100644 --- a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md +++ b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md @@ -20,43 +20,123 @@ title: BaseMutationNarrowing ### isError ```ts -isError: SignalFunction<(this) => this is CreateMutationResult, { mutate: CreateMutateFunction }> & { mutateAsync: CreateMutateAsyncFunction }>>; +isError: SignalFunction< + ( + this, + ) => this is CreateMutationResult< + TData, + TError, + TVariables, + TContext, + Override< + MutationObserverErrorResult, + { mutate: CreateMutateFunction } + > & { + mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TContext + > + } + > +> ``` #### Defined in [types.ts:242](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L242) -*** +--- ### isIdle ```ts -isIdle: SignalFunction<(this) => this is CreateMutationResult, { mutate: CreateMutateFunction }> & { mutateAsync: CreateMutateAsyncFunction }>>; +isIdle: SignalFunction< + ( + this, + ) => this is CreateMutationResult< + TData, + TError, + TVariables, + TContext, + Override< + MutationObserverIdleResult, + { mutate: CreateMutateFunction } + > & { + mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TContext + > + } + > +> ``` #### Defined in [types.ts:276](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L276) -*** +--- ### isPending ```ts -isPending: SignalFunction<(this) => this is CreateMutationResult, { mutate: CreateMutateFunction }> & { mutateAsync: CreateMutateAsyncFunction }>>; +isPending: SignalFunction< + ( + this, + ) => this is CreateMutationResult< + TData, + TError, + TVariables, + TContext, + Override< + MutationObserverLoadingResult, + { mutate: CreateMutateFunction } + > & { + mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TContext + > + } + > +> ``` #### Defined in [types.ts:259](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L259) -*** +--- ### isSuccess ```ts -isSuccess: SignalFunction<(this) => this is CreateMutationResult, { mutate: CreateMutateFunction }> & { mutateAsync: CreateMutateAsyncFunction }>>; +isSuccess: SignalFunction< + ( + this, + ) => this is CreateMutationResult< + TData, + TError, + TVariables, + TContext, + Override< + MutationObserverSuccessResult, + { mutate: CreateMutateFunction } + > & { + mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TContext + > + } + > +> ``` #### Defined in diff --git a/docs/framework/angular/reference/interfaces/basequerynarrowing.md b/docs/framework/angular/reference/interfaces/basequerynarrowing.md index 645bff7db2..bd1d7bee2a 100644 --- a/docs/framework/angular/reference/interfaces/basequerynarrowing.md +++ b/docs/framework/angular/reference/interfaces/basequerynarrowing.md @@ -33,7 +33,7 @@ isError: (this) => this is CreateBaseQueryResult this is CreateBaseQueryResult ({ - initialIsOpen: true, - loadDevtools: inject(ExampleService).loadDevtools() - })) - ``` +withDevtools(() => ({ + initialIsOpen: true, + loadDevtools: inject(ExampleService).loadDevtools(), +})) +``` #### Defined in [providers.ts:236](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L236) -*** +--- ### position? @@ -112,7 +114,7 @@ Defaults to `bottom`. [providers.ts:198](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L198) -*** +--- ### shadowDOMTarget? @@ -126,7 +128,7 @@ Use this so you can attach the devtool's styles to a specific element in the DOM [providers.ts:214](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L214) -*** +--- ### styleNonce? diff --git a/docs/framework/angular/reference/interfaces/queryfeature.md b/docs/framework/angular/reference/interfaces/queryfeature.md index 634c9db3e7..c0c3e15028 100644 --- a/docs/framework/angular/reference/interfaces/queryfeature.md +++ b/docs/framework/angular/reference/interfaces/queryfeature.md @@ -9,21 +9,21 @@ Helper type to represent a Query feature. ## Type Parameters -โ€ข **TFeatureKind** *extends* [`QueryFeatureKind`](../../type-aliases/queryfeaturekind.md) +โ€ข **TFeatureKind** _extends_ [`QueryFeatureKind`](../../type-aliases/queryfeaturekind.md) ## Properties ### ษตkind ```ts -ษตkind: TFeatureKind; +ษตkind: TFeatureKind ``` #### Defined in [providers.ts:146](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L146) -*** +--- ### ษตproviders diff --git a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md index 8a81728950..5c05660689 100644 --- a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md +++ b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md @@ -6,9 +6,13 @@ title: CreateBaseMutationResult # Type Alias: CreateBaseMutationResult\ ```ts -type CreateBaseMutationResult = Override, { - mutate: CreateMutateFunction; - }> & object; +type CreateBaseMutationResult = Override< + MutationObserverResult, + { + mutate: CreateMutateFunction + } +> & + object ``` ## Type declaration @@ -16,7 +20,7 @@ type CreateBaseMutationResult = Override; +mutateAsync: CreateMutateAsyncFunction ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/createbasequeryresult.md b/docs/framework/angular/reference/type-aliases/createbasequeryresult.md index 1b4310e3b4..f8b5b1d147 100644 --- a/docs/framework/angular/reference/type-aliases/createbasequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/createbasequeryresult.md @@ -6,7 +6,11 @@ title: CreateBaseQueryResult # Type Alias: CreateBaseQueryResult\ ```ts -type CreateBaseQueryResult = BaseQueryNarrowing & MapToSignals>; +type CreateBaseQueryResult = BaseQueryNarrowing< + TData, + TError +> & + MapToSignals> ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md b/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md index b146de257e..4f38c46f78 100644 --- a/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md @@ -6,7 +6,11 @@ title: CreateInfiniteQueryResult # Type Alias: CreateInfiniteQueryResult\ ```ts -type CreateInfiniteQueryResult = BaseQueryNarrowing & MapToSignals>; +type CreateInfiniteQueryResult = BaseQueryNarrowing< + TData, + TError +> & + MapToSignals> ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md index b5cacbc39e..789f636025 100644 --- a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md +++ b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md @@ -6,7 +6,8 @@ title: CreateMutateAsyncFunction # Type Alias: CreateMutateAsyncFunction\ ```ts -type CreateMutateAsyncFunction = MutateFunction; +type CreateMutateAsyncFunction = + MutateFunction ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/createmutatefunction.md b/docs/framework/angular/reference/type-aliases/createmutatefunction.md index e96b73489c..006ab2ae9a 100644 --- a/docs/framework/angular/reference/type-aliases/createmutatefunction.md +++ b/docs/framework/angular/reference/type-aliases/createmutatefunction.md @@ -6,7 +6,9 @@ title: CreateMutateFunction # Type Alias: CreateMutateFunction()\ ```ts -type CreateMutateFunction = (...args) => void; +type CreateMutateFunction = ( + ...args +) => void ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/createmutationresult.md b/docs/framework/angular/reference/type-aliases/createmutationresult.md index 359e20670d..3306bbe436 100644 --- a/docs/framework/angular/reference/type-aliases/createmutationresult.md +++ b/docs/framework/angular/reference/type-aliases/createmutationresult.md @@ -6,7 +6,9 @@ title: CreateMutationResult # Type Alias: CreateMutationResult\ ```ts -type CreateMutationResult = BaseMutationNarrowing & MapToSignals>; +type CreateMutationResult = + BaseMutationNarrowing & + MapToSignals> ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/createqueryresult.md b/docs/framework/angular/reference/type-aliases/createqueryresult.md index a7cd00bdb6..78ada66abc 100644 --- a/docs/framework/angular/reference/type-aliases/createqueryresult.md +++ b/docs/framework/angular/reference/type-aliases/createqueryresult.md @@ -6,7 +6,7 @@ title: CreateQueryResult # Type Alias: CreateQueryResult\ ```ts -type CreateQueryResult = CreateBaseQueryResult; +type CreateQueryResult = CreateBaseQueryResult ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md b/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md index 9052e0725e..77ae3e35ec 100644 --- a/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md @@ -6,7 +6,11 @@ title: DefinedCreateInfiniteQueryResult # Type Alias: DefinedCreateInfiniteQueryResult\ ```ts -type DefinedCreateInfiniteQueryResult = MapToSignals; +type DefinedCreateInfiniteQueryResult< + TData, + TError, + TDefinedInfiniteQueryObserver, +> = MapToSignals ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md b/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md index cc9d352b33..abf57a2b9d 100644 --- a/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md @@ -6,7 +6,11 @@ title: DefinedCreateQueryResult # Type Alias: DefinedCreateQueryResult\ ```ts -type DefinedCreateQueryResult = BaseQueryNarrowing & MapToSignals>; +type DefinedCreateQueryResult = BaseQueryNarrowing< + TData, + TError +> & + MapToSignals> ``` ## Type Parameters diff --git a/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md b/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md index e3dd3735e4..83ec9cc092 100644 --- a/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md +++ b/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md @@ -6,7 +6,21 @@ title: DefinedInitialDataInfiniteOptions # Type Alias: DefinedInitialDataInfiniteOptions\ ```ts -type DefinedInitialDataInfiniteOptions = CreateInfiniteQueryOptions & object; +type DefinedInitialDataInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +> = CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey, + TPageParam +> & + object ``` ## Type declaration @@ -14,7 +28,7 @@ type DefinedInitialDataInfiniteOptions> | () => NonUndefinedGuard> | undefined; @@ -28,7 +42,7 @@ initialData: โ€ข **TData** = `InfiniteData`\<`TQueryFnData`\> -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md b/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md index 17fabdb5c5..742efded7e 100644 --- a/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md +++ b/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md @@ -6,7 +6,11 @@ title: DefinedInitialDataOptions # Type Alias: DefinedInitialDataOptions\ ```ts -type DefinedInitialDataOptions = Omit, "queryFn"> & object; +type DefinedInitialDataOptions = Omit< + CreateQueryOptions, + 'queryFn' +> & + object ``` ## Type declaration @@ -14,7 +18,7 @@ type DefinedInitialDataOptions = Omit | () => NonUndefinedGuard; ``` @@ -33,7 +37,7 @@ optional queryFn: QueryFunction; โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` ## Defined in diff --git a/docs/framework/angular/reference/type-aliases/developertoolsfeature.md b/docs/framework/angular/reference/type-aliases/developertoolsfeature.md index 239c174879..ad4c952ff7 100644 --- a/docs/framework/angular/reference/type-aliases/developertoolsfeature.md +++ b/docs/framework/angular/reference/type-aliases/developertoolsfeature.md @@ -6,7 +6,7 @@ title: DeveloperToolsFeature # Type Alias: DeveloperToolsFeature ```ts -type DeveloperToolsFeature = QueryFeature<"DeveloperTools">; +type DeveloperToolsFeature = QueryFeature<'DeveloperTools'> ``` A type alias that represents a feature which enables developer tools. diff --git a/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md b/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md index 06d17401e3..18682f7f48 100644 --- a/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md +++ b/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md @@ -6,7 +6,7 @@ title: PersistQueryClientFeature # Type Alias: PersistQueryClientFeature ```ts -type PersistQueryClientFeature = QueryFeature<"PersistQueryClient">; +type PersistQueryClientFeature = QueryFeature<'PersistQueryClient'> ``` A type alias that represents a feature which enables persistence. diff --git a/docs/framework/angular/reference/type-aliases/queriesoptions.md b/docs/framework/angular/reference/type-aliases/queriesoptions.md index 19ce9bf0ef..a9b1e1645c 100644 --- a/docs/framework/angular/reference/type-aliases/queriesoptions.md +++ b/docs/framework/angular/reference/type-aliases/queriesoptions.md @@ -6,18 +6,44 @@ title: QueriesOptions # Type Alias: QueriesOptions\ ```ts -type QueriesOptions = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetOptions] : T extends [infer Head, ...(infer Tail)] ? QueriesOptions<[...Tail], [...TResult, GetOptions], [...TDepth, 1]> : ReadonlyArray extends T ? T : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverOptionsForCreateQueries[] : QueryObserverOptionsForCreateQueries[]; +type QueriesOptions = TDepth['length'] extends MAXIMUM_DEPTH + ? QueryObserverOptionsForCreateQueries[] + : T extends [] + ? [] + : T extends [infer Head] + ? [...TResult, GetOptions] + : T extends [infer Head, ...infer Tail] + ? QueriesOptions< + [...Tail], + [...TResult, GetOptions], + [...TDepth, 1] + > + : ReadonlyArray extends T + ? T + : T extends QueryObserverOptionsForCreateQueries< + infer TQueryFnData, + infer TError, + infer TData, + infer TQueryKey + >[] + ? QueryObserverOptionsForCreateQueries< + TQueryFnData, + TError, + TData, + TQueryKey + >[] + : QueryObserverOptionsForCreateQueries[] ``` QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param ## Type Parameters -โ€ข **T** *extends* `any`[] +โ€ข **T** _extends_ `any`[] -โ€ข **TResult** *extends* `any`[] = [] +โ€ข **TResult** _extends_ `any`[] = [] -โ€ข **TDepth** *extends* `ReadonlyArray`\<`number`\> = [] +โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] ## Defined in diff --git a/docs/framework/angular/reference/type-aliases/queriesresults.md b/docs/framework/angular/reference/type-aliases/queriesresults.md index 322e1c67e4..687bbb8d2b 100644 --- a/docs/framework/angular/reference/type-aliases/queriesresults.md +++ b/docs/framework/angular/reference/type-aliases/queriesresults.md @@ -6,18 +6,40 @@ title: QueriesResults # Type Alias: QueriesResults\ ```ts -type QueriesResults = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResult, GetResults] : T extends [infer Head, ...(infer Tail)] ? QueriesResults<[...Tail], [...TResult, GetResults], [...TDepth, 1]> : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverResult[] : QueryObserverResult[]; +type QueriesResults = TDepth['length'] extends MAXIMUM_DEPTH + ? QueryObserverResult[] + : T extends [] + ? [] + : T extends [infer Head] + ? [...TResult, GetResults] + : T extends [infer Head, ...infer Tail] + ? QueriesResults< + [...Tail], + [...TResult, GetResults], + [...TDepth, 1] + > + : T extends QueryObserverOptionsForCreateQueries< + infer TQueryFnData, + infer TError, + infer TData, + any + >[] + ? QueryObserverResult< + unknown extends TData ? TQueryFnData : TData, + unknown extends TError ? DefaultError : TError + >[] + : QueryObserverResult[] ``` QueriesResults reducer recursively maps type param to results ## Type Parameters -โ€ข **T** *extends* `any`[] +โ€ข **T** _extends_ `any`[] -โ€ข **TResult** *extends* `any`[] = [] +โ€ข **TResult** _extends_ `any`[] = [] -โ€ข **TDepth** *extends* `ReadonlyArray`\<`number`\> = [] +โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] ## Defined in diff --git a/docs/framework/angular/reference/type-aliases/queryfeaturekind.md b/docs/framework/angular/reference/type-aliases/queryfeaturekind.md index ab00d3aef8..6b45969712 100644 --- a/docs/framework/angular/reference/type-aliases/queryfeaturekind.md +++ b/docs/framework/angular/reference/type-aliases/queryfeaturekind.md @@ -6,7 +6,7 @@ title: QueryFeatureKind # Type Alias: QueryFeatureKind ```ts -type QueryFeatureKind = typeof queryFeatures[number]; +type QueryFeatureKind = (typeof queryFeatures)[number] ``` ## Defined in diff --git a/docs/framework/angular/reference/type-aliases/queryfeatures.md b/docs/framework/angular/reference/type-aliases/queryfeatures.md index f3b81f0110..cb6a2eb82d 100644 --- a/docs/framework/angular/reference/type-aliases/queryfeatures.md +++ b/docs/framework/angular/reference/type-aliases/queryfeatures.md @@ -6,9 +6,7 @@ title: QueryFeatures # Type Alias: QueryFeatures ```ts -type QueryFeatures = - | DeveloperToolsFeature - | PersistQueryClientFeature; +type QueryFeatures = DeveloperToolsFeature | PersistQueryClientFeature ``` A type alias that represents all Query features available for use with `provideTanStackQuery`. diff --git a/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md b/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md index b5fa78908f..88c03a01ff 100644 --- a/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md +++ b/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md @@ -6,7 +6,21 @@ title: UndefinedInitialDataInfiniteOptions # Type Alias: UndefinedInitialDataInfiniteOptions\ ```ts -type UndefinedInitialDataInfiniteOptions = CreateInfiniteQueryOptions & object; +type UndefinedInitialDataInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +> = CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey, + TPageParam +> & + object ``` ## Type declaration @@ -14,7 +28,7 @@ type UndefinedInitialDataInfiniteOptions> | InitialDataFunction>>; ``` @@ -27,7 +41,7 @@ optional initialData: โ€ข **TData** = `InfiniteData`\<`TQueryFnData`\> -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md b/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md index e91f7fc0c3..ec360cc9bd 100644 --- a/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md +++ b/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md @@ -6,7 +6,8 @@ title: UndefinedInitialDataOptions # Type Alias: UndefinedInitialDataOptions\ ```ts -type UndefinedInitialDataOptions = CreateQueryOptions & object; +type UndefinedInitialDataOptions = + CreateQueryOptions & object ``` ## Type declaration @@ -14,7 +15,7 @@ type UndefinedInitialDataOptions = Creat ### initialData? ```ts -optional initialData: +optional initialData: | InitialDataFunction> | NonUndefinedGuard; ``` @@ -27,7 +28,7 @@ optional initialData: โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` ## Defined in diff --git a/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md b/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md index 7843ee7778..c03412d5cb 100644 --- a/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md +++ b/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md @@ -6,7 +6,24 @@ title: UnusedSkipTokenInfiniteOptions # Type Alias: UnusedSkipTokenInfiniteOptions\ ```ts -type UnusedSkipTokenInfiniteOptions = OmitKeyof, "queryFn"> & object; +type UnusedSkipTokenInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +> = OmitKeyof< + CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey, + TPageParam + >, + 'queryFn' +> & + object ``` ## Type declaration @@ -25,7 +42,7 @@ optional queryFn: Exclude -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/angular/reference/type-aliases/unusedskiptokenoptions.md b/docs/framework/angular/reference/type-aliases/unusedskiptokenoptions.md index 37ba0231c1..2a6e6ef6e6 100644 --- a/docs/framework/angular/reference/type-aliases/unusedskiptokenoptions.md +++ b/docs/framework/angular/reference/type-aliases/unusedskiptokenoptions.md @@ -6,7 +6,11 @@ title: UnusedSkipTokenOptions # Type Alias: UnusedSkipTokenOptions\ ```ts -type UnusedSkipTokenOptions = OmitKeyof, "queryFn"> & object; +type UnusedSkipTokenOptions = OmitKeyof< + CreateQueryOptions, + 'queryFn' +> & + object ``` ## Type declaration @@ -25,7 +29,7 @@ optional queryFn: Exclude(options, queryClient?): CreateInfiniteQueryResult +function createInfiniteQuery< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>(options, queryClient?): CreateInfiniteQueryResult ``` ## Type Parameters @@ -17,7 +23,7 @@ function createInfiniteQuery โ€ข **TData** = `InfiniteData`\<`TQueryFnData`, `unknown`\> -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/svelte/reference/functions/createmutation.md b/docs/framework/svelte/reference/functions/createmutation.md index e76c79cf42..8c5e79cff9 100644 --- a/docs/framework/svelte/reference/functions/createmutation.md +++ b/docs/framework/svelte/reference/functions/createmutation.md @@ -6,7 +6,10 @@ title: createMutation # Function: createMutation() ```ts -function createMutation(options, queryClient?): CreateMutationResult +function createMutation( + options, + queryClient?, +): CreateMutationResult ``` ## Type Parameters diff --git a/docs/framework/svelte/reference/functions/createqueries.md b/docs/framework/svelte/reference/functions/createqueries.md index 44d393f8c6..68c95b0b3c 100644 --- a/docs/framework/svelte/reference/functions/createqueries.md +++ b/docs/framework/svelte/reference/functions/createqueries.md @@ -6,14 +6,17 @@ title: createQueries # Function: createQueries() ```ts -function createQueries(__namedParameters, queryClient?): Readable +function createQueries( + __namedParameters, + queryClient?, +): Readable ``` ## Type Parameters -โ€ข **T** *extends* `any`[] +โ€ข **T** _extends_ `any`[] -โ€ข **TCombinedResult** = `T` *extends* [] ? [] : `T` *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>] : `T` *extends* [`Head`, `...Tails[]`] ? [`...Tails[]`] *extends* [] ? [] : [`...Tails[]`] *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] *extends* [`Head`, `...Tails[]`] ? [`...Tails[]`] *extends* [] ? [] : [`...Tails[]`] *extends* [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] *extends* [`Head`, `...Tails[]`] ? [`...(...)[]`] *extends* [] ? [] : ... *extends* ... ? ... : ... : [`...{ [K in (...)]: (...) }[]`] : [...\{ \[K in string \| number \| symbol\]: GetCreateQueryResult\\]\> \}\[\]] : \{ \[K in string \| number \| symbol\]: GetCreateQueryResult\\]\> \} +โ€ข **TCombinedResult** = `T` _extends_ [] ? [] : `T` _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>] : `T` _extends_ [`Head`, `...Tails[]`] ? [`...Tails[]`] _extends_ [] ? [] : [`...Tails[]`] _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] _extends_ [`Head`, `...Tails[]`] ? [`...Tails[]`] _extends_ [] ? [] : [`...Tails[]`] _extends_ [`Head`] ? [`GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>, `GetCreateQueryResult`\<`Head`\>] : [`...Tails[]`] _extends_ [`Head`, `...Tails[]`] ? [`...(...)[]`] _extends_ [] ? [] : ... _extends_ ... ? ... : ... : [`...{ [K in (...)]: (...) }[]`] : [...\{ \[K in string \| number \| symbol\]: GetCreateQueryResult\\]\> \}\[\]] : \{ \[K in string \| number \| symbol\]: GetCreateQueryResult\\]\> \} ## Parameters @@ -25,8 +28,8 @@ function createQueries(__namedParameters, queryClient?): Rea #### queries - \| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[`...(T extends [] ? [] : T extends [Head] ? [GetQueryObserverOptionsForCreateQueries] : T extends [Head, ...Tails[]] ? [...Tails[]] extends [] ? [] : [...Tails[]] extends [Head] ? [GetQueryObserverOptionsForCreateQueries<(...)>, GetQueryObserverOptionsForCreateQueries<(...)>] : [...(...)[]] extends [(...), ...(...)[]] ? (...) extends (...) ? (...) : (...) : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] ? QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] : QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[])[]`]\> - \| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[...\{ \[K in string \| number \| symbol\]: GetQueryObserverOptionsForCreateQueries\\]\> \}\[\]]\> +\| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[`...(T extends [] ? [] : T extends [Head] ? [GetQueryObserverOptionsForCreateQueries] : T extends [Head, ...Tails[]] ? [...Tails[]] extends [] ? [] : [...Tails[]] extends [Head] ? [GetQueryObserverOptionsForCreateQueries<(...)>, GetQueryObserverOptionsForCreateQueries<(...)>] : [...(...)[]] extends [(...), ...(...)[]] ? (...) extends (...) ? (...) : (...) : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] ? QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[] : QueryObserverOptionsForCreateQueries<(...), (...), (...), (...)>[])[]`]\> +\| [`StoreOrVal`](../../type-aliases/storeorval.md)\<[...\{ \[K in string \| number \| symbol\]: GetQueryObserverOptionsForCreateQueries\\]\> \}\[\]]\> ### queryClient? diff --git a/docs/framework/svelte/reference/functions/createquery.md b/docs/framework/svelte/reference/functions/createquery.md index 8cf7c132de..287f435ff0 100644 --- a/docs/framework/svelte/reference/functions/createquery.md +++ b/docs/framework/svelte/reference/functions/createquery.md @@ -8,7 +8,10 @@ title: createQuery ## Call Signature ```ts -function createQuery(options, queryClient?): DefinedCreateQueryResult +function createQuery( + options, + queryClient?, +): DefinedCreateQueryResult ``` ### Type Parameters @@ -19,7 +22,7 @@ function createQuery(options, queryClien โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters @@ -42,7 +45,10 @@ function createQuery(options, queryClien ## Call Signature ```ts -function createQuery(options, queryClient?): CreateQueryResult +function createQuery( + options, + queryClient?, +): CreateQueryResult ``` ### Type Parameters @@ -53,7 +59,7 @@ function createQuery(options, queryClien โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters @@ -76,7 +82,10 @@ function createQuery(options, queryClien ## Call Signature ```ts -function createQuery(options, queryClient?): CreateQueryResult +function createQuery( + options, + queryClient?, +): CreateQueryResult ``` ### Type Parameters @@ -87,7 +96,7 @@ function createQuery(options, queryClien โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters diff --git a/docs/framework/svelte/reference/functions/infinitequeryoptions.md b/docs/framework/svelte/reference/functions/infinitequeryoptions.md index 52577caf02..c5433fac81 100644 --- a/docs/framework/svelte/reference/functions/infinitequeryoptions.md +++ b/docs/framework/svelte/reference/functions/infinitequeryoptions.md @@ -6,7 +6,22 @@ title: infiniteQueryOptions # Function: infiniteQueryOptions() ```ts -function infiniteQueryOptions(options): CreateInfiniteQueryOptions +function infiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam, +>( + options, +): CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryFnData, + TQueryKey, + TPageParam +> ``` ## Type Parameters @@ -17,7 +32,7 @@ function infiniteQueryOptions -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/svelte/reference/functions/queryoptions.md b/docs/framework/svelte/reference/functions/queryoptions.md index 2733e14b58..ac49019974 100644 --- a/docs/framework/svelte/reference/functions/queryoptions.md +++ b/docs/framework/svelte/reference/functions/queryoptions.md @@ -8,7 +8,9 @@ title: queryOptions ## Call Signature ```ts -function queryOptions(options): DefinedInitialDataOptions & object +function queryOptions( + options, +): DefinedInitialDataOptions & object ``` ### Type Parameters @@ -19,7 +21,7 @@ function queryOptions(options): DefinedI โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters @@ -38,7 +40,9 @@ function queryOptions(options): DefinedI ## Call Signature ```ts -function queryOptions(options): UndefinedInitialDataOptions & object +function queryOptions( + options, +): UndefinedInitialDataOptions & object ``` ### Type Parameters @@ -49,7 +53,7 @@ function queryOptions(options): Undefine โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* readonly `unknown`[] = readonly `unknown`[] +โ€ข **TQueryKey** _extends_ readonly `unknown`[] = readonly `unknown`[] ### Parameters diff --git a/docs/framework/svelte/reference/functions/usehydrate.md b/docs/framework/svelte/reference/functions/usehydrate.md index a2dbd05fdf..f85bde0c3e 100644 --- a/docs/framework/svelte/reference/functions/usehydrate.md +++ b/docs/framework/svelte/reference/functions/usehydrate.md @@ -6,10 +6,7 @@ title: useHydrate # Function: useHydrate() ```ts -function useHydrate( - state?, - options?, - queryClient?): void +function useHydrate(state?, options?, queryClient?): void ``` ## Parameters diff --git a/docs/framework/svelte/reference/index.md b/docs/framework/svelte/reference/index.md index 0ffa33f6fe..0cf3e16845 100644 --- a/docs/framework/svelte/reference/index.md +++ b/docs/framework/svelte/reference/index.md @@ -1,6 +1,6 @@ --- -id: "@tanstack/svelte-query" -title: "@tanstack/svelte-query" +id: '@tanstack/svelte-query' +title: '@tanstack/svelte-query' --- # @tanstack/svelte-query diff --git a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md index 02f68b27e2..9d51cbc3b2 100644 --- a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md +++ b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md @@ -6,9 +6,13 @@ title: CreateBaseMutationResult # Type Alias: CreateBaseMutationResult\ ```ts -type CreateBaseMutationResult = Override, { - mutate: CreateMutateFunction; - }> & object; +type CreateBaseMutationResult = Override< + MutationObserverResult, + { + mutate: CreateMutateFunction + } +> & + object ``` ## Type declaration @@ -16,7 +20,7 @@ type CreateBaseMutationResult = Override; +mutateAsync: CreateMutateAsyncFunction ``` ## Type Parameters diff --git a/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md b/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md index 51f6a6d003..17aa6e9ed3 100644 --- a/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createbasequeryoptions.md @@ -6,7 +6,13 @@ title: CreateBaseQueryOptions # Type Alias: CreateBaseQueryOptions\ ```ts -type CreateBaseQueryOptions = QueryObserverOptions; +type CreateBaseQueryOptions< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey, +> = QueryObserverOptions ``` Options for createBaseQuery @@ -21,7 +27,7 @@ Options for createBaseQuery โ€ข **TQueryData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md b/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md index 861f43cf98..67f649cd71 100644 --- a/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/createbasequeryresult.md @@ -6,7 +6,9 @@ title: CreateBaseQueryResult # Type Alias: CreateBaseQueryResult\ ```ts -type CreateBaseQueryResult = Readable>; +type CreateBaseQueryResult = Readable< + QueryObserverResult +> ``` Result from createBaseQuery diff --git a/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md b/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md index ff726a1ccc..674fe7801a 100644 --- a/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createinfinitequeryoptions.md @@ -6,7 +6,21 @@ title: CreateInfiniteQueryOptions # Type Alias: CreateInfiniteQueryOptions\ ```ts -type CreateInfiniteQueryOptions = InfiniteQueryObserverOptions; +type CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey, + TPageParam, +> = InfiniteQueryObserverOptions< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey, + TPageParam +> ``` Options for createInfiniteQuery @@ -21,7 +35,7 @@ Options for createInfiniteQuery โ€ข **TQueryData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md b/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md index e5247763c5..07ec8c90ce 100644 --- a/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/createinfinitequeryresult.md @@ -6,7 +6,9 @@ title: CreateInfiniteQueryResult # Type Alias: CreateInfiniteQueryResult\ ```ts -type CreateInfiniteQueryResult = Readable>; +type CreateInfiniteQueryResult = Readable< + InfiniteQueryObserverResult +> ``` Result from createInfiniteQuery diff --git a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md index ac34d9829b..31162afcd4 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md +++ b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md @@ -6,7 +6,8 @@ title: CreateMutateAsyncFunction # Type Alias: CreateMutateAsyncFunction\ ```ts -type CreateMutateAsyncFunction = MutateFunction; +type CreateMutateAsyncFunction = + MutateFunction ``` ## Type Parameters diff --git a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md index 034c383b7c..277affff10 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md +++ b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md @@ -6,7 +6,9 @@ title: CreateMutateFunction # Type Alias: CreateMutateFunction()\ ```ts -type CreateMutateFunction = (...args) => void; +type CreateMutateFunction = ( + ...args +) => void ``` ## Type Parameters diff --git a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md index d5c192b9e4..6f1fd3ab96 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md @@ -6,7 +6,10 @@ title: CreateMutationOptions # Type Alias: CreateMutationOptions\ ```ts -type CreateMutationOptions = OmitKeyof, "_defaulted">; +type CreateMutationOptions = OmitKeyof< + MutationObserverOptions, + '_defaulted' +> ``` Options for createMutation diff --git a/docs/framework/svelte/reference/type-aliases/createmutationresult.md b/docs/framework/svelte/reference/type-aliases/createmutationresult.md index 48a6dfe524..9e6fae8dbb 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutationresult.md +++ b/docs/framework/svelte/reference/type-aliases/createmutationresult.md @@ -6,7 +6,9 @@ title: CreateMutationResult # Type Alias: CreateMutationResult\ ```ts -type CreateMutationResult = Readable>; +type CreateMutationResult = Readable< + CreateBaseMutationResult +> ``` Result from createMutation diff --git a/docs/framework/svelte/reference/type-aliases/createqueryoptions.md b/docs/framework/svelte/reference/type-aliases/createqueryoptions.md index 520d38f29f..dd46abd078 100644 --- a/docs/framework/svelte/reference/type-aliases/createqueryoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createqueryoptions.md @@ -6,7 +6,8 @@ title: CreateQueryOptions # Type Alias: CreateQueryOptions\ ```ts -type CreateQueryOptions = CreateBaseQueryOptions; +type CreateQueryOptions = + CreateBaseQueryOptions ``` Options for createQuery @@ -19,7 +20,7 @@ Options for createQuery โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/createqueryresult.md b/docs/framework/svelte/reference/type-aliases/createqueryresult.md index 04fc016e01..5be421869b 100644 --- a/docs/framework/svelte/reference/type-aliases/createqueryresult.md +++ b/docs/framework/svelte/reference/type-aliases/createqueryresult.md @@ -6,7 +6,7 @@ title: CreateQueryResult # Type Alias: CreateQueryResult\ ```ts -type CreateQueryResult = CreateBaseQueryResult; +type CreateQueryResult = CreateBaseQueryResult ``` Result from createQuery diff --git a/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md b/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md index 8a874c6d20..abdf5c35af 100644 --- a/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/definedcreatebasequeryresult.md @@ -6,7 +6,9 @@ title: DefinedCreateBaseQueryResult # Type Alias: DefinedCreateBaseQueryResult\ ```ts -type DefinedCreateBaseQueryResult = Readable>; +type DefinedCreateBaseQueryResult = Readable< + DefinedQueryObserverResult +> ``` Options for createBaseQuery with initialData diff --git a/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md b/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md index bcf78ad036..aef2cc962e 100644 --- a/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md +++ b/docs/framework/svelte/reference/type-aliases/definedcreatequeryresult.md @@ -6,7 +6,10 @@ title: DefinedCreateQueryResult # Type Alias: DefinedCreateQueryResult\ ```ts -type DefinedCreateQueryResult = DefinedCreateBaseQueryResult; +type DefinedCreateQueryResult = DefinedCreateBaseQueryResult< + TData, + TError +> ``` Options for createQuery with initialData diff --git a/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md b/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md index 176d91c61d..dc2066626f 100644 --- a/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md +++ b/docs/framework/svelte/reference/type-aliases/definedinitialdataoptions.md @@ -6,7 +6,8 @@ title: DefinedInitialDataOptions # Type Alias: DefinedInitialDataOptions\ ```ts -type DefinedInitialDataOptions = CreateQueryOptions & object; +type DefinedInitialDataOptions = + CreateQueryOptions & object ``` ## Type declaration @@ -14,7 +15,7 @@ type DefinedInitialDataOptions = CreateQ ### initialData ```ts -initialData: +initialData: | NonUndefinedGuard | () => NonUndefinedGuard; ``` @@ -27,7 +28,7 @@ initialData: โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/hydrationboundary.md b/docs/framework/svelte/reference/type-aliases/hydrationboundary.md index 47fa29ddee..85163c2c81 100644 --- a/docs/framework/svelte/reference/type-aliases/hydrationboundary.md +++ b/docs/framework/svelte/reference/type-aliases/hydrationboundary.md @@ -6,9 +6,9 @@ title: HydrationBoundary # Type Alias: HydrationBoundary ```ts -type HydrationBoundary = SvelteComponent; +type HydrationBoundary = SvelteComponent ``` ## Defined in -node\_modules/.pnpm/svelte@5.26.1/node\_modules/svelte/types/index.d.ts:2675 +node_modules/.pnpm/svelte@5.26.1/node_modules/svelte/types/index.d.ts:2675 diff --git a/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md b/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md index 2c9edd210e..b6fe8a2042 100644 --- a/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md +++ b/docs/framework/svelte/reference/type-aliases/mutationstateoptions.md @@ -6,7 +6,7 @@ title: MutationStateOptions # Type Alias: MutationStateOptions\ ```ts -type MutationStateOptions = object; +type MutationStateOptions = object ``` Options for useMutationState diff --git a/docs/framework/svelte/reference/type-aliases/queriesoptions.md b/docs/framework/svelte/reference/type-aliases/queriesoptions.md index 831379b4f4..926c8abbdd 100644 --- a/docs/framework/svelte/reference/type-aliases/queriesoptions.md +++ b/docs/framework/svelte/reference/type-aliases/queriesoptions.md @@ -6,18 +6,45 @@ title: QueriesOptions # Type Alias: QueriesOptions\ ```ts -type QueriesOptions = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverOptionsForCreateQueries[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetQueryObserverOptionsForCreateQueries] : T extends [infer Head, ...(infer Tails)] ? QueriesOptions<[...Tails], [...TResults, GetQueryObserverOptionsForCreateQueries], [...TDepth, 1]> : ReadonlyArray extends T ? T : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverOptionsForCreateQueries[] : QueryObserverOptionsForCreateQueries[]; +type QueriesOptions = + TDepth['length'] extends MAXIMUM_DEPTH + ? QueryObserverOptionsForCreateQueries[] + : T extends [] + ? [] + : T extends [infer Head] + ? [...TResults, GetQueryObserverOptionsForCreateQueries] + : T extends [infer Head, ...infer Tails] + ? QueriesOptions< + [...Tails], + [...TResults, GetQueryObserverOptionsForCreateQueries], + [...TDepth, 1] + > + : ReadonlyArray extends T + ? T + : T extends QueryObserverOptionsForCreateQueries< + infer TQueryFnData, + infer TError, + infer TData, + infer TQueryKey + >[] + ? QueryObserverOptionsForCreateQueries< + TQueryFnData, + TError, + TData, + TQueryKey + >[] + : QueryObserverOptionsForCreateQueries[] ``` QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param ## Type Parameters -โ€ข **T** *extends* `any`[] +โ€ข **T** _extends_ `any`[] -โ€ข **TResults** *extends* `any`[] = [] +โ€ข **TResults** _extends_ `any`[] = [] -โ€ข **TDepth** *extends* `ReadonlyArray`\<`number`\> = [] +โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/queriesresults.md b/docs/framework/svelte/reference/type-aliases/queriesresults.md index f02e4cfa9f..54b0d173b5 100644 --- a/docs/framework/svelte/reference/type-aliases/queriesresults.md +++ b/docs/framework/svelte/reference/type-aliases/queriesresults.md @@ -6,18 +6,31 @@ title: QueriesResults # Type Alias: QueriesResults\ ```ts -type QueriesResults = TDepth["length"] extends MAXIMUM_DEPTH ? QueryObserverResult[] : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryResult] : T extends [infer Head, ...(infer Tails)] ? QueriesResults<[...Tails], [...TResults, GetCreateQueryResult], [...TDepth, 1]> : { [K in keyof T]: GetCreateQueryResult }; +type QueriesResults = + TDepth['length'] extends MAXIMUM_DEPTH + ? QueryObserverResult[] + : T extends [] + ? [] + : T extends [infer Head] + ? [...TResults, GetCreateQueryResult] + : T extends [infer Head, ...infer Tails] + ? QueriesResults< + [...Tails], + [...TResults, GetCreateQueryResult], + [...TDepth, 1] + > + : { [K in keyof T]: GetCreateQueryResult } ``` QueriesResults reducer recursively maps type param to results ## Type Parameters -โ€ข **T** *extends* `any`[] +โ€ข **T** _extends_ `any`[] -โ€ข **TResults** *extends* `any`[] = [] +โ€ข **TResults** _extends_ `any`[] = [] -โ€ข **TDepth** *extends* `ReadonlyArray`\<`number`\> = [] +โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/storeorval.md b/docs/framework/svelte/reference/type-aliases/storeorval.md index b3151118ff..fc38d49b6d 100644 --- a/docs/framework/svelte/reference/type-aliases/storeorval.md +++ b/docs/framework/svelte/reference/type-aliases/storeorval.md @@ -6,7 +6,7 @@ title: StoreOrVal # Type Alias: StoreOrVal\ ```ts -type StoreOrVal = T | Readable; +type StoreOrVal = T | Readable ``` Allows a type to be either the base object or a store of that object diff --git a/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md b/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md index 88747af68f..865ccff6f7 100644 --- a/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md +++ b/docs/framework/svelte/reference/type-aliases/undefinedinitialdataoptions.md @@ -6,7 +6,8 @@ title: UndefinedInitialDataOptions # Type Alias: UndefinedInitialDataOptions\ ```ts -type UndefinedInitialDataOptions = CreateQueryOptions & object; +type UndefinedInitialDataOptions = + CreateQueryOptions & object ``` ## Type declaration @@ -25,7 +26,7 @@ optional initialData: InitialDataFunction>; โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryKey** *extends* `QueryKey` = `QueryKey` +โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` ## Defined in diff --git a/docs/framework/svelte/reference/variables/hydrationboundary.md b/docs/framework/svelte/reference/variables/hydrationboundary.md index 3015e71d81..937187388d 100644 --- a/docs/framework/svelte/reference/variables/hydrationboundary.md +++ b/docs/framework/svelte/reference/variables/hydrationboundary.md @@ -6,9 +6,9 @@ title: HydrationBoundary # Variable: HydrationBoundary ```ts -const HydrationBoundary: LegacyComponentType; +const HydrationBoundary: LegacyComponentType ``` ## Defined in -node\_modules/.pnpm/svelte@5.26.1/node\_modules/svelte/types/index.d.ts:2675 +node_modules/.pnpm/svelte@5.26.1/node_modules/svelte/types/index.d.ts:2675 diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index 6c1444c254..aa1957095f 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -33,4 +33,3 @@ const query = queryOptions({ - When set to `'reset'`, the query will erase all data and go back into `pending` state. - When set to `'append'`, data will be appended to existing data. - When set to `'replace'`, data will be written to the cache at the end of the stream. - diff --git a/scripts/generateDocs.js b/scripts/generateDocs.js index a02332bd46..86fb8c68c1 100644 --- a/scripts/generateDocs.js +++ b/scripts/generateDocs.js @@ -41,14 +41,14 @@ const markdownFiles = await fg(markdownFilesPattern) console.log(`Found ${markdownFiles.length} markdown files to process\n`) // Process each markdown file -markdownFiles.forEach(file => { +markdownFiles.forEach((file) => { const content = readFileSync(file, 'utf-8') let updatedContent = content updatedContent = updatedContent.replaceAll(/\]\(\.\.\//gm, '](../../') // updatedContent = content.replaceAll(/\]\(\.\//gm, '](../') updatedContent = updatedContent.replaceAll( /\]\((?!https?:\/\/|\/\/|\/|\.\/|\.\.\/|#)([^)]+)\)/gm, - (match, p1) => `](../${p1})` + (match, p1) => `](../${p1})`, ) // Write the updated content back to the file @@ -60,5 +60,4 @@ markdownFiles.forEach(file => { console.log('\nโœ… All markdown files have been processed!') - process.exit(0) diff --git a/scripts/verify-links.ts b/scripts/verify-links.ts index 023e981c52..e173d663bb 100644 --- a/scripts/verify-links.ts +++ b/scripts/verify-links.ts @@ -26,7 +26,11 @@ function normalizePath(p: string): string { return p } -function fileExistsForLink(link: string, markdownFile: string, errors: any[]): boolean { +function fileExistsForLink( + link: string, + markdownFile: string, + errors: any[], +): boolean { // Remove hash if present const filePart = link.split('#')[0] // If the link is empty after removing hash, it's not a file @@ -57,10 +61,13 @@ function fileExistsForLink(link: string, markdownFile: string, errors: any[]): b const isExample = absPath.includes('/examples/') let exists = false - + if (isExample) { // Transform /docs/framework/{framework}/examples/ to /examples/{framework}/ - absPath = absPath.replace(/\/docs\/framework\/([^/]+)\/examples\//, '/examples/$1/') + absPath = absPath.replace( + /\/docs\/framework\/([^/]+)\/examples\//, + '/examples/$1/', + ) // For examples, we want to check if the directory exists exists = existsSync(absPath) && statSync(absPath).isDirectory() } else { @@ -116,9 +123,9 @@ async function findMarkdownLinks() { if (errors.length > 0) { console.log(`\nโŒ Found ${errors.length} broken links:`) - errors.forEach(err => { + errors.forEach((err) => { console.log( - `${err.link}\n in: ${err.markdownFile}\n path: ${err.resolvedPath}\n why: ${err.reason}\n` + `${err.link}\n in: ${err.markdownFile}\n path: ${err.resolvedPath}\n why: ${err.reason}\n`, ) }) process.exit(1) From 7b0aaab005e23846040afd72b16a6dbe6b003708 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sat, 24 May 2025 06:50:01 +0000 Subject: [PATCH 099/432] ci: apply automated fixes (attempt 2/3) --- .../interfaces/basemutationnarrowing.md | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md index 6142101c78..b81171eaf6 100644 --- a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md +++ b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md @@ -21,9 +21,7 @@ title: BaseMutationNarrowing ```ts isError: SignalFunction< - ( - this, - ) => this is CreateMutationResult< + (this) => this is CreateMutationResult< TData, TError, TVariables, @@ -53,9 +51,7 @@ isError: SignalFunction< ```ts isIdle: SignalFunction< - ( - this, - ) => this is CreateMutationResult< + (this) => this is CreateMutationResult< TData, TError, TVariables, @@ -85,9 +81,7 @@ isIdle: SignalFunction< ```ts isPending: SignalFunction< - ( - this, - ) => this is CreateMutationResult< + (this) => this is CreateMutationResult< TData, TError, TVariables, @@ -117,9 +111,7 @@ isPending: SignalFunction< ```ts isSuccess: SignalFunction< - ( - this, - ) => this is CreateMutationResult< + (this) => this is CreateMutationResult< TData, TError, TVariables, From 268e4f2d6c361b33a0c792a7336ea06eb71eeac2 Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Sat, 24 May 2025 15:50:37 +0900 Subject: [PATCH 100/432] test(query-core): add test case for query (#9145) * test(query-core): add test case for query * test(query-core): use hashQueryKeyByOptions * add test case about "should call initialData function when it is a function" * reflect feedback --------- Co-authored-by: Dominik Dorfmeister --- .../query-core/src/__tests__/query.test.tsx | 78 ++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index fa38abad82..25ee912637 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -5,14 +5,21 @@ import { sleep, } from '@tanstack/query-test-utils' import { + Query, QueryClient, QueryObserver, dehydrate, hydrate, isCancelledError, } from '..' +import { hashQueryKeyByOptions } from '../utils' import { mockOnlineManagerIsOnline, setIsServer } from './utils' -import type { QueryCache, QueryFunctionContext, QueryObserverResult } from '..' +import type { + QueryCache, + QueryFunctionContext, + QueryKey, + QueryObserverResult, +} from '..' describe('query', () => { let queryClient: QueryClient @@ -1019,4 +1026,73 @@ describe('query', () => { await vi.advanceTimersByTimeAsync(10) expect(query.state.status).toBe('error') }) + + test('should use persister if provided', async () => { + const key = queryKey() + + await queryClient.prefetchQuery({ + queryKey: key, + queryFn: () => 'data', + persister: () => Promise.resolve('persisted data'), + }) + + const query = queryCache.find({ queryKey: key })! + expect(query.state.data).toBe('persisted data') + }) + + test('should use queryFn from observer if not provided in options', async () => { + const key = queryKey() + const queryFn = () => Promise.resolve('data') + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: queryFn, + }) + + const query = new Query({ + client: queryClient, + queryKey: key, + queryHash: hashQueryKeyByOptions(key), + }) + + query.addObserver(observer) + + await query.fetch() + const result = await query.state.data + expect(result).toBe('data') + expect(query.options.queryFn).toBe(queryFn) + }) + + test('should log error when queryKey is not an array', async () => { + const consoleMock = vi.spyOn(console, 'error') + const key: unknown = 'string-key' + + await queryClient.prefetchQuery({ + queryKey: key as QueryKey, + queryFn: () => 'data', + }) + + expect(consoleMock).toHaveBeenCalledWith( + "As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']", + ) + + consoleMock.mockRestore() + }) + + test('should call initialData function when it is a function', () => { + const key = queryKey() + const initialDataFn = vi.fn(() => 'initial data') + + const query = new Query({ + client: queryClient, + queryKey: key, + queryHash: hashQueryKeyByOptions(key), + options: { + queryFn: () => 'data', + initialData: initialDataFn, + }, + }) + + expect(initialDataFn).toHaveBeenCalledTimes(1) + expect(query.state.data).toBe('initial data') + }) }) From 719db3540ef672216ea7414c33dabe04d5560f43 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Sat, 24 May 2025 09:03:15 +0200 Subject: [PATCH 101/432] =?UTF-8?q?chore(=E2=9C=82=EF=B8=8F):=20remove=20t?= =?UTF-8?q?s-node=20to=20make=20knip=20happy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - pnpm-lock.yaml | 71 +++++++++++++++++++++++++++++--------------------- 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 879e472583..5b526c4c71 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "sherif": "^1.0.0", - "ts-node": "^10.9.2", "tsup": "^8.4.0", "typescript": "5.8.3", "typescript50": "npm:typescript@5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 35a700d63f..8236f2f5d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -113,9 +113,6 @@ importers: sherif: specifier: ^1.0.0 version: 1.0.0 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) tsup: specifier: ^8.4.0 version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) @@ -185,7 +182,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -228,7 +225,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -277,7 +274,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -326,7 +323,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -369,7 +366,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -415,7 +412,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -458,7 +455,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -504,7 +501,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -550,7 +547,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -596,7 +593,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -639,7 +636,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -1234,7 +1231,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(1f29909f8de70b3aa674884b982ac755) + version: 6.4.1(cgoxobftzx7q2rxvco2fw2mfyq) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -2056,7 +2053,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c) + version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) '@angular/cli': specifier: ^20.0.0-rc.2 version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) @@ -2370,7 +2367,7 @@ importers: version: link:../query-test-utils '@testing-library/angular': specifier: ^17.3.7 - version: 17.3.7(8b5c67acaf4ca5bea63fa46cae94ce99) + version: 17.3.7(xmnuavpccaawxaioptrq4egdy4) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -16322,7 +16319,7 @@ snapshots: '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.0.0-rc.2(a5eb3de4407cbbb1864d035e77c7af8c)': + '@angular/build@20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2000.0-rc.2(chokidar@4.0.3) @@ -18470,6 +18467,7 @@ snapshots: '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 + optional: true '@deno/shim-deno-test@0.5.0': {} @@ -19825,6 +19823,7 @@ snapshots: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + optional: true '@js-temporal/polyfill@0.4.4': dependencies: @@ -20670,7 +20669,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(1f29909f8de70b3aa674884b982ac755)': + '@react-navigation/stack@6.4.1(cgoxobftzx7q2rxvco2fw2mfyq)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) @@ -21459,7 +21458,7 @@ snapshots: - tsx - yaml - '@testing-library/angular@17.3.7(8b5c67acaf4ca5bea63fa46cae94ce99)': + '@testing-library/angular@17.3.7(xmnuavpccaawxaioptrq4egdy4)': dependencies: '@angular/animations': 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) @@ -21526,13 +21525,17 @@ snapshots: vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.11': + optional: true - '@tsconfig/node12@1.0.11': {} + '@tsconfig/node12@1.0.11': + optional: true - '@tsconfig/node14@1.0.3': {} + '@tsconfig/node14@1.0.3': + optional: true - '@tsconfig/node16@1.0.4': {} + '@tsconfig/node16@1.0.4': + optional: true '@tsconfig/svelte@5.0.4': {} @@ -22435,6 +22438,7 @@ snapshots: acorn-walk@8.3.4: dependencies: acorn: 8.14.1 + optional: true acorn@6.4.2: {} @@ -22597,7 +22601,8 @@ snapshots: are-docs-informative@0.0.2: {} - arg@4.1.3: {} + arg@4.1.3: + optional: true arg@5.0.2: {} @@ -23858,7 +23863,8 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-require@1.1.1: {} + create-require@1.1.1: + optional: true croner@9.0.0: {} @@ -24176,7 +24182,8 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: {} + diff@4.0.2: + optional: true diff@5.2.0: {} @@ -27119,7 +27126,8 @@ snapshots: dependencies: semver: 7.7.1 - make-error@1.3.6: {} + make-error@1.3.6: + optional: true make-fetch-happen@13.0.1: dependencies: @@ -31071,6 +31079,7 @@ snapshots: typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optional: true ts-pattern@5.6.0: {} @@ -31546,7 +31555,8 @@ snapshots: uuid@8.3.2: {} - v8-compile-cache-lib@3.0.1: {} + v8-compile-cache-lib@3.0.1: + optional: true v8flags@4.0.1: {} @@ -32394,7 +32404,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yn@3.1.1: {} + yn@3.1.1: + optional: true yocto-queue@0.1.0: {} From 9973e0f1d82acd6ccf5a49d9a0b5e7e401fc5489 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 24 May 2025 09:22:00 +0200 Subject: [PATCH 102/432] feat: maxChunks (#9184) --- docs/reference/streamedQuery.md | 8 +- .../src/__tests__/streamedQuery.test.tsx | 125 ++++++++++++++++++ packages/query-core/src/streamedQuery.ts | 15 ++- 3 files changed, 143 insertions(+), 5 deletions(-) diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index aa1957095f..c02cc907ba 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -32,4 +32,10 @@ const query = queryOptions({ - Defaults to `'reset'` - When set to `'reset'`, the query will erase all data and go back into `pending` state. - When set to `'append'`, data will be appended to existing data. - - When set to `'replace'`, data will be written to the cache at the end of the stream. + - When set to `'replace'`, all data will be written to the cache once the stream ends. +- `maxChunks?: number` + - Optional + - The maximum number of chunks to keep in the cache. + - Defaults to `undefined`, meaning all chunks will be kept. + - If `undefined` or `0`, the number of chunks is unlimited. + - If the number of chunks exceeds this number, the oldest chunk will be removed. diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index 931e90b9ad..c2cebb46e2 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -349,4 +349,129 @@ describe('streamedQuery', () => { unsubscribe() }) + + test('should support maxChunks', async () => { + const key = queryKey() + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: streamedQuery({ + queryFn: () => createAsyncNumberGenerator(3), + maxChunks: 2, + }), + }) + + const unsubscribe = observer.subscribe(vi.fn()) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'pending', + fetchStatus: 'fetching', + data: undefined, + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0, 1], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: [1, 2], + }) + + unsubscribe() + }) + + test('maxChunks with append refetch', async () => { + const key = queryKey() + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: streamedQuery({ + queryFn: () => createAsyncNumberGenerator(3), + maxChunks: 2, + refetchMode: 'append', + }), + }) + + const unsubscribe = observer.subscribe(vi.fn()) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'pending', + fetchStatus: 'fetching', + data: undefined, + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0, 1], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: [1, 2], + }) + + void observer.refetch() + + await vi.advanceTimersByTimeAsync(10) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [1, 2], + }) + + await vi.advanceTimersByTimeAsync(40) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [2, 0], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0, 1], + }) + + await vi.advanceTimersByTimeAsync(50) + + expect(observer.getCurrentResult()).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: [1, 2], + }) + + unsubscribe() + }) }) diff --git a/packages/query-core/src/streamedQuery.ts b/packages/query-core/src/streamedQuery.ts index b5b513434c..03c36bf23a 100644 --- a/packages/query-core/src/streamedQuery.ts +++ b/packages/query-core/src/streamedQuery.ts @@ -1,3 +1,4 @@ +import { addToEnd } from './utils' import type { QueryFunction, QueryFunctionContext, QueryKey } from './types' /** @@ -9,7 +10,11 @@ import type { QueryFunction, QueryFunctionContext, QueryKey } from './types' * @param refetchMode - Defines how re-fetches are handled. * Defaults to `'reset'`, erases all data and puts the query back into `pending` state. * Set to `'append'` to append new data to the existing data. - * Set to `'replace'` to write the data to the cache at the end of the stream. + * Set to `'replace'` to write all data to the cache once the stream ends. + * @param maxChunks - The maximum number of chunks to keep in the cache. + * Defaults to `undefined`, meaning all chunks will be kept. + * If `undefined` or `0`, the number of chunks is unlimited. + * If the number of chunks exceeds this number, the oldest chunk will be removed. */ export function streamedQuery< TQueryFnData = unknown, @@ -17,11 +22,13 @@ export function streamedQuery< >({ queryFn, refetchMode = 'reset', + maxChunks, }: { queryFn: ( context: QueryFunctionContext, ) => AsyncIterable | Promise> refetchMode?: 'append' | 'reset' | 'replace' + maxChunks?: number }): QueryFunction, TQueryKey> { return async (context) => { const query = context.client @@ -38,7 +45,7 @@ export function streamedQuery< }) } - const result: Array = [] + let result: Array = [] const stream = await queryFn(context) for await (const chunk of stream) { @@ -51,11 +58,11 @@ export function streamedQuery< context.client.setQueryData>( context.queryKey, (prev = []) => { - return prev.concat([chunk]) + return addToEnd(prev, chunk, maxChunks) }, ) } - result.push(chunk) + result = addToEnd(result, chunk, maxChunks) } // finalize result: replace-refetching needs to write to the cache From 60ed69c3f52fbb123fe34f73b2ad5329850b460b Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sat, 24 May 2025 07:23:48 +0000 Subject: [PATCH 103/432] release: v5.77.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index caa859a1bf..4d71a5f31b 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index a00b6300b9..0f6905ac8a 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.76.2", + "@tanstack/query-sync-storage-persister": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index dba7c5132b..33b3c1ec04 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 4f5cef2899..e68749a54a 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-devtools-experimental": "^5.76.2", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-devtools-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 20335e7115..77730cc7dd 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index a3263ba407..af2077c1e0 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 85376001fe..6a17910bba 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 212df20939..c516287d4d 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index fb77adcf4e..c18b90d8ab 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 9726978055..a297d97e70 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 90ce0e359f..38eeaf1ed1 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.76.2", + "@tanstack/angular-query-experimental": "^5.77.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 904408314f..28b48ba002 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index fb61f39072..296ded1842 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 78b396fe7c..d9ae0c12e9 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 614b99e296..d931d42459 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.76.2", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", - "@tanstack/react-query-persist-client": "^5.76.2", + "@tanstack/query-sync-storage-persister": "^5.77.0", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query-persist-client": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index bdba4bf599..69caaf2137 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 009e9acf53..ba919860c7 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index f4ad74e069..d53defdbe4 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6ec2e670b7..633c7dfbd6 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.76.2", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", - "@tanstack/react-query-persist-client": "^5.76.2", + "@tanstack/query-sync-storage-persister": "^5.77.0", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query-persist-client": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index a1100912e9..5330b16ab7 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index b21851b947..8e5f865e9c 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 7979a34782..4be491a7b0 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 82d29ca600..ac39a87a8c 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", - "@tanstack/react-query-next-experimental": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query-next-experimental": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index fc47e59627..5ec8e89175 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 6335e6c423..7c7957f720 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.76.2", + "@tanstack/query-sync-storage-persister": "^5.77.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", - "@tanstack/react-query-persist-client": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query-persist-client": "^5.77.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index d11149c379..c6e33f7082 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index fc48f9dbae..74a26727eb 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 5e817f8582..c663dece78 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index e29b2db3e2..28db945444 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index f63837f9a1..19c179b4f7 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index cfedee4ad3..1da895c285 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index fed5a6ac55..93678da1cf 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 5a52483c4c..772709280d 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 37b82802bb..ed0b1a120c 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 604ba930bf..59891b71cb 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index ca00126721..e21b13176b 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index ce783c7e21..8cfa0acb6f 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.76.2", - "@tanstack/react-query-devtools": "^5.76.2", + "@tanstack/react-query": "^5.77.0", + "@tanstack/react-query-devtools": "^5.77.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 402195782a..9f8e0e77d6 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.76.2", - "@tanstack/solid-query-devtools": "^5.76.2", + "@tanstack/solid-query": "^5.77.0", + "@tanstack/solid-query-devtools": "^5.77.0", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 53d58c2005..e3b0ee21b9 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.76.2", - "@tanstack/solid-query-devtools": "^5.76.2", + "@tanstack/solid-query": "^5.77.0", + "@tanstack/solid-query-devtools": "^5.77.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 7eab7c7b49..3c629ae586 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.76.2", - "@tanstack/solid-query-devtools": "^5.76.2", + "@tanstack/solid-query": "^5.77.0", + "@tanstack/solid-query-devtools": "^5.77.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 55eaeeea76..89f18c2a8c 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.76.2", - "@tanstack/solid-query-devtools": "^5.76.2", + "@tanstack/solid-query": "^5.77.0", + "@tanstack/solid-query-devtools": "^5.77.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index c9b3e21944..544fb2f9b1 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.76.2", - "@tanstack/solid-query-devtools": "^5.76.2", + "@tanstack/solid-query": "^5.77.0", + "@tanstack/solid-query-devtools": "^5.77.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 320e96d6d6..55a68744ff 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.76.2", - "@tanstack/solid-query-devtools": "^5.76.2", + "@tanstack/solid-query": "^5.77.0", + "@tanstack/solid-query-devtools": "^5.77.0", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index e400f6bf32..60f997161b 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2" + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 3836a38b75..e6ad4932ae 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.76.2", - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2", - "@tanstack/svelte-query-persist-client": "^5.76.2" + "@tanstack/query-sync-storage-persister": "^5.77.0", + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0", + "@tanstack/svelte-query-persist-client": "^5.77.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 0d1e1b6b56..ea731d7fd5 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2" + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 8eb4aba1fd..469660db3c 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2" + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 70245f9adb..3f767fe0fa 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2" + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index b7a4a7ce1b..d3e5eb112b 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2" + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index b9c5d2ba8f..d823796010 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2" + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 07b1153cb0..5cfd94e435 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.76.2", - "@tanstack/svelte-query-devtools": "^5.76.2" + "@tanstack/svelte-query": "^5.77.0", + "@tanstack/svelte-query-devtools": "^5.77.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 75e0e4415a..bec42e529d 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.76.2", + "@tanstack/vue-query": "^5.77.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index b1f5e61f22..a5d1267b98 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.76.2", + "@tanstack/vue-query": "^5.77.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index bd98a3a19c..3f9371af58 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.76.2", - "@tanstack/vue-query-devtools": "^5.76.2", + "@tanstack/vue-query": "^5.77.0", + "@tanstack/vue-query-devtools": "^5.77.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 49579af48c..2591748dd5 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.76.2", + "@tanstack/vue-query": "^5.77.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index fa74984888..f0673f3a42 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.76.2" + "@tanstack/vue-query": "^5.77.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 38a348fa76..e131f7953c 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.76.2", - "@tanstack/query-persist-client-core": "^5.76.2", - "@tanstack/query-sync-storage-persister": "^5.76.2", - "@tanstack/vue-query": "^5.76.2", + "@tanstack/query-core": "^5.77.0", + "@tanstack/query-persist-client-core": "^5.77.0", + "@tanstack/query-sync-storage-persister": "^5.77.0", + "@tanstack/vue-query": "^5.77.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 71c8f22e6a..78d96b72e9 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.76.2", - "@tanstack/vue-query-devtools": "^5.76.2", + "@tanstack/vue-query": "^5.77.0", + "@tanstack/vue-query-devtools": "^5.77.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 4af204cb5d..b6a11794d7 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.76.2", + "version": "5.77.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index d26c6fa186..51227e341d 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.76.2", + "version": "5.77.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index e84468c945..cc6628bb2e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.76.2", + "version": "5.77.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 37650a0eeb..fc4d4e77c9 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.76.2", + "version": "5.77.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index c0c8edae97..dd9acd87d2 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.76.2", + "version": "5.77.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index ec7c4193dd..0cb9c2d91c 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.76.2", + "version": "5.77.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index ca5886e2d5..a0cd5c6366 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.76.2", + "version": "5.77.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 47e20f83fb..3815a6faa0 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.76.2", + "version": "5.77.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index a21eaa5bd4..936ba4130b 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.76.2", + "version": "5.77.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 1f26c38d99..6cdb9e425b 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.76.2", + "version": "5.77.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 4b4cae0bff..a178fd6471 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.76.2", + "version": "5.77.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 620164fdca..28b6df5981 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.76.2", + "version": "5.77.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index b4b33b51f4..6524f42746 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.76.2", + "version": "5.77.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 74bc2f1294..bc016740a9 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.76.2", + "version": "5.77.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 732903cf2c..6dec6ac2e4 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.76.2", + "version": "5.77.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 4d3ba5ebee..b80d39fa13 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.76.2", + "version": "5.77.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 0488f16c84..8482146300 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.76.2", + "version": "5.77.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index f27706f847..2105f74da9 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.76.2", + "version": "5.77.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 3922a89363..c6a6752dba 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.76.2", + "version": "5.77.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From f2b6cafe23406ccbb87dc5630ebf39e55fe3aff0 Mon Sep 17 00:00:00 2001 From: Rodrigo Monney Date: Sat, 24 May 2025 05:04:02 -0300 Subject: [PATCH 104/432] docs: Update overview.md (#9181) Standardize the bullet point sentences to not have a period at the end (some have it, others don't) --- docs/framework/react/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/framework/react/overview.md b/docs/framework/react/overview.md index b8ac10ffd5..c83a01ad94 100644 --- a/docs/framework/react/overview.md +++ b/docs/framework/react/overview.md @@ -35,9 +35,9 @@ TanStack Query allows you to defeat and overcome the tricky challenges and hurdl On a more technical note, TanStack Query will likely: -- Help you remove **many** lines of complicated and misunderstood code from your application and replace with just a handful of lines of TanStack Query logic. +- Help you remove **many** lines of complicated and misunderstood code from your application and replace with just a handful of lines of TanStack Query logic - Make your application more maintainable and easier to build new features without worrying about wiring up new server state data sources -- Have a direct impact on your end-users by making your application feel faster and more responsive than ever before. +- Have a direct impact on your end-users by making your application feel faster and more responsive than ever before - Potentially help you save on bandwidth and increase memory performance [//]: # 'Example' From d4b78185b3ced6e3756887d6cb33059233979e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Sun, 25 May 2025 23:09:52 +0200 Subject: [PATCH 105/432] fix(core): do not hydrate promises if existing query is already fetching --- packages/query-core/src/hydration.ts | 2 + .../react-query/src/HydrationBoundary.tsx | 2 +- .../src/__tests__/HydrationBoundary.test.tsx | 38 +++++++++++-------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/packages/query-core/src/hydration.ts b/packages/query-core/src/hydration.ts index 268f9f3d98..1361036d86 100644 --- a/packages/query-core/src/hydration.ts +++ b/packages/query-core/src/hydration.ts @@ -203,6 +203,7 @@ export function hydrate( let query = queryCache.get(queryHash) const existingQueryIsPending = query?.state.status === 'pending' + const existingQueryIsFetching = query?.state.fetchStatus === 'fetching' // Do not hydrate if an existing query exists with newer data if (query) { @@ -249,6 +250,7 @@ export function hydrate( if ( promise && !existingQueryIsPending && + !existingQueryIsFetching && // Only hydrate if dehydration is newer than any existing data, // this is always true for new queries (dehydratedAt === undefined || dehydratedAt > query.state.dataUpdatedAt) diff --git a/packages/react-query/src/HydrationBoundary.tsx b/packages/react-query/src/HydrationBoundary.tsx index 0854f5d7e3..a89e4ceab3 100644 --- a/packages/react-query/src/HydrationBoundary.tsx +++ b/packages/react-query/src/HydrationBoundary.tsx @@ -76,6 +76,7 @@ export const HydrationBoundary = ({ existingQuery.state.dataUpdatedAt || (dehydratedQuery.promise && existingQuery.state.status !== 'pending' && + existingQuery.state.fetchStatus !== 'fetching' && dehydratedQuery.dehydratedAt !== undefined && dehydratedQuery.dehydratedAt > existingQuery.state.dataUpdatedAt) @@ -110,7 +111,6 @@ export const HydrationBoundary = ({ React.useEffect(() => { if (hydrationQueue) { hydrate(client, { queries: hydrationQueue }, optionsRef.current) - // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect setHydrationQueue(undefined) } }, [client, hydrationQueue]) diff --git a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx index 2fdf162b8f..5e9bd1e3fc 100644 --- a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx @@ -8,9 +8,9 @@ import { QueryClient, QueryClientProvider, dehydrate, - hydrate, useQuery, } from '..' +import type { hydrate } from '@tanstack/query-core' describe('React hydration', () => { let stringifiedState: string @@ -368,6 +368,7 @@ describe('React hydration', () => { // https://github.com/TanStack/query/issues/8677 test('should not infinite loop when hydrating promises that resolve to errors', async () => { + const originalHydrate = coreModule.hydrate const hydrateSpy = vi.spyOn(coreModule, 'hydrate') let hydrationCount = 0 hydrateSpy.mockImplementation((...args: Parameters) => { @@ -379,9 +380,19 @@ describe('React hydration', () => { // logic in HydrationBoundary is not working as expected. throw new Error('Too many hydrations detected') } - return hydrate(...args) + return originalHydrate(...args) }) + // For the bug to trigger, there needs to already be a query in the cache, + // with a dataUpdatedAt earlier than the dehydratedAt of the next query + const clientQueryClient = new QueryClient() + await clientQueryClient.prefetchQuery({ + queryKey: ['promise'], + queryFn: () => 'existing', + }) + + await vi.advanceTimersByTimeAsync(100) + const prefetchQueryClient = new QueryClient({ defaultOptions: { dehydrate: { @@ -393,26 +404,21 @@ describe('React hydration', () => { queryKey: ['promise'], queryFn: async () => { await sleep(10) - return Promise.reject('Query failed') + throw new Error('Query failed') }, }) const dehydratedState = dehydrate(prefetchQueryClient) - // Avoid redacted error in test - dehydratedState.queries[0]?.promise?.catch(() => {}) - await vi.advanceTimersByTimeAsync(10) + function ignore() { + // Ignore redacted unhandled rejection + } + process.addListener('unhandledRejection', ignore) + // Mimic what React/our synchronous thenable does for already rejected promises // @ts-expect-error dehydratedState.queries[0].promise.status = 'failure' - // For the bug to trigger, there needs to already be a query in the cache - const queryClient = new QueryClient() - await queryClient.prefetchQuery({ - queryKey: ['promise'], - queryFn: () => 'existing', - }) - function Page() { const { data } = useQuery({ queryKey: ['promise'], @@ -426,7 +432,7 @@ describe('React hydration', () => { } const rendered = render( - + @@ -436,8 +442,10 @@ describe('React hydration', () => { expect(rendered.getByText('existing')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('new')).toBeInTheDocument() + + process.removeListener('unhandledRejection', ignore) hydrateSpy.mockRestore() prefetchQueryClient.clear() - queryClient.clear() + clientQueryClient.clear() }) }) From 318ba4d92eb6d32947e285f56b5ce1b1a4695355 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sun, 25 May 2025 21:15:14 +0000 Subject: [PATCH 106/432] release: v5.77.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 4d71a5f31b..149478e12a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 0f6905ac8a..b0bd5b353c 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.77.0", + "@tanstack/query-sync-storage-persister": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 33b3c1ec04..72ee40e4ea 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index e68749a54a..9e729d8743 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-devtools-experimental": "^5.77.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-devtools-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 77730cc7dd..44329f7122 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index af2077c1e0..b672ce977d 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 6a17910bba..b858917721 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index c516287d4d..549e7b5d99 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index c18b90d8ab..8a0d3956e0 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index a297d97e70..d6e55a7e5f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 38eeaf1ed1..3ab92d3ca4 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.0", + "@tanstack/angular-query-experimental": "^5.77.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 28b48ba002..af60a9f93c 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 296ded1842..19aadc729f 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index d9ae0c12e9..e0c9494bc9 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index d931d42459..0a71eb7e4a 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.0", - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", - "@tanstack/react-query-persist-client": "^5.77.0", + "@tanstack/query-sync-storage-persister": "^5.77.1", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query-persist-client": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 69caaf2137..8aa313546d 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index ba919860c7..6e81ea3d57 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index d53defdbe4..7797e1159c 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 633c7dfbd6..6dc6e43b17 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.0", - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", - "@tanstack/react-query-persist-client": "^5.77.0", + "@tanstack/query-sync-storage-persister": "^5.77.1", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query-persist-client": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 5330b16ab7..52618c9350 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 8e5f865e9c..bb9f500063 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 4be491a7b0..192137f3d5 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index ac39a87a8c..6101fce312 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", - "@tanstack/react-query-next-experimental": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query-next-experimental": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 5ec8e89175..aab354303c 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 7c7957f720..7c6f8fcf42 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.0", + "@tanstack/query-sync-storage-persister": "^5.77.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", - "@tanstack/react-query-persist-client": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query-persist-client": "^5.77.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index c6e33f7082..f54460189e 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 74a26727eb..d1725e67b6 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index c663dece78..50143195ea 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 28db945444..7f6d73b33a 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 19c179b4f7..27af1487c3 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 1da895c285..9ca6ba5de2 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 93678da1cf..b372cbb9af 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 772709280d..215b4256d0 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index ed0b1a120c..d5225551d7 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 59891b71cb..1411ad0025 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index e21b13176b..d9cebf318d 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 8cfa0acb6f..f0d0a873e0 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.0", - "@tanstack/react-query-devtools": "^5.77.0", + "@tanstack/react-query": "^5.77.1", + "@tanstack/react-query-devtools": "^5.77.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 9f8e0e77d6..28f17bfd65 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.77.0", - "@tanstack/solid-query-devtools": "^5.77.0", + "@tanstack/solid-query": "^5.77.1", + "@tanstack/solid-query-devtools": "^5.77.1", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index e3b0ee21b9..65971381e4 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.0", - "@tanstack/solid-query-devtools": "^5.77.0", + "@tanstack/solid-query": "^5.77.1", + "@tanstack/solid-query-devtools": "^5.77.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 3c629ae586..6853415107 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.0", - "@tanstack/solid-query-devtools": "^5.77.0", + "@tanstack/solid-query": "^5.77.1", + "@tanstack/solid-query-devtools": "^5.77.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 89f18c2a8c..b6ba6794a5 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.0", - "@tanstack/solid-query-devtools": "^5.77.0", + "@tanstack/solid-query": "^5.77.1", + "@tanstack/solid-query-devtools": "^5.77.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 544fb2f9b1..601ceb8730 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.0", - "@tanstack/solid-query-devtools": "^5.77.0", + "@tanstack/solid-query": "^5.77.1", + "@tanstack/solid-query-devtools": "^5.77.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 55a68744ff..05491d69b7 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.77.0", - "@tanstack/solid-query-devtools": "^5.77.0", + "@tanstack/solid-query": "^5.77.1", + "@tanstack/solid-query-devtools": "^5.77.1", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 60f997161b..be054e96b3 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0" + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index e6ad4932ae..f9f9e3ce36 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.0", - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0", - "@tanstack/svelte-query-persist-client": "^5.77.0" + "@tanstack/query-sync-storage-persister": "^5.77.1", + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1", + "@tanstack/svelte-query-persist-client": "^5.77.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index ea731d7fd5..032a243991 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0" + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 469660db3c..539725c468 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0" + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 3f767fe0fa..682d4fcc04 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0" + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index d3e5eb112b..23ee20bef4 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0" + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index d823796010..60141466a7 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0" + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 5cfd94e435..7c01f11971 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.0", - "@tanstack/svelte-query-devtools": "^5.77.0" + "@tanstack/svelte-query": "^5.77.1", + "@tanstack/svelte-query-devtools": "^5.77.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index bec42e529d..effab48fff 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.0", + "@tanstack/vue-query": "^5.77.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index a5d1267b98..0660ea949e 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.0", + "@tanstack/vue-query": "^5.77.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 3f9371af58..db4fa4c68e 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.0", - "@tanstack/vue-query-devtools": "^5.77.0", + "@tanstack/vue-query": "^5.77.1", + "@tanstack/vue-query-devtools": "^5.77.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 2591748dd5..c7e5ddc031 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.0", + "@tanstack/vue-query": "^5.77.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index f0673f3a42..b0128b644d 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.77.0" + "@tanstack/vue-query": "^5.77.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index e131f7953c..621ab96ad9 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.77.0", - "@tanstack/query-persist-client-core": "^5.77.0", - "@tanstack/query-sync-storage-persister": "^5.77.0", - "@tanstack/vue-query": "^5.77.0", + "@tanstack/query-core": "^5.77.1", + "@tanstack/query-persist-client-core": "^5.77.1", + "@tanstack/query-sync-storage-persister": "^5.77.1", + "@tanstack/vue-query": "^5.77.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 78d96b72e9..63dbea10e9 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.0", - "@tanstack/vue-query-devtools": "^5.77.0", + "@tanstack/vue-query": "^5.77.1", + "@tanstack/vue-query-devtools": "^5.77.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index b6a11794d7..d6d1848e8b 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.77.0", + "version": "5.77.1", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 51227e341d..a641c3d975 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.77.0", + "version": "5.77.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index cc6628bb2e..0cea980367 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.77.0", + "version": "5.77.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index fc4d4e77c9..676d2f433c 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.77.0", + "version": "5.77.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index dd9acd87d2..eed7fda11b 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.77.0", + "version": "5.77.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 0cb9c2d91c..e4445fa583 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.77.0", + "version": "5.77.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index a0cd5c6366..be471813d7 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.77.0", + "version": "5.77.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 3815a6faa0..91d0e94e09 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.77.0", + "version": "5.77.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 936ba4130b..62da512350 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.77.0", + "version": "5.77.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 6cdb9e425b..87f13fa61e 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.77.0", + "version": "5.77.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index a178fd6471..9355d1969c 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.77.0", + "version": "5.77.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 28b6df5981..c354619132 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.77.0", + "version": "5.77.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 6524f42746..3dd4490be1 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.77.0", + "version": "5.77.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index bc016740a9..5494bef678 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.77.0", + "version": "5.77.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 6dec6ac2e4..753f2f45da 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.77.0", + "version": "5.77.1", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index b80d39fa13..e0d3a113e0 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.77.0", + "version": "5.77.1", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 8482146300..a574b63f48 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.77.0", + "version": "5.77.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 2105f74da9..4938b71a73 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.77.0", + "version": "5.77.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index c6a6752dba..687eeef4c7 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.77.0", + "version": "5.77.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From b2af5689f3da63de5c134b7bab1d5e50a36d8162 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Mon, 26 May 2025 21:03:44 +0900 Subject: [PATCH 107/432] refactor: centralize NonUndefinedGuard type definition (#9187) Moved the NonUndefinedGuard type definition to the query-core package for better reusability across various query options files in angular, react, solid, svelte, and vue packages. Removed duplicate definitions from individual files. --- .../angular-query-experimental/src/infinite-query-options.ts | 3 +-- packages/angular-query-experimental/src/query-options.ts | 3 +-- packages/query-core/src/types.ts | 2 ++ packages/react-query/src/infiniteQueryOptions.ts | 3 +-- packages/react-query/src/queryOptions.ts | 3 +-- packages/solid-query/src/infiniteQueryOptions.ts | 3 +-- packages/svelte-query/src/queryOptions.ts | 3 +-- packages/vue-query/src/infiniteQueryOptions.ts | 3 +-- packages/vue-query/src/useQuery.ts | 3 +-- 9 files changed, 10 insertions(+), 16 deletions(-) diff --git a/packages/angular-query-experimental/src/infinite-query-options.ts b/packages/angular-query-experimental/src/infinite-query-options.ts index 5b8844c78f..1245416539 100644 --- a/packages/angular-query-experimental/src/infinite-query-options.ts +++ b/packages/angular-query-experimental/src/infinite-query-options.ts @@ -3,6 +3,7 @@ import type { DefaultError, InfiniteData, InitialDataFunction, + NonUndefinedGuard, OmitKeyof, QueryKey, SkipToken, @@ -61,8 +62,6 @@ export type UnusedSkipTokenInfiniteOptions< > } -type NonUndefinedGuard = T extends undefined ? never : T - export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, diff --git a/packages/angular-query-experimental/src/query-options.ts b/packages/angular-query-experimental/src/query-options.ts index 2c48f49711..e82540bee5 100644 --- a/packages/angular-query-experimental/src/query-options.ts +++ b/packages/angular-query-experimental/src/query-options.ts @@ -2,6 +2,7 @@ import type { DataTag, DefaultError, InitialDataFunction, + NonUndefinedGuard, OmitKeyof, QueryFunction, QueryKey, @@ -36,8 +37,6 @@ export type UnusedSkipTokenOptions< > } -type NonUndefinedGuard = T extends undefined ? never : T - export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index dfde4ef867..735b8ea263 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -9,6 +9,8 @@ import type { QueryFilters, QueryTypeFilter, SkipToken } from './utils' import type { QueryCache } from './queryCache' import type { MutationCache } from './mutationCache' +export type NonUndefinedGuard = T extends undefined ? never : T + export type DistributiveOmit< TObject, TKey extends keyof TObject, diff --git a/packages/react-query/src/infiniteQueryOptions.ts b/packages/react-query/src/infiniteQueryOptions.ts index d834bd5987..18d3d655b0 100644 --- a/packages/react-query/src/infiniteQueryOptions.ts +++ b/packages/react-query/src/infiniteQueryOptions.ts @@ -3,6 +3,7 @@ import type { DefaultError, InfiniteData, InitialDataFunction, + NonUndefinedGuard, OmitKeyof, QueryKey, SkipToken, @@ -61,8 +62,6 @@ export type UnusedSkipTokenInfiniteOptions< > } -type NonUndefinedGuard = T extends undefined ? never : T - export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts index 1e7b4aa83a..644ac26788 100644 --- a/packages/react-query/src/queryOptions.ts +++ b/packages/react-query/src/queryOptions.ts @@ -2,6 +2,7 @@ import type { DataTag, DefaultError, InitialDataFunction, + NonUndefinedGuard, OmitKeyof, QueryFunction, QueryKey, @@ -36,8 +37,6 @@ export type UnusedSkipTokenOptions< > } -type NonUndefinedGuard = T extends undefined ? never : T - export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, diff --git a/packages/solid-query/src/infiniteQueryOptions.ts b/packages/solid-query/src/infiniteQueryOptions.ts index 97bea33c13..2cb1fea1f5 100644 --- a/packages/solid-query/src/infiniteQueryOptions.ts +++ b/packages/solid-query/src/infiniteQueryOptions.ts @@ -2,6 +2,7 @@ import type { DataTag, DefaultError, InfiniteData, + NonUndefinedGuard, QueryKey, } from '@tanstack/query-core' import type { SolidInfiniteQueryOptions } from './types' @@ -26,8 +27,6 @@ export type UndefinedInitialDataInfiniteOptions< } > -type NonUndefinedGuard = T extends undefined ? never : T - export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, diff --git a/packages/svelte-query/src/queryOptions.ts b/packages/svelte-query/src/queryOptions.ts index dc4beb2951..e1a44be631 100644 --- a/packages/svelte-query/src/queryOptions.ts +++ b/packages/svelte-query/src/queryOptions.ts @@ -2,6 +2,7 @@ import type { DataTag, DefaultError, InitialDataFunction, + NonUndefinedGuard, QueryKey, } from '@tanstack/query-core' import type { CreateQueryOptions } from './types.js' @@ -15,8 +16,6 @@ export type UndefinedInitialDataOptions< initialData?: undefined | InitialDataFunction> } -type NonUndefinedGuard = T extends undefined ? never : T - export type DefinedInitialDataOptions< TQueryFnData = unknown, TError = DefaultError, diff --git a/packages/vue-query/src/infiniteQueryOptions.ts b/packages/vue-query/src/infiniteQueryOptions.ts index dbe296e1af..220fd37563 100644 --- a/packages/vue-query/src/infiniteQueryOptions.ts +++ b/packages/vue-query/src/infiniteQueryOptions.ts @@ -2,6 +2,7 @@ import type { DataTag, DefaultError, InfiniteData, + NonUndefinedGuard, QueryKey, } from '@tanstack/query-core' import type { UseInfiniteQueryOptions } from './useInfiniteQuery' @@ -23,8 +24,6 @@ export type UndefinedInitialDataInfiniteOptions< initialData?: undefined } -type NonUndefinedGuard = T extends undefined ? never : T - export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError = DefaultError, diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index fd60dee2ee..168eb36095 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -4,6 +4,7 @@ import type { DefaultError, DefinedQueryObserverResult, InitialDataFunction, + NonUndefinedGuard, QueryKey, QueryObserverOptions, } from '@tanstack/query-core' @@ -16,8 +17,6 @@ import type { } from './types' import type { QueryClient } from './queryClient' -type NonUndefinedGuard = T extends undefined ? never : T - export type UseQueryOptions< TQueryFnData = unknown, TError = DefaultError, From f2aa15077494640b720b2665b7035cd44e740eed Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 26 May 2025 12:08:18 +0000 Subject: [PATCH 108/432] release: v5.77.2 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 149478e12a..77f2a01503 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index b0bd5b353c..812210d002 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.77.1", + "@tanstack/query-sync-storage-persister": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 72ee40e4ea..0f5214adc7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 9e729d8743..54d8008618 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-devtools-experimental": "^5.77.1", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-devtools-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 44329f7122..a07bd86f5e 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index b672ce977d..40c1a96011 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index b858917721..cd539ac534 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 549e7b5d99..f93a25398e 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 8a0d3956e0..d65eaf6c75 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", "@angular/router": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index d6e55a7e5f..b257b4cc48 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 3ab92d3ca4..8b66011d94 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0-rc.0", "@angular/platform-browser": "^20.0.0-rc.0", "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@tanstack/angular-query-experimental": "^5.77.1", + "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index af60a9f93c..ddd3b4c0d2 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 19aadc729f..8450525c93 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index e0c9494bc9..765bee3a7e 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 0a71eb7e4a..1e3a983c55 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.1", - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", - "@tanstack/react-query-persist-client": "^5.77.1", + "@tanstack/query-sync-storage-persister": "^5.77.2", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query-persist-client": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 8aa313546d..422e635f60 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 6e81ea3d57..6cd246e562 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 7797e1159c..02bc50a2fe 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6dc6e43b17..4d0b735367 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.1", - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", - "@tanstack/react-query-persist-client": "^5.77.1", + "@tanstack/query-sync-storage-persister": "^5.77.2", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query-persist-client": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 52618c9350..bd25010f6b 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index bb9f500063..7c353daff2 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 192137f3d5..505132b478 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 6101fce312..9bf6c647f8 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", - "@tanstack/react-query-next-experimental": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query-next-experimental": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index aab354303c..8bf57a9929 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 7c6f8fcf42..e9721345d4 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.1", + "@tanstack/query-sync-storage-persister": "^5.77.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", - "@tanstack/react-query-persist-client": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query-persist-client": "^5.77.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index f54460189e..d2bd39b479 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index d1725e67b6..96fa13bdbe 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 50143195ea..020fbd727d 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 7f6d73b33a..b83032f7e4 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 27af1487c3..e55801f8eb 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 9ca6ba5de2..012ecca558 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index b372cbb9af..61ccf53e99 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 215b4256d0..8f4bb0a6c6 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index d5225551d7..eeca853eb8 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 1411ad0025..e310b0cfe4 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index d9cebf318d..0475a7d4cb 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index f0d0a873e0..f926dbc301 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.1", - "@tanstack/react-query-devtools": "^5.77.1", + "@tanstack/react-query": "^5.77.2", + "@tanstack/react-query-devtools": "^5.77.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 28f17bfd65..46b03c9983 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.77.1", - "@tanstack/solid-query-devtools": "^5.77.1", + "@tanstack/solid-query": "^5.77.2", + "@tanstack/solid-query-devtools": "^5.77.2", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 65971381e4..231821e865 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.1", - "@tanstack/solid-query-devtools": "^5.77.1", + "@tanstack/solid-query": "^5.77.2", + "@tanstack/solid-query-devtools": "^5.77.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 6853415107..5cfab49193 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.1", - "@tanstack/solid-query-devtools": "^5.77.1", + "@tanstack/solid-query": "^5.77.2", + "@tanstack/solid-query-devtools": "^5.77.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index b6ba6794a5..f86abdd64f 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.1", - "@tanstack/solid-query-devtools": "^5.77.1", + "@tanstack/solid-query": "^5.77.2", + "@tanstack/solid-query-devtools": "^5.77.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 601ceb8730..edcaf287f4 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.1", - "@tanstack/solid-query-devtools": "^5.77.1", + "@tanstack/solid-query": "^5.77.2", + "@tanstack/solid-query-devtools": "^5.77.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 05491d69b7..e4e2c2de3e 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.77.1", - "@tanstack/solid-query-devtools": "^5.77.1", + "@tanstack/solid-query": "^5.77.2", + "@tanstack/solid-query-devtools": "^5.77.2", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index be054e96b3..ad312a1073 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1" + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index f9f9e3ce36..b871fb04c0 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.1", - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1", - "@tanstack/svelte-query-persist-client": "^5.77.1" + "@tanstack/query-sync-storage-persister": "^5.77.2", + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2", + "@tanstack/svelte-query-persist-client": "^5.77.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 032a243991..4d05ba8da8 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1" + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 539725c468..e247b289c1 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1" + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 682d4fcc04..8ce86638f0 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1" + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 23ee20bef4..1f8a98aae2 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1" + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 60141466a7..efb2399fe8 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1" + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 7c01f11971..002f50e299 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.1", - "@tanstack/svelte-query-devtools": "^5.77.1" + "@tanstack/svelte-query": "^5.77.2", + "@tanstack/svelte-query-devtools": "^5.77.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index effab48fff..9182630c47 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.1", + "@tanstack/vue-query": "^5.77.2", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 0660ea949e..59f1ebfd2f 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.1", + "@tanstack/vue-query": "^5.77.2", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index db4fa4c68e..197ff060eb 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.1", - "@tanstack/vue-query-devtools": "^5.77.1", + "@tanstack/vue-query": "^5.77.2", + "@tanstack/vue-query-devtools": "^5.77.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index c7e5ddc031..9ee5fb4029 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.1", + "@tanstack/vue-query": "^5.77.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index b0128b644d..057285bbf1 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.77.1" + "@tanstack/vue-query": "^5.77.2" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 621ab96ad9..1da4fa3b02 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.77.1", - "@tanstack/query-persist-client-core": "^5.77.1", - "@tanstack/query-sync-storage-persister": "^5.77.1", - "@tanstack/vue-query": "^5.77.1", + "@tanstack/query-core": "^5.77.2", + "@tanstack/query-persist-client-core": "^5.77.2", + "@tanstack/query-sync-storage-persister": "^5.77.2", + "@tanstack/vue-query": "^5.77.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 63dbea10e9..a7b75df1dd 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.1", - "@tanstack/vue-query-devtools": "^5.77.1", + "@tanstack/vue-query": "^5.77.2", + "@tanstack/vue-query-devtools": "^5.77.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index d6d1848e8b..a862dbea45 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.77.1", + "version": "5.77.2", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index a641c3d975..e43f78475f 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.77.1", + "version": "5.77.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 0cea980367..daf52db8b3 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.77.1", + "version": "5.77.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 676d2f433c..a1bbc17142 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.77.1", + "version": "5.77.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index eed7fda11b..a96f8c3b4b 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.77.1", + "version": "5.77.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index e4445fa583..2cfb340110 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.77.1", + "version": "5.77.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index be471813d7..083f93b210 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.77.1", + "version": "5.77.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 91d0e94e09..b403a06d10 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.77.1", + "version": "5.77.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 62da512350..a4bd62031c 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.77.1", + "version": "5.77.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 87f13fa61e..d7a964d953 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.77.1", + "version": "5.77.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 9355d1969c..d3298e21f1 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.77.1", + "version": "5.77.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index c354619132..2cf70d5202 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.77.1", + "version": "5.77.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 3dd4490be1..d2a16735af 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.77.1", + "version": "5.77.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 5494bef678..90680dd389 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.77.1", + "version": "5.77.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 753f2f45da..73883c8328 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.77.1", + "version": "5.77.2", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index e0d3a113e0..cacccc1222 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.77.1", + "version": "5.77.2", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index a574b63f48..6f7c655eca 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.77.1", + "version": "5.77.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 4938b71a73..db79ceb757 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.77.1", + "version": "5.77.2", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 687eeef4c7..c7553ab21f 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.77.1", + "version": "5.77.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From a1210cbf81c374bc3b839c08a4c8898b772409f3 Mon Sep 17 00:00:00 2001 From: jochong Date: Mon, 26 May 2025 22:18:56 +0900 Subject: [PATCH 109/432] feat(eslint-plugin): refactor and add mutation-property-order rule (#9191) Co-authored-by: Dominik Dorfmeister --- .../mutation-property-order.rule.test.ts | 218 ++++++++++++++++++ ...st.ts => sort-data-by-order.utils.test.ts} | 2 +- packages/eslint-plugin-query/src/index.ts | 2 + packages/eslint-plugin-query/src/rules.ts | 2 + .../constants.ts | 2 + .../infinite-query-property-order.rule.ts | 129 +++-------- .../mutation-property-order/constants.ts | 9 + .../mutation-property-order.rule.ts | 31 +++ .../src/utils/create-property-order-rule.ts | 103 +++++++++ .../sort-data-by-order.ts} | 0 10 files changed, 396 insertions(+), 102 deletions(-) create mode 100644 packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts rename packages/eslint-plugin-query/src/__tests__/{infinite-query-property-order.utils.test.ts => sort-data-by-order.utils.test.ts} (94%) create mode 100644 packages/eslint-plugin-query/src/rules/mutation-property-order/constants.ts create mode 100644 packages/eslint-plugin-query/src/rules/mutation-property-order/mutation-property-order.rule.ts create mode 100644 packages/eslint-plugin-query/src/utils/create-property-order-rule.ts rename packages/eslint-plugin-query/src/{rules/infinite-query-property-order/infinite-query-property-order.utils.ts => utils/sort-data-by-order.ts} (100%) diff --git a/packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts b/packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts new file mode 100644 index 0000000000..34839c684c --- /dev/null +++ b/packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts @@ -0,0 +1,218 @@ +import { RuleTester } from '@typescript-eslint/rule-tester' +import combinate from 'combinate' + +import { + checkedProperties, + mutationFunctions, +} from '../rules/mutation-property-order/constants' +import { + name, + rule, +} from '../rules/mutation-property-order/mutation-property-order.rule' +import { + generateInterleavedCombinations, + generatePartialCombinations, + generatePermutations, + normalizeIndent, +} from './test-utils' +import type { MutationFunctions } from '../rules/mutation-property-order/constants' + +const ruleTester = new RuleTester() + +type CheckedProperties = (typeof checkedProperties)[number] +const orderIndependentProps = [ + 'gcTime', + '...objectExpressionSpread', + '...callExpressionSpread', + '...memberCallExpressionSpread', +] as const +type OrderIndependentProps = (typeof orderIndependentProps)[number] + +interface TestCase { + mutationFunction: MutationFunctions + properties: Array +} + +const validTestMatrix = combinate({ + mutationFunction: [...mutationFunctions], + properties: generatePartialCombinations(checkedProperties, 2), +}) + +export function generateInvalidPermutations( + arr: ReadonlyArray, +): Array<{ + invalid: Array + valid: Array +}> { + const combinations = generatePartialCombinations(arr, 2) + const allPermutations: Array<{ + invalid: Array + valid: Array + }> = [] + + for (const combination of combinations) { + const permutations = generatePermutations(combination) + // skip the first permutation as it matches the original combination + const invalidPermutations = permutations.slice(1) + + if (combination.includes('onError') && combination.includes('onSettled')) { + if (combination.indexOf('onError') < combination.indexOf('onSettled')) { + // since we ignore the relative order of 'onError' and 'onSettled', we skip this combination (but keep the other one where `onSettled` is before `onError`) + + continue + } + } + + allPermutations.push( + ...invalidPermutations + .map((p) => { + // ignore the relative order of 'onError' and 'onSettled' + const correctedValid = [...combination].sort((a, b) => { + if ( + (a === 'onSettled' && b === 'onError') || + (a === 'onError' && b === 'onSettled') + ) { + return p.indexOf(a) - p.indexOf(b) + } + return checkedProperties.indexOf(a) - checkedProperties.indexOf(b) + }) + return { invalid: p, valid: correctedValid } + }) + .filter( + ({ invalid }) => + // if `onError` and `onSettled` are next to each other and `onMutate` is not present, we skip this invalid permutation + Math.abs( + invalid.indexOf('onSettled') - invalid.indexOf('onError'), + ) !== 1, + ), + ) + } + + return allPermutations +} + +const invalidPermutations = generateInvalidPermutations(checkedProperties) + +type Interleaved = CheckedProperties | OrderIndependentProps +const interleavedInvalidPermutations: Array<{ + invalid: Array + valid: Array +}> = [] +for (const invalidPermutation of invalidPermutations) { + const invalid = generateInterleavedCombinations( + invalidPermutation.invalid, + orderIndependentProps, + ) + const valid = generateInterleavedCombinations( + invalidPermutation.valid, + orderIndependentProps, + ) + + for (let i = 0; i < invalid.length; i++) { + interleavedInvalidPermutations.push({ + invalid: invalid[i]!, + valid: valid[i]!, + }) + } +} + +const invalidTestMatrix = combinate({ + mutationFunction: [...mutationFunctions], + properties: interleavedInvalidPermutations, +}) + +const callExpressionSpread = normalizeIndent` + ...mutationOptions({ + onSuccess: () => {}, + retry: 3, + })` + +function getCode({ mutationFunction: mutationFunction, properties }: TestCase) { + function getPropertyCode( + property: CheckedProperties | OrderIndependentProps, + ) { + switch (property) { + case '...objectExpressionSpread': + return `...objectExpressionSpread` + case '...callExpressionSpread': + return callExpressionSpread + case '...memberCallExpressionSpread': + return '...myOptions.mutationOptions()' + case 'gcTime': + return 'gcTime: 5 * 60 * 1000' + case 'onMutate': + return 'onMutate: (data) => {\n return { foo: data }\n}' + case 'onError': + return 'onError: (error, variables, context) => {\n console.log("error:", error, "context:", context)\n}' + case 'onSettled': + return 'onSettled: (data, error, variables, context) => {\n console.log("settled", context)\n}' + } + } + return ` + import { ${mutationFunction} } from '@tanstack/react-query' + + ${mutationFunction}({ + ${properties.map(getPropertyCode).join(',\n ')} + }) + ` +} + +const validTestCases = validTestMatrix.map( + ({ mutationFunction, properties }) => ({ + name: `should pass when order is correct for ${mutationFunction} with order: ${properties.join(', ')}`, + code: getCode({ + mutationFunction: mutationFunction, + properties, + }), + }), +) + +const invalidTestCases = invalidTestMatrix.map( + ({ mutationFunction, properties }) => ({ + name: `incorrect property order id detected for ${mutationFunction} with invalid order: ${properties.invalid.join(', ')}, valid order ${properties.valid.join(', ')}`, + code: getCode({ + mutationFunction: mutationFunction, + properties: properties.invalid, + }), + errors: [{ messageId: 'invalidOrder' }], + output: getCode({ + mutationFunction: mutationFunction, + properties: properties.valid, + }), + }), +) + +ruleTester.run(name, rule, { + valid: validTestCases, + invalid: invalidTestCases, +}) + +const regressionTestCases = { + valid: [ + { + name: 'should pass with call expression spread in useMutation', + code: normalizeIndent` + import { useMutation } from '@tanstack/react-query' + + const { mutate } = useMutation({ + ...mutationOptions({ + retry: 3, + onSuccess: () => console.log('success'), + }), + onMutate: (data) => { + return { foo: data } + }, + onError: (error, variables, context) => { + console.log(error, context) + }, + onSettled: (data, error, variables, context) => { + console.log('settled', context) + }, + }) + `, + }, + ], + invalid: [], +} + +ruleTester.run(name, rule, regressionTestCases) diff --git a/packages/eslint-plugin-query/src/__tests__/infinite-query-property-order.utils.test.ts b/packages/eslint-plugin-query/src/__tests__/sort-data-by-order.utils.test.ts similarity index 94% rename from packages/eslint-plugin-query/src/__tests__/infinite-query-property-order.utils.test.ts rename to packages/eslint-plugin-query/src/__tests__/sort-data-by-order.utils.test.ts index 6b505f7065..577252b7c6 100644 --- a/packages/eslint-plugin-query/src/__tests__/infinite-query-property-order.utils.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/sort-data-by-order.utils.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from 'vitest' -import { sortDataByOrder } from '../rules/infinite-query-property-order/infinite-query-property-order.utils' +import { sortDataByOrder } from '../utils/sort-data-by-order' describe('create-route-property-order utils', () => { describe('sortDataByOrder', () => { diff --git a/packages/eslint-plugin-query/src/index.ts b/packages/eslint-plugin-query/src/index.ts index 7a70f9e9ff..46dd3d7dba 100644 --- a/packages/eslint-plugin-query/src/index.ts +++ b/packages/eslint-plugin-query/src/index.ts @@ -31,6 +31,7 @@ Object.assign(plugin.configs, { '@tanstack/query/no-unstable-deps': 'error', '@tanstack/query/infinite-query-property-order': 'error', '@tanstack/query/no-void-query-fn': 'error', + '@tanstack/query/mutation-property-order': 'error', }, }, 'flat/recommended': [ @@ -46,6 +47,7 @@ Object.assign(plugin.configs, { '@tanstack/query/no-unstable-deps': 'error', '@tanstack/query/infinite-query-property-order': 'error', '@tanstack/query/no-void-query-fn': 'error', + '@tanstack/query/mutation-property-order': 'error', }, }, ], diff --git a/packages/eslint-plugin-query/src/rules.ts b/packages/eslint-plugin-query/src/rules.ts index 5163deb3de..d527768ec1 100644 --- a/packages/eslint-plugin-query/src/rules.ts +++ b/packages/eslint-plugin-query/src/rules.ts @@ -4,6 +4,7 @@ import * as noRestDestructuring from './rules/no-rest-destructuring/no-rest-dest import * as noUnstableDeps from './rules/no-unstable-deps/no-unstable-deps.rule' import * as infiniteQueryPropertyOrder from './rules/infinite-query-property-order/infinite-query-property-order.rule' import * as noVoidQueryFn from './rules/no-void-query-fn/no-void-query-fn.rule' +import * as mutationPropertyOrder from './rules/mutation-property-order/mutation-property-order.rule' import type { ESLintUtils } from '@typescript-eslint/utils' import type { ExtraRuleDocs } from './types' @@ -22,4 +23,5 @@ export const rules: Record< [noUnstableDeps.name]: noUnstableDeps.rule, [infiniteQueryPropertyOrder.name]: infiniteQueryPropertyOrder.rule, [noVoidQueryFn.name]: noVoidQueryFn.rule, + [mutationPropertyOrder.name]: mutationPropertyOrder.rule, } diff --git a/packages/eslint-plugin-query/src/rules/infinite-query-property-order/constants.ts b/packages/eslint-plugin-query/src/rules/infinite-query-property-order/constants.ts index f3b5a1f911..ec1f3ff287 100644 --- a/packages/eslint-plugin-query/src/rules/infinite-query-property-order/constants.ts +++ b/packages/eslint-plugin-query/src/rules/infinite-query-property-order/constants.ts @@ -12,6 +12,8 @@ export const checkedProperties = [ 'getNextPageParam', ] as const +export type InfiniteQueryProperties = (typeof checkedProperties)[number] + export const sortRules = [ [['queryFn'], ['getPreviousPageParam', 'getNextPageParam']], ] as const diff --git a/packages/eslint-plugin-query/src/rules/infinite-query-property-order/infinite-query-property-order.rule.ts b/packages/eslint-plugin-query/src/rules/infinite-query-property-order/infinite-query-property-order.rule.ts index d145030cc6..7568fef9a4 100644 --- a/packages/eslint-plugin-query/src/rules/infinite-query-property-order/infinite-query-property-order.rule.ts +++ b/packages/eslint-plugin-query/src/rules/infinite-query-property-order/infinite-query-property-order.rule.ts @@ -1,107 +1,34 @@ -import { AST_NODE_TYPES, ESLintUtils } from '@typescript-eslint/utils' - -import { getDocsUrl } from '../../utils/get-docs-url' -import { detectTanstackQueryImports } from '../../utils/detect-react-query-imports' -import { sortDataByOrder } from './infinite-query-property-order.utils' +import { createPropertyOrderRule } from '../../utils/create-property-order-rule' import { infiniteQueryFunctions, sortRules } from './constants' -import type { InfiniteQueryFunctions } from './constants' -import type { ExtraRuleDocs } from '../../types' - -const createRule = ESLintUtils.RuleCreator(getDocsUrl) - -const infiniteQueryFunctionsSet = new Set(infiniteQueryFunctions) -function isInfiniteQueryFunction(node: any): node is InfiniteQueryFunctions { - return infiniteQueryFunctionsSet.has(node) -} +import type { + InfiniteQueryFunctions, + InfiniteQueryProperties, +} from './constants' export const name = 'infinite-query-property-order' -export const rule = createRule({ - name, - meta: { - type: 'problem', - docs: { - description: - 'Ensure correct order of inference sensitive properties for infinite queries', - recommended: 'error', - }, - messages: { - invalidOrder: 'Invalid order of properties for `{{function}}`.', +export const rule = createPropertyOrderRule< + InfiniteQueryFunctions, + InfiniteQueryProperties +>( + { + name, + meta: { + type: 'problem', + docs: { + description: + 'Ensure correct order of inference sensitive properties for infinite queries', + recommended: 'error', + }, + messages: { + invalidOrder: 'Invalid order of properties for `{{function}}`.', + }, + schema: [], + hasSuggestions: true, + fixable: 'code', }, - schema: [], - hasSuggestions: true, - fixable: 'code', + defaultOptions: [], }, - defaultOptions: [], - - create: detectTanstackQueryImports((context) => { - return { - CallExpression(node) { - if (node.callee.type !== AST_NODE_TYPES.Identifier) { - return - } - const infiniteQueryFunction = node.callee.name - if (!isInfiniteQueryFunction(infiniteQueryFunction)) { - return - } - const argument = node.arguments[0] - if (argument === undefined || argument.type !== 'ObjectExpression') { - return - } - - const allProperties = argument.properties - - // no need to sort if there is at max 1 property - if (allProperties.length < 2) { - return - } - - const properties = allProperties.flatMap((p, index) => { - if ( - p.type === AST_NODE_TYPES.Property && - p.key.type === AST_NODE_TYPES.Identifier - ) { - return { name: p.key.name, property: p } - } else return { name: `_property_${index}`, property: p } - }) - - const sortedProperties = sortDataByOrder(properties, sortRules, 'name') - if (sortedProperties === null) { - return - } - context.report({ - node: argument, - data: { function: node.callee.name }, - messageId: 'invalidOrder', - fix(fixer) { - const sourceCode = context.sourceCode - - const reorderedText = sortedProperties.reduce( - (sourceText, specifier, index) => { - let textBetweenProperties = '' - if (index < allProperties.length - 1) { - textBetweenProperties = sourceCode - .getText() - .slice( - allProperties[index]!.range[1], - allProperties[index + 1]!.range[0], - ) - } - return ( - sourceText + - sourceCode.getText(specifier.property) + - textBetweenProperties - ) - }, - '', - ) - return fixer.replaceTextRange( - [allProperties[0]!.range[0], allProperties.at(-1)!.range[1]], - reorderedText, - ) - }, - }) - }, - } - }), -}) + infiniteQueryFunctions, + sortRules, +) diff --git a/packages/eslint-plugin-query/src/rules/mutation-property-order/constants.ts b/packages/eslint-plugin-query/src/rules/mutation-property-order/constants.ts new file mode 100644 index 0000000000..04c809a694 --- /dev/null +++ b/packages/eslint-plugin-query/src/rules/mutation-property-order/constants.ts @@ -0,0 +1,9 @@ +export const mutationFunctions = ['useMutation'] as const + +export type MutationFunctions = (typeof mutationFunctions)[number] + +export const checkedProperties = ['onMutate', 'onError', 'onSettled'] as const + +export type MutationProperties = (typeof checkedProperties)[number] + +export const sortRules = [[['onMutate'], ['onError', 'onSettled']]] as const diff --git a/packages/eslint-plugin-query/src/rules/mutation-property-order/mutation-property-order.rule.ts b/packages/eslint-plugin-query/src/rules/mutation-property-order/mutation-property-order.rule.ts new file mode 100644 index 0000000000..b4857e12fe --- /dev/null +++ b/packages/eslint-plugin-query/src/rules/mutation-property-order/mutation-property-order.rule.ts @@ -0,0 +1,31 @@ +import { createPropertyOrderRule } from '../../utils/create-property-order-rule' +import { mutationFunctions, sortRules } from './constants' +import type { MutationFunctions, MutationProperties } from './constants' + +export const name = 'mutation-property-order' + +export const rule = createPropertyOrderRule< + MutationFunctions, + MutationProperties +>( + { + name, + meta: { + type: 'problem', + docs: { + description: + 'Ensure correct order of inference-sensitive properties in useMutation()', + recommended: 'error', + }, + messages: { + invalidOrder: 'Invalid order of properties for `{{function}}`.', + }, + schema: [], + hasSuggestions: true, + fixable: 'code', + }, + defaultOptions: [], + }, + mutationFunctions, + sortRules, +) diff --git a/packages/eslint-plugin-query/src/utils/create-property-order-rule.ts b/packages/eslint-plugin-query/src/utils/create-property-order-rule.ts new file mode 100644 index 0000000000..f10f05ac65 --- /dev/null +++ b/packages/eslint-plugin-query/src/utils/create-property-order-rule.ts @@ -0,0 +1,103 @@ +import { AST_NODE_TYPES, ESLintUtils } from '@typescript-eslint/utils' + +import { getDocsUrl } from './get-docs-url' +import { detectTanstackQueryImports } from './detect-react-query-imports' +import { sortDataByOrder } from './sort-data-by-order' +import type { ExtraRuleDocs } from '../types' + +const createRule = ESLintUtils.RuleCreator(getDocsUrl) + +export function createPropertyOrderRule< + TFunc extends string, + TProp extends string, +>( + options: Omit[0], 'create'>, + targetFunctions: ReadonlyArray | Array, + orderRules: ReadonlyArray< + Readonly<[ReadonlyArray, ReadonlyArray]> + >, +) { + const targetFunctionSet = new Set(targetFunctions) + function isTargetFunction(node: any): node is TFunc { + return targetFunctionSet.has(node) + } + + return createRule({ + ...options, + create: detectTanstackQueryImports((context) => { + return { + CallExpression(node) { + if (node.callee.type !== AST_NODE_TYPES.Identifier) { + return + } + const functions = node.callee.name + if (!isTargetFunction(functions)) { + return + } + const argument = node.arguments[0] + if (argument === undefined || argument.type !== 'ObjectExpression') { + return + } + + const allProperties = argument.properties + + // no need to sort if there is at max 1 property + if (allProperties.length < 2) { + return + } + + const properties = allProperties.flatMap((p, index) => { + if ( + p.type === AST_NODE_TYPES.Property && + p.key.type === AST_NODE_TYPES.Identifier + ) { + return { name: p.key.name, property: p } + } else return { name: `_property_${index}`, property: p } + }) + + const sortedProperties = sortDataByOrder( + properties, + orderRules, + 'name', + ) + if (sortedProperties === null) { + return + } + + context.report({ + node: argument, + data: { function: node.callee.name }, + messageId: 'invalidOrder', + fix(fixer) { + const sourceCode = context.sourceCode + + const reorderedText = sortedProperties.reduce( + (sourceText, specifier, index) => { + let textBetweenProperties = '' + if (index < allProperties.length - 1) { + textBetweenProperties = sourceCode + .getText() + .slice( + allProperties[index]!.range[1], + allProperties[index + 1]!.range[0], + ) + } + return ( + sourceText + + sourceCode.getText(specifier.property) + + textBetweenProperties + ) + }, + '', + ) + return fixer.replaceTextRange( + [allProperties[0]!.range[0], allProperties.at(-1)!.range[1]], + reorderedText, + ) + }, + }) + }, + } + }), + }) +} diff --git a/packages/eslint-plugin-query/src/rules/infinite-query-property-order/infinite-query-property-order.utils.ts b/packages/eslint-plugin-query/src/utils/sort-data-by-order.ts similarity index 100% rename from packages/eslint-plugin-query/src/rules/infinite-query-property-order/infinite-query-property-order.utils.ts rename to packages/eslint-plugin-query/src/utils/sort-data-by-order.ts From 7a6733f75bb1a207e74b20621d417be384b1b2fa Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 26 May 2025 13:28:10 +0000 Subject: [PATCH 110/432] release: v5.78.0 --- examples/react/algolia/package.json | 2 +- examples/react/basic/package.json | 2 +- examples/react/eslint-legacy/package.json | 2 +- examples/solid/simple/package.json | 2 +- packages/eslint-plugin-query/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index ddd3b4c0d2..df25d48e9d 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -15,7 +15,7 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.74.7", + "@tanstack/eslint-plugin-query": "^5.78.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1e3a983c55..5fb8a655d6 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -17,7 +17,7 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.74.7", + "@tanstack/eslint-plugin-query": "^5.78.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 4d0b735367..a1629228e5 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -17,7 +17,7 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.74.7", + "@tanstack/eslint-plugin-query": "^5.78.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index edcaf287f4..7fd9f52601 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -13,7 +13,7 @@ "solid-js": "^1.9.5" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.74.7", + "@tanstack/eslint-plugin-query": "^5.78.0", "typescript": "5.8.3", "vite": "^6.2.4", "vite-plugin-solid": "^2.11.6" diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index c9df4ba4e1..dd37cdc7ca 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.74.7", + "version": "5.78.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", From 9e30aafa0b6f9a8ba61813f9f266cbb65a30bb95 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Wed, 28 May 2025 21:12:03 +0200 Subject: [PATCH 111/432] chore(angular-query): update to angular 20 stable (#9209) --- examples/angular/auto-refetching/package.json | 16 +- examples/angular/basic-persister/package.json | 16 +- examples/angular/basic/package.json | 16 +- examples/angular/devtools-panel/package.json | 18 +- .../package.json | 16 +- .../angular/optimistic-updates/package.json | 18 +- examples/angular/pagination/package.json | 16 +- .../query-options-from-a-service/package.json | 18 +- examples/angular/router/package.json | 18 +- examples/angular/rxjs/package.json | 18 +- examples/angular/simple/package.json | 16 +- integrations/angular-cli-20/package.json | 18 +- .../package.json | 4 +- .../angular-query-experimental/package.json | 10 +- .../angular-query-persist-client/package.json | 12 +- pnpm-lock.yaml | 1348 +++++++++++------ 16 files changed, 997 insertions(+), 581 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 77f2a01503..1a0db3bb4e 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -9,20 +9,20 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 812210d002..71857b3e56 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -9,11 +9,11 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-sync-storage-persister": "^5.77.2", @@ -22,9 +22,9 @@ "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 0f5214adc7..420b5bbcaa 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -9,20 +9,20 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 54d8008618..861d5726a5 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -9,12 +9,12 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@angular/router": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", + "@angular/router": "^20.0.0", "@tanstack/angular-query-devtools-experimental": "^5.77.2", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", @@ -22,9 +22,9 @@ "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index a07bd86f5e..cf10f89c91 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -9,20 +9,20 @@ "watch": "ng build --watch --configuration development" }, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 40c1a96011..114ee8fe47 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -9,21 +9,21 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/forms": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/forms": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index cd539ac534..10aab6f808 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -9,20 +9,20 @@ "watch": "ng build --watch --configuration development" }, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index f93a25398e..84d91dcd40 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -9,21 +9,21 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@angular/router": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", + "@angular/router": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index d65eaf6c75..4d8088063f 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -9,21 +9,21 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", - "@angular/router": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", + "@angular/router": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index b257b4cc48..8d936ba503 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -9,21 +9,21 @@ "watch": "ng build --watch --configuration development" }, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/forms": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/forms": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 8b66011d94..f68cc91192 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -9,20 +9,20 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.77.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-rc.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "5.8.3" } } diff --git a/integrations/angular-cli-20/package.json b/integrations/angular-cli-20/package.json index 66f9a7c600..7758526705 100644 --- a/integrations/angular-cli-20/package.json +++ b/integrations/angular-cli-20/package.json @@ -9,21 +9,21 @@ }, "private": true, "dependencies": { - "@angular/common": "^20.0.0-next.0", - "@angular/compiler": "^20.0.0-next.0", - "@angular/core": "^20.0.0-next.0", - "@angular/forms": "^20.0.0-next.0", - "@angular/platform-browser": "^20.0.0-next.0", - "@angular/router": "^20.0.0-next.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/forms": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/router": "^20.0.0", "@tanstack/angular-query-experimental": "^5.76.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular/build": "^20.0.0-rc.2", - "@angular/cli": "^20.0.0-rc.2", - "@angular/compiler-cli": "^20.0.0-next.0", + "@angular/build": "^20.0.0", + "@angular/cli": "^20.0.0", + "@angular/compiler-cli": "^20.0.0", "typescript": "~5.8.2" } } diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index a862dbea45..2df6f9885f 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -54,8 +54,8 @@ "@tanstack/query-devtools": "workspace:*" }, "devDependencies": { - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "workspace:*", "eslint-plugin-jsdoc": "^50.5.0", "npm-run-all2": "^5.0.0" diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index e43f78475f..659549b9d1 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -70,11 +70,11 @@ "@tanstack/query-devtools": "workspace:*" }, "devDependencies": { - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/query-test-utils": "workspace:*", "eslint-plugin-jsdoc": "^50.5.0", "npm-run-all2": "^5.0.0" diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 82167f1c36..ad231460b9 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -57,12 +57,12 @@ "@tanstack/query-persist-client-core": "workspace:*" }, "devDependencies": { - "@angular/animations": "^20.0.0-rc.0", - "@angular/common": "^20.0.0-rc.0", - "@angular/compiler": "^20.0.0-rc.0", - "@angular/core": "^20.0.0-rc.0", - "@angular/platform-browser": "^20.0.0-rc.0", - "@angular/platform-browser-dynamic": "^20.0.0-rc.0", + "@angular/animations": "^20.0.0", + "@angular/common": "^20.0.0", + "@angular/compiler": "^20.0.0", + "@angular/core": "^20.0.0", + "@angular/platform-browser": "^20.0.0", + "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "workspace:*", "@tanstack/query-test-utils": "workspace:*", "@testing-library/angular": "^17.3.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8236f2f5d0..ff894737eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -153,20 +153,20 @@ importers: examples/angular/auto-refetching: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -181,14 +181,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -196,20 +196,20 @@ importers: examples/angular/basic: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -224,14 +224,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -239,20 +239,20 @@ importers: examples/angular/basic-persister: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -273,14 +273,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -288,23 +288,23 @@ importers: examples/angular/devtools-panel: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-devtools-experimental': specifier: workspace:* version: link:../../../packages/angular-query-devtools-experimental @@ -322,14 +322,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -337,20 +337,20 @@ importers: examples/angular/infinite-query-with-max-pages: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -365,14 +365,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -380,23 +380,23 @@ importers: examples/angular/optimistic-updates: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -411,14 +411,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -426,20 +426,20 @@ importers: examples/angular/pagination: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -454,14 +454,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -469,23 +469,23 @@ importers: examples/angular/query-options-from-a-service: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -500,14 +500,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -515,23 +515,23 @@ importers: examples/angular/router: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -546,14 +546,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -561,23 +561,23 @@ importers: examples/angular/rxjs: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -592,14 +592,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -607,20 +607,20 @@ importers: examples/angular/simple: dependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -635,14 +635,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1231,7 +1231,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(cgoxobftzx7q2rxvco2fw2mfyq) + version: 6.4.1(1f29909f8de70b3aa674884b982ac755) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -2021,23 +2021,23 @@ importers: integrations/angular-cli-20: dependencies: '@angular/common': - specifier: ^20.0.0-next.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-next.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-next.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/forms': - specifier: ^20.0.0-next.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@angular/platform-browser': - specifier: ^20.0.0-next.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/router': - specifier: ^20.0.0-next.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../packages/angular-query-experimental @@ -2052,14 +2052,14 @@ importers: version: 0.15.0 devDependencies: '@angular/build': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) '@angular/cli': - specifier: ^20.0.0-rc.2 - version: 20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3) + specifier: ^20.0.0 + version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) '@angular/compiler-cli': - specifier: ^20.0.0-next.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) typescript: specifier: ~5.8.2 version: 5.8.3 @@ -2280,17 +2280,17 @@ importers: dependencies: '@angular/common': specifier: '>=16.0.0' - version: 19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + version: 19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@tanstack/query-devtools': specifier: workspace:* version: link:../query-devtools devDependencies: '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../angular-query-experimental @@ -2311,20 +2311,20 @@ importers: version: link:../query-devtools devDependencies: '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2342,23 +2342,23 @@ importers: version: link:../query-persist-client-core devDependencies: '@angular/animations': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + specifier: ^20.0.0 + version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/compiler': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0 + specifier: ^20.0.0 + version: 20.0.0 '@angular/core': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + specifier: ^20.0.0 + version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + specifier: ^20.0.0 + version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/platform-browser-dynamic': - specifier: ^20.0.0-rc.0 - version: 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))) + specifier: ^20.0.0 + version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../angular-query-experimental @@ -2367,7 +2367,7 @@ importers: version: link:../query-test-utils '@testing-library/angular': specifier: ^17.3.7 - version: 17.3.7(xmnuavpccaawxaioptrq4egdy4) + version: 17.3.7(44e06ac0fb247039d3919c909462d711) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -2490,7 +2490,7 @@ importers: version: 2.2.1 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.4)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) @@ -2667,7 +2667,7 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.4)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) @@ -2689,7 +2689,7 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.4)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) @@ -2717,7 +2717,7 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.4)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) @@ -2914,45 +2914,45 @@ packages: '@andrewbranch/untar.js@1.0.3': resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} - '@angular-devkit/architect@0.2000.0-rc.2': - resolution: {integrity: sha512-Djnp29FKGZvfNBY6CZOTMV0RCpKWcukHTH0q1FZMAqCQX56At9828AvPDssKsSs5+ngq3LVIHLBNaPAqMULE0Q==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/architect@0.2000.0': + resolution: {integrity: sha512-6accOuvf1BY6hTO5LzYcxp2Dpl0bThgYF3KdwVWqrYF5+6PWfQLdy+rKxBiCIv0+0OngZVI79RuAtUKFowFM/A==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/core@20.0.0-rc.2': - resolution: {integrity: sha512-BGCSAIyUkGiuLQOqVjmBODRdVIJYc1RsO5GQzGmn0kZBsehu+RiELLhhbgfrSUJil0gJxgMML4x4vgIUofBEEQ==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/core@20.0.0': + resolution: {integrity: sha512-cnB/I1QQC3WoIcb+f/7hknOOkgIFjAuxd7nW1RnS+pn0qQTWyjnXjq2jocx2TBMwZRikycc7f3mlA1DgWzJUuQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 peerDependenciesMeta: chokidar: optional: true - '@angular-devkit/schematics@20.0.0-rc.2': - resolution: {integrity: sha512-VmpjYyCfFL39gl1wVDR8cikpjJj6WUlGe18N1LjJEUcwVjeoYsLQyxurM6JTv2IfyfYsIbr2FwpOpdajvzWEBQ==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@angular/animations@20.0.0-rc.0': - resolution: {integrity: sha512-+vrpMe9NJ4QmW8iBh/cf/9sDHTOcJk7UW4jCf8y9s9HLk38MgUiCE0WAZz6RmnIrFGUCfewPzp9OsSf8duG4ww==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} - peerDependencies: - '@angular/common': 20.0.0-rc.0 - '@angular/core': 20.0.0-rc.0 - - '@angular/build@20.0.0-rc.2': - resolution: {integrity: sha512-vif6SJFtKsdHCMZElaSEo0ghNqtWhnRGvz0s07Y2+YCPEXEzzFh9aMtehWEYwltrbSev4hU3cbfFN7q14vXMZA==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - '@angular/compiler': ^20.0.0 || ^20.0.0-next.0 - '@angular/compiler-cli': ^20.0.0 || ^20.0.0-next.0 - '@angular/core': ^20.0.0 || ^20.0.0-next.0 - '@angular/localize': ^20.0.0 || ^20.0.0-next.0 - '@angular/platform-browser': ^20.0.0 || ^20.0.0-next.0 - '@angular/platform-server': ^20.0.0 || ^20.0.0-next.0 - '@angular/service-worker': ^20.0.0 || ^20.0.0-next.0 - '@angular/ssr': ^20.0.0-rc.2 + '@angular-devkit/schematics@20.0.0': + resolution: {integrity: sha512-35WbWP8ARnaqVjOzy7IOyWsY/jeyUqfVj4KgHG2O4fHAhIhaBqhP8dDDP+SwM+bToIqklg0fzHUUhFTRxzzyoQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular/animations@20.0.0': + resolution: {integrity: sha512-yU4hUH6AheY0dnMSaLRMfgnXhg/JUSUvrhE+lHzIiSKdEf0lyo1Ri6bkPD1CbamxZ94BqhRNCApvbvTbibGICQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@angular/common': 20.0.0 + '@angular/core': 20.0.0 + + '@angular/build@20.0.0': + resolution: {integrity: sha512-b/FAvvUbsMEgr+UlvTtDz4NCv+BFi+55swtKRmaritvZ2rDfhF1x9tUmSkT6GebGXkI/Gg0kl5rJoD5iv5lY3A==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler': ^20.0.0 + '@angular/compiler-cli': ^20.0.0 + '@angular/core': ^20.0.0 + '@angular/localize': ^20.0.0 + '@angular/platform-browser': ^20.0.0 + '@angular/platform-server': ^20.0.0 + '@angular/service-worker': ^20.0.0 + '@angular/ssr': ^20.0.0 karma: ^6.4.0 less: ^4.2.0 - ng-packagr: ^20.0.0 || ^20.0.0-next.0 + ng-packagr: ^20.0.0 postcss: ^8.4.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 tslib: ^2.3.0 @@ -2984,9 +2984,9 @@ packages: vitest: optional: true - '@angular/cli@20.0.0-rc.2': - resolution: {integrity: sha512-/XbwlcuEWhGYJj1TX46/lvcctUd0McphlQa27sMMeNnveuPWYmW1RptbRGT8GF47Fqrlcxzg03rgtqKVYSevYw==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular/cli@20.0.0': + resolution: {integrity: sha512-k9EDaaLYTMWkBbayUh6Tf0PJ+E0e6jRPrjOSPsOJHRh+S5BsNdLIsKJmThGXkq2wnD35+2CKPy9UQyvfaIA5KQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true '@angular/common@19.2.4': @@ -2996,72 +2996,77 @@ packages: '@angular/core': 19.2.4 rxjs: ^6.5.3 || ^7.4.0 - '@angular/common@20.0.0-rc.0': - resolution: {integrity: sha512-aaEjRPtVv0DF3q6wPHRfephY1kMYTefmFH35z+hzcUVIrVyYQdT/LIUX3L+C9ITfYyLmFWlENf3HxmVUILfXAg==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/common@20.0.0': + resolution: {integrity: sha512-tZTvxDjx+wH74/hIpip63u4tlaXNVXkq1iVf4gk7RPQGCAYLNPDWma8X+RpXMXWikn4/mA5NS1VBBtStTbS+gg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.0.0-rc.0 + '@angular/core': 20.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.0.0-rc.0': - resolution: {integrity: sha512-0+nEw4JXRSdBPDJvtBwQlMYd3dVsM0XOzc1hpg+1E7RWIXsxGb2WE8gEvNjNdR0oE7kjdUWSOKlDMJfE3AWVLA==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/compiler-cli@20.0.0': + resolution: {integrity: sha512-dPFp/YyRJkiyppnoI85mZz0CJv0ulc5MpJV16Lx0qdrRyoKmBrGmdaGEP0DOhhBLVAmJ5J2wvShvWfE2pjMMWw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.0.0-rc.0 + '@angular/compiler': 20.0.0 typescript: '>=5.8 <5.9' + peerDependenciesMeta: + typescript: + optional: true - '@angular/compiler@20.0.0-rc.0': - resolution: {integrity: sha512-MJ2rJVQ/H6m9P3kIL9+wrwLnY2N48GM6vBhZ5+hVvtTPKLM0qcMwfTd/1SaG5e17tpg4mDWcr+pmnoGFgkXHvg==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/compiler@20.0.0': + resolution: {integrity: sha512-RzS7MFNy/f8Tft0u6Q1zszzFTeki4408zsBALwmS91a8O8x/jaEvfwA7swC7RiqiX9KKmAyuBJ0qiv42v1T5dA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.0.0-rc.0': - resolution: {integrity: sha512-RKIXYA129vdrRKrnac2XOgpWuYusWqwM4KsQ7b5qKIMZabJ0a2GoOlezT6+NhPkOSsyygYuZtaia5wzQeU1acA==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/core@20.0.0': + resolution: {integrity: sha512-2UjKbTtYSY8omY+LE4G6hQ1/R4PkE6NY7/2u99TxLH/oOnc9broCH1g9ITU+n0eJURcOFeK0/w6RdSrK+di3pg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.0.0-rc.0 + '@angular/compiler': 20.0.0 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: '@angular/compiler': optional: true + zone.js: + optional: true - '@angular/forms@20.0.0-rc.0': - resolution: {integrity: sha512-RH95gg+WBBHS+m6y2XDTCCUZMg6Xih1Y4G91tnBdzSxV32evqyNDrSA9IxOhC6Ztxcd+2aLg1S1hsaiMbF2Alw==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/forms@20.0.0': + resolution: {integrity: sha512-6yeb99IrNyeyj7o0bbd+n3JTZrXX2dJfdYLJH3tlXVlO9wg63bq+YR1AeM+RDCYMs+YDJis0lQpF6s+OICJv4g==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.0.0-rc.0 - '@angular/core': 20.0.0-rc.0 - '@angular/platform-browser': 20.0.0-rc.0 + '@angular/common': 20.0.0 + '@angular/core': 20.0.0 + '@angular/platform-browser': 20.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser-dynamic@20.0.0-rc.0': - resolution: {integrity: sha512-wkPfi5dYJippGMGDtkUZUY5hOGvwW9gumkO4CH8b0xH4D5I58LSbvaq2LwvNrM8VDJ7K7NCSjjjOzQ+0o5FLaA==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/platform-browser-dynamic@20.0.0': + resolution: {integrity: sha512-AACq3Ijuq59SdLDmfxWU8hYlo8O4Br9OHWNAga2W0X6p/7HlpeZZVdTlb/KGVYRKJvGpgSB10QYlRPfm215q9Q==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.0.0-rc.0 - '@angular/compiler': 20.0.0-rc.0 - '@angular/core': 20.0.0-rc.0 - '@angular/platform-browser': 20.0.0-rc.0 + '@angular/common': 20.0.0 + '@angular/compiler': 20.0.0 + '@angular/core': 20.0.0 + '@angular/platform-browser': 20.0.0 - '@angular/platform-browser@20.0.0-rc.0': - resolution: {integrity: sha512-mu2g1PNJkGCJxyCA366nGQt3abX9jx+VTcPR1PRaLqY/sGzA42sYJTG/M74CIpfnx9Sxb1hD3/XCB3xbN5rPhw==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/platform-browser@20.0.0': + resolution: {integrity: sha512-FP9YjT2beF0tov0wub6+eUQqJd2MwyYqEQQ6+Qx67ukd04plIryhrcImORehrsN24DbnHkyTqhCvUyNAZs2uwA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.0.0-rc.0 - '@angular/common': 20.0.0-rc.0 - '@angular/core': 20.0.0-rc.0 + '@angular/animations': 20.0.0 + '@angular/common': 20.0.0 + '@angular/core': 20.0.0 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/router@20.0.0-rc.0': - resolution: {integrity: sha512-QkViBejo2xZwyGMHcM7NJh8QxhrAEeNq58Yoph6owzGb1/LMArVvZgoJAJC8HW3ojHN8xFUIfgxM4sFjjcw0dA==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0} + '@angular/router@20.0.0': + resolution: {integrity: sha512-RQ7rU4NaZDSvvOfMZQmB50q7de+jrHYb+f0ExLKBvr80B1MK3oc9VvI2BzBkGfM4aGx71MMa0UizjOiT/31kqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.0.0-rc.0 - '@angular/core': 20.0.0-rc.0 - '@angular/platform-browser': 20.0.0-rc.0 + '@angular/common': 20.0.0 + '@angular/core': 20.0.0 + '@angular/platform-browser': 20.0.0 rxjs: ^6.5.3 || ^7.4.0 '@arethetypeswrong/cli@0.15.3': @@ -4669,6 +4674,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.25.5': + resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.20.2': resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} @@ -4693,6 +4704,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.25.5': + resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.20.2': resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} @@ -4717,6 +4734,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.25.5': + resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.20.2': resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} @@ -4741,6 +4764,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.25.5': + resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.20.2': resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} @@ -4765,6 +4794,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.25.5': + resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.20.2': resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} @@ -4789,6 +4824,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.25.5': + resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.20.2': resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} @@ -4813,6 +4854,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.25.5': + resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.20.2': resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} @@ -4837,6 +4884,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.25.5': + resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.20.2': resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} @@ -4861,6 +4914,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.25.5': + resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.20.2': resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} @@ -4885,6 +4944,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.25.5': + resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.20.2': resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} @@ -4909,6 +4974,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.25.5': + resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.20.2': resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} @@ -4933,6 +5004,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.25.5': + resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.20.2': resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} @@ -4957,6 +5034,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.25.5': + resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.20.2': resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} @@ -4981,6 +5064,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.25.5': + resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.20.2': resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} @@ -5005,6 +5094,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.25.5': + resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.20.2': resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} @@ -5029,6 +5124,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.25.5': + resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.20.2': resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} @@ -5053,6 +5154,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.5': + resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.24.2': resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} engines: {node: '>=18'} @@ -5071,6 +5178,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.5': + resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.20.2': resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} @@ -5095,6 +5208,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.5': + resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.24.2': resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} @@ -5113,6 +5232,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.25.5': + resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.20.2': resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} @@ -5137,6 +5262,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.25.5': + resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.20.2': resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} @@ -5161,6 +5292,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.25.5': + resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.20.2': resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} @@ -5185,6 +5322,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.25.5': + resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.20.2': resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} @@ -5209,6 +5352,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.25.5': + resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.20.2': resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} @@ -5233,6 +5382,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.5': + resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6985,9 +7140,9 @@ packages: '@rushstack/ts-command-line@4.23.2': resolution: {integrity: sha512-JJ7XZX5K3ThBBva38aomgsPv1L7FV6XmSOcR6HtM7HDFZJkepqT65imw26h9ggGqMjsY0R9jcl30tzKcVj9aOQ==} - '@schematics/angular@20.0.0-rc.2': - resolution: {integrity: sha512-PqZ7qYZKghnDaXM10J80XNlXV5n4fu/1GneYu7GQpJVPe3MIcbk+ooNierZuo0++CkWU7eEIx13e6M70gcREUw==} - engines: {node: ^20.11.1 || ^22.11.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@schematics/angular@20.0.0': + resolution: {integrity: sha512-lK5TvxEoeaoPnxM31qeNWhHUJ3kKMnRHknYhOfOmS8xfme78nS01FdU7TODLkg2p4GNEVVtXoxhj3FmrG3srKw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@segment/loosely-validate-event@2.0.0': resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==} @@ -8505,8 +8660,8 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} - beasties@0.3.3: - resolution: {integrity: sha512-Mba3V4hTPrM7P2CSidueg71JZ0G+DyK7maBqp4/uax/PQznwdFti9cOW6Z3lTxBRH84kRICN0TyQ0MSSmufaAw==} + beasties@0.3.4: + resolution: {integrity: sha512-NmzN1zN1cvGccXFyZ73335+ASXwBlVWcUPssiUDIlFdfyatHPRRufjCd5w8oPaQPvVnf9ELklaCGb1gi9FBwIw==} engines: {node: '>=14.0.0'} better-opn@3.0.2: @@ -9768,6 +9923,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.25.5: + resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -11107,6 +11267,10 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} @@ -11213,6 +11377,14 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -11815,6 +11987,10 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} @@ -12599,9 +12775,9 @@ packages: npm-package-arg@7.0.0: resolution: {integrity: sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==} - npm-packlist@9.0.0: - resolution: {integrity: sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==} - engines: {node: ^18.17.0 || >=20.5.0} + npm-packlist@10.0.0: + resolution: {integrity: sha512-rht9U6nS8WOBDc53eipZNPo5qkAV4X2rhKE2Oj1DYUQ3DieXfj0mKkVmjnf3iuNdtMd8WfLdi2L6ASkD/8a+Kg==} + engines: {node: ^20.17.0 || >=22.9.0} npm-pick-manifest@10.0.0: resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} @@ -12783,6 +12959,10 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} + ora@8.2.0: + resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} + engines: {node: '>=18'} + ordered-binary@1.5.3: resolution: {integrity: sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==} @@ -12894,9 +13074,9 @@ packages: package-manager-detector@1.1.0: resolution: {integrity: sha512-Y8f9qUlBzW8qauJjd/eu6jlpJZsuPJm2ZAV0cDVd420o4EdpH5RPdoCv+60/TdJflGatr4sDfpAL6ArWZbM5tA==} - pacote@20.0.0: - resolution: {integrity: sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==} - engines: {node: ^18.17.0 || >=20.5.0} + pacote@21.0.0: + resolution: {integrity: sha512-lcqexq73AMv6QNLo7SOpz0JJoaGdS3rBFgF122NZVl1bApo2mfu+XzUBU/X/XsiJu+iUmKpekRayqQYAs+PhkA==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true pako@1.0.11: @@ -14422,6 +14602,10 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + stream-browserify@2.0.2: resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} @@ -16278,14 +16462,14 @@ snapshots: '@andrewbranch/untar.js@1.0.3': {} - '@angular-devkit/architect@0.2000.0-rc.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2000.0(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.0.0-rc.2(chokidar@4.0.3) + '@angular-devkit/core': 20.0.0(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.0.0-rc.2(chokidar@4.0.3)': + '@angular-devkit/core@20.0.0(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -16296,43 +16480,43 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.0.0-rc.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.0.0(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.0.0-rc.2(chokidar@4.0.3) + '@angular-devkit/core': 20.0.0(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 - ora: 5.4.1 + ora: 8.2.0 rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular/animations@20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))': + '@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: - '@angular/common': 19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/common': 19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 optional: true - '@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))': + '@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: - '@angular/common': 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.0.0-rc.2(ivyhkxncosptvdlkakntgk4pai)': + '@angular/build@20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2000.0-rc.2(chokidar@4.0.3) - '@angular/compiler': 20.0.0-rc.0 - '@angular/compiler-cli': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3) + '@angular-devkit/architect': 0.2000.0(chokidar@4.0.3) + '@angular/compiler': 20.0.0 + '@angular/compiler-cli': 20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3) '@babel/core': 7.27.1 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.10(@types/node@22.15.3) '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - beasties: 0.3.3 + beasties: 0.3.4 browserslist: 4.24.4 - esbuild: 0.25.4 + esbuild: 0.25.5 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 jsonc-parser: 3.3.1 @@ -16352,8 +16536,8 @@ snapshots: vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) less: 4.3.0 lmdb: 3.3.0 postcss: 8.5.3 @@ -16372,21 +16556,21 @@ snapshots: - tsx - yaml - '@angular/cli@20.0.0-rc.2(@types/node@22.15.3)(chokidar@4.0.3)': + '@angular/cli@20.0.0(@types/node@22.15.3)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2000.0-rc.2(chokidar@4.0.3) - '@angular-devkit/core': 20.0.0-rc.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.0.0-rc.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2000.0(chokidar@4.0.3) + '@angular-devkit/core': 20.0.0(chokidar@4.0.3) + '@angular-devkit/schematics': 20.0.0(chokidar@4.0.3) '@inquirer/prompts': 7.5.1(@types/node@22.15.3) '@listr2/prompt-adapter-inquirer': 2.0.22(@inquirer/prompts@7.5.1(@types/node@22.15.3)) - '@schematics/angular': 20.0.0-rc.2(chokidar@4.0.3) + '@schematics/angular': 20.0.0(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 jsonc-parser: 3.3.1 listr2: 8.3.3 npm-package-arg: 12.0.2 npm-pick-manifest: 10.0.0 - pacote: 20.0.0 + pacote: 21.0.0 resolve: 1.22.10 semver: 7.7.2 yargs: 17.7.2 @@ -16396,90 +16580,91 @@ snapshots: - chokidar - supports-color - '@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2)': + '@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2)': + '@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2)': dependencies: - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(typescript@5.8.3)': + '@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3)': dependencies: - '@angular/compiler': 20.0.0-rc.0 - '@babel/core': 7.26.10 + '@angular/compiler': 20.0.0 + '@babel/core': 7.27.1 '@jridgewell/sourcemap-codec': 1.5.0 chokidar: 4.0.3 convert-source-map: 1.9.0 reflect-metadata: 0.2.2 - semver: 7.7.1 + semver: 7.7.2 tslib: 2.8.1 - typescript: 5.8.3 yargs: 17.7.2 + optionalDependencies: + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@angular/compiler@20.0.0-rc.0': + '@angular/compiler@20.0.0': dependencies: tslib: 2.8.1 - '@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)': + '@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 - zone.js: 0.15.0 optionalDependencies: - '@angular/compiler': 20.0.0-rc.0 + '@angular/compiler': 20.0.0 + zone.js: 0.15.0 - '@angular/forms@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': + '@angular/forms@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser-dynamic@20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))': + '@angular/platform-browser-dynamic@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))': dependencies: - '@angular/common': 19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/compiler': 20.0.0-rc.0 - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/common': 19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/compiler': 20.0.0 + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) tslib: 2.8.1 - '@angular/platform-browser-dynamic@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-rc.0)(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))': + '@angular/platform-browser-dynamic@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))': dependencies: - '@angular/common': 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/compiler': 20.0.0-rc.0 - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/compiler': 20.0.0 + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) tslib: 2.8.1 - '@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))': + '@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: - '@angular/common': 19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/common': 19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.0.0-rc.0(@angular/common@19.2.4(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/animations': 20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))': + '@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: - '@angular/common': 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/router@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': + '@angular/router@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2)': dependencies: - '@angular/common': 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) rxjs: 7.8.2 tslib: 2.8.1 @@ -16497,7 +16682,7 @@ snapshots: dependencies: '@andrewbranch/untar.js': 1.0.3 fflate: 0.8.2 - semver: 7.7.1 + semver: 7.7.2 ts-expose-internals-conditionally: 1.0.0-empty.0 typescript: 5.3.3 validate-npm-package-name: 5.0.1 @@ -16744,7 +16929,7 @@ snapshots: '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) @@ -16754,6 +16939,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.27.1) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.27.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -16770,7 +16968,7 @@ snapshots: '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-annotate-as-pure': 7.27.1 regexpu-core: 6.2.0 semver: 6.3.1 @@ -16833,6 +17031,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -16864,7 +17071,7 @@ snapshots: '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-wrap-function': 7.25.9 '@babel/traverse': 7.27.1 transitivePeerDependencies: @@ -16888,6 +17095,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.25.9(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -17030,10 +17246,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.10)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17053,18 +17269,18 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.26.10) - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.26.10)': + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1) - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.26.10)': + '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1) transitivePeerDependencies: - supports-color @@ -17132,6 +17348,11 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -17497,6 +17718,12 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.26.10) + '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.27.1) + '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -17595,6 +17822,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -17935,7 +18170,7 @@ snapshots: '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 @@ -17943,6 +18178,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -18146,6 +18392,13 @@ snapshots: '@babel/helper-validator-option': 7.25.9 '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.26.10) + '@babel/preset-flow@7.24.7(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.27.1) + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -18176,6 +18429,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-typescript@7.24.7(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.27.1) + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.27.1) + transitivePeerDependencies: + - supports-color + '@babel/register@7.24.6(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -18185,6 +18449,15 @@ snapshots: pirates: 4.0.6 source-map-support: 0.5.21 + '@babel/register@7.24.6(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.6 + source-map-support: 0.5.21 + '@babel/runtime@7.23.4': dependencies: regenerator-runtime: 0.14.1 @@ -18624,6 +18897,9 @@ snapshots: '@esbuild/aix-ppc64@0.25.4': optional: true + '@esbuild/aix-ppc64@0.25.5': + optional: true + '@esbuild/android-arm64@0.20.2': optional: true @@ -18636,6 +18912,9 @@ snapshots: '@esbuild/android-arm64@0.25.4': optional: true + '@esbuild/android-arm64@0.25.5': + optional: true + '@esbuild/android-arm@0.20.2': optional: true @@ -18648,6 +18927,9 @@ snapshots: '@esbuild/android-arm@0.25.4': optional: true + '@esbuild/android-arm@0.25.5': + optional: true + '@esbuild/android-x64@0.20.2': optional: true @@ -18660,6 +18942,9 @@ snapshots: '@esbuild/android-x64@0.25.4': optional: true + '@esbuild/android-x64@0.25.5': + optional: true + '@esbuild/darwin-arm64@0.20.2': optional: true @@ -18672,6 +18957,9 @@ snapshots: '@esbuild/darwin-arm64@0.25.4': optional: true + '@esbuild/darwin-arm64@0.25.5': + optional: true + '@esbuild/darwin-x64@0.20.2': optional: true @@ -18684,6 +18972,9 @@ snapshots: '@esbuild/darwin-x64@0.25.4': optional: true + '@esbuild/darwin-x64@0.25.5': + optional: true + '@esbuild/freebsd-arm64@0.20.2': optional: true @@ -18696,6 +18987,9 @@ snapshots: '@esbuild/freebsd-arm64@0.25.4': optional: true + '@esbuild/freebsd-arm64@0.25.5': + optional: true + '@esbuild/freebsd-x64@0.20.2': optional: true @@ -18708,6 +19002,9 @@ snapshots: '@esbuild/freebsd-x64@0.25.4': optional: true + '@esbuild/freebsd-x64@0.25.5': + optional: true + '@esbuild/linux-arm64@0.20.2': optional: true @@ -18720,6 +19017,9 @@ snapshots: '@esbuild/linux-arm64@0.25.4': optional: true + '@esbuild/linux-arm64@0.25.5': + optional: true + '@esbuild/linux-arm@0.20.2': optional: true @@ -18732,6 +19032,9 @@ snapshots: '@esbuild/linux-arm@0.25.4': optional: true + '@esbuild/linux-arm@0.25.5': + optional: true + '@esbuild/linux-ia32@0.20.2': optional: true @@ -18744,6 +19047,9 @@ snapshots: '@esbuild/linux-ia32@0.25.4': optional: true + '@esbuild/linux-ia32@0.25.5': + optional: true + '@esbuild/linux-loong64@0.20.2': optional: true @@ -18756,6 +19062,9 @@ snapshots: '@esbuild/linux-loong64@0.25.4': optional: true + '@esbuild/linux-loong64@0.25.5': + optional: true + '@esbuild/linux-mips64el@0.20.2': optional: true @@ -18768,6 +19077,9 @@ snapshots: '@esbuild/linux-mips64el@0.25.4': optional: true + '@esbuild/linux-mips64el@0.25.5': + optional: true + '@esbuild/linux-ppc64@0.20.2': optional: true @@ -18780,6 +19092,9 @@ snapshots: '@esbuild/linux-ppc64@0.25.4': optional: true + '@esbuild/linux-ppc64@0.25.5': + optional: true + '@esbuild/linux-riscv64@0.20.2': optional: true @@ -18792,6 +19107,9 @@ snapshots: '@esbuild/linux-riscv64@0.25.4': optional: true + '@esbuild/linux-riscv64@0.25.5': + optional: true + '@esbuild/linux-s390x@0.20.2': optional: true @@ -18804,6 +19122,9 @@ snapshots: '@esbuild/linux-s390x@0.25.4': optional: true + '@esbuild/linux-s390x@0.25.5': + optional: true + '@esbuild/linux-x64@0.20.2': optional: true @@ -18816,6 +19137,9 @@ snapshots: '@esbuild/linux-x64@0.25.4': optional: true + '@esbuild/linux-x64@0.25.5': + optional: true + '@esbuild/netbsd-arm64@0.24.2': optional: true @@ -18825,6 +19149,9 @@ snapshots: '@esbuild/netbsd-arm64@0.25.4': optional: true + '@esbuild/netbsd-arm64@0.25.5': + optional: true + '@esbuild/netbsd-x64@0.20.2': optional: true @@ -18837,6 +19164,9 @@ snapshots: '@esbuild/netbsd-x64@0.25.4': optional: true + '@esbuild/netbsd-x64@0.25.5': + optional: true + '@esbuild/openbsd-arm64@0.24.2': optional: true @@ -18846,6 +19176,9 @@ snapshots: '@esbuild/openbsd-arm64@0.25.4': optional: true + '@esbuild/openbsd-arm64@0.25.5': + optional: true + '@esbuild/openbsd-x64@0.20.2': optional: true @@ -18858,6 +19191,9 @@ snapshots: '@esbuild/openbsd-x64@0.25.4': optional: true + '@esbuild/openbsd-x64@0.25.5': + optional: true + '@esbuild/sunos-x64@0.20.2': optional: true @@ -18870,6 +19206,9 @@ snapshots: '@esbuild/sunos-x64@0.25.4': optional: true + '@esbuild/sunos-x64@0.25.5': + optional: true + '@esbuild/win32-arm64@0.20.2': optional: true @@ -18882,6 +19221,9 @@ snapshots: '@esbuild/win32-arm64@0.25.4': optional: true + '@esbuild/win32-arm64@0.25.5': + optional: true + '@esbuild/win32-ia32@0.20.2': optional: true @@ -18894,6 +19236,9 @@ snapshots: '@esbuild/win32-ia32@0.25.4': optional: true + '@esbuild/win32-ia32@0.25.5': + optional: true + '@esbuild/win32-x64@0.20.2': optional: true @@ -18906,6 +19251,9 @@ snapshots: '@esbuild/win32-x64@0.25.4': optional: true + '@esbuild/win32-x64@0.25.5': + optional: true + '@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.2))': dependencies: eslint: 9.15.0(jiti@2.4.2) @@ -19122,7 +19470,7 @@ snapshots: resolve: 1.22.10 resolve-from: 5.0.0 resolve.exports: 2.0.3 - semver: 7.7.1 + semver: 7.7.2 send: 0.19.1 slugify: 1.6.6 source-map-support: 0.5.21 @@ -19159,7 +19507,7 @@ snapshots: getenv: 1.0.0 glob: 10.4.5 resolve-from: 5.0.0 - semver: 7.7.1 + semver: 7.7.2 slash: 3.0.0 slugify: 1.6.6 xcode: 3.0.1 @@ -19226,7 +19574,7 @@ snapshots: minimatch: 3.1.2 p-limit: 3.1.0 resolve-from: 5.0.0 - semver: 7.7.1 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -19239,7 +19587,7 @@ snapshots: jimp-compact: 0.16.1 parse-png: 2.1.0 resolve-from: 5.0.0 - semver: 7.7.1 + semver: 7.7.2 temp-dir: 2.0.0 unique-string: 2.0.0 @@ -19315,7 +19663,7 @@ snapshots: debug: 4.4.0 fs-extra: 9.1.0 resolve-from: 5.0.0 - semver: 7.7.1 + semver: 7.7.2 xml2js: 0.6.0 transitivePeerDependencies: - supports-color @@ -19761,7 +20109,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -19893,7 +20241,7 @@ snapshots: https-proxy-agent: 7.0.6 node-fetch: 2.7.0(encoding@0.1.13) nopt: 8.1.0 - semver: 7.7.1 + semver: 7.7.2 tar: 7.4.3 transitivePeerDependencies: - encoding @@ -20258,7 +20606,7 @@ snapshots: '@npmcli/fs@3.1.1': dependencies: - semver: 7.7.1 + semver: 7.7.2 '@npmcli/fs@4.0.0': dependencies: @@ -20581,7 +20929,7 @@ snapshots: metro-core: 0.81.0 node-fetch: 2.7.0(encoding@0.1.13) readline: 1.3.0 - semver: 7.7.1 + semver: 7.7.2 optionalDependencies: '@react-native-community/cli-server-api': 13.6.9(encoding@0.1.13) transitivePeerDependencies: @@ -20669,7 +21017,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(cgoxobftzx7q2rxvco2fw2mfyq)': + '@react-navigation/stack@6.4.1(1f29909f8de70b3aa674884b982ac755)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) @@ -20940,10 +21288,10 @@ snapshots: - '@types/node' optional: true - '@schematics/angular@20.0.0-rc.2(chokidar@4.0.3)': + '@schematics/angular@20.0.0(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.0.0-rc.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.0.0-rc.2(chokidar@4.0.3) + '@angular-devkit/core': 20.0.0(chokidar@4.0.3) + '@angular-devkit/schematics': 20.0.0(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -21386,9 +21734,9 @@ snapshots: '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)': dependencies: '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.10 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) + '@babel/core': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 @@ -21433,9 +21781,9 @@ snapshots: '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)': dependencies: '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.10 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) + '@babel/core': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 @@ -21458,13 +21806,13 @@ snapshots: - tsx - yaml - '@testing-library/angular@17.3.7(xmnuavpccaawxaioptrq4egdy4)': + '@testing-library/angular@17.3.7(44e06ac0fb247039d3919c909462d711)': dependencies: - '@angular/animations': 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/common': 20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/core': 20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/router': 20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-rc.0(@angular/animations@20.0.0-rc.0(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-rc.0(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-rc.0(@angular/compiler@20.0.0-rc.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) + '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) + '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) + '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) + '@angular/router': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) '@testing-library/dom': 10.4.0 tslib: 2.8.1 @@ -21786,7 +22134,7 @@ snapshots: fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 ts-api-utils: 1.3.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -22829,13 +23177,13 @@ snapshots: b4a@1.6.6: {} - babel-core@7.0.0-bridge.0(@babel/core@7.26.10): + babel-core@7.0.0-bridge.0(@babel/core@7.27.1): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 babel-dead-code-elimination@1.0.10: dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/parser': 7.27.1 '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 @@ -22899,6 +23247,15 @@ snapshots: html-entities: 2.3.3 validate-html-nesting: 1.2.2 + babel-plugin-jsx-dom-expressions@0.38.1(@babel/core@7.27.1): + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/types': 7.27.1 + html-entities: 2.3.3 + validate-html-nesting: 1.2.2 + babel-plugin-macros@3.1.0: dependencies: '@babel/runtime': 7.26.10 @@ -23013,6 +23370,11 @@ snapshots: '@babel/core': 7.26.10 babel-plugin-jsx-dom-expressions: 0.38.1(@babel/core@7.26.10) + babel-preset-solid@1.8.19(@babel/core@7.27.1): + dependencies: + '@babel/core': 7.27.1 + babel-plugin-jsx-dom-expressions: 0.38.1(@babel/core@7.27.1) + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -23034,7 +23396,7 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 - beasties@0.3.3: + beasties@0.3.4: dependencies: css-select: 5.1.0 css-what: 6.1.0 @@ -24481,12 +24843,12 @@ snapshots: esbuild-plugin-file-path-extensions@2.1.4: {} - esbuild-plugin-solid@0.5.0(esbuild@0.25.4)(solid-js@1.9.5): + esbuild-plugin-solid@0.5.0(esbuild@0.25.5)(solid-js@1.9.5): dependencies: - '@babel/core': 7.26.10 - '@babel/preset-typescript': 7.24.7(@babel/core@7.26.10) - babel-preset-solid: 1.8.19(@babel/core@7.26.10) - esbuild: 0.25.4 + '@babel/core': 7.27.1 + '@babel/preset-typescript': 7.24.7(@babel/core@7.27.1) + babel-preset-solid: 1.8.19(@babel/core@7.27.1) + esbuild: 0.25.5 solid-js: 1.9.5 transitivePeerDependencies: - supports-color @@ -24608,6 +24970,34 @@ snapshots: '@esbuild/win32-ia32': 0.25.4 '@esbuild/win32-x64': 0.25.4 + esbuild@0.25.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.5 + '@esbuild/android-arm': 0.25.5 + '@esbuild/android-arm64': 0.25.5 + '@esbuild/android-x64': 0.25.5 + '@esbuild/darwin-arm64': 0.25.5 + '@esbuild/darwin-x64': 0.25.5 + '@esbuild/freebsd-arm64': 0.25.5 + '@esbuild/freebsd-x64': 0.25.5 + '@esbuild/linux-arm': 0.25.5 + '@esbuild/linux-arm64': 0.25.5 + '@esbuild/linux-ia32': 0.25.5 + '@esbuild/linux-loong64': 0.25.5 + '@esbuild/linux-mips64el': 0.25.5 + '@esbuild/linux-ppc64': 0.25.5 + '@esbuild/linux-riscv64': 0.25.5 + '@esbuild/linux-s390x': 0.25.5 + '@esbuild/linux-x64': 0.25.5 + '@esbuild/netbsd-arm64': 0.25.5 + '@esbuild/netbsd-x64': 0.25.5 + '@esbuild/openbsd-arm64': 0.25.5 + '@esbuild/openbsd-x64': 0.25.5 + '@esbuild/sunos-x64': 0.25.5 + '@esbuild/win32-arm64': 0.25.5 + '@esbuild/win32-ia32': 0.25.5 + '@esbuild/win32-x64': 0.25.5 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -24623,7 +25013,7 @@ snapshots: eslint-compat-utils@0.5.1(eslint@9.15.0(jiti@2.4.2)): dependencies: eslint: 9.15.0(jiti@2.4.2) - semver: 7.7.1 + semver: 7.7.2 eslint-import-resolver-node@0.3.9: dependencies: @@ -24653,7 +25043,7 @@ snapshots: get-tsconfig: 4.8.1 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 stable-hash: 0.0.4 tslib: 2.8.1 transitivePeerDependencies: @@ -24687,7 +25077,7 @@ snapshots: globals: 15.14.0 ignore: 5.3.2 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124(eslint@9.15.0(jiti@2.4.2)): dependencies: @@ -26253,6 +26643,8 @@ snapshots: is-interactive@1.0.0: {} + is-interactive@2.0.0: {} + is-lambda@1.0.1: {} is-module@1.0.0: {} @@ -26336,6 +26728,10 @@ snapshots: is-unicode-supported@0.1.0: {} + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 @@ -26379,7 +26775,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/parser': 7.27.1 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -26574,17 +26970,17 @@ snapshots: jscodeshift@0.14.0(@babel/preset-env@7.27.2(@babel/core@7.26.10)): dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/parser': 7.27.1 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.10) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.27.1) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.27.1) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.27.1) '@babel/preset-env': 7.27.2(@babel/core@7.26.10) - '@babel/preset-flow': 7.24.7(@babel/core@7.26.10) - '@babel/preset-typescript': 7.24.7(@babel/core@7.26.10) - '@babel/register': 7.24.6(@babel/core@7.26.10) - babel-core: 7.0.0-bridge.0(@babel/core@7.26.10) + '@babel/preset-flow': 7.24.7(@babel/core@7.27.1) + '@babel/preset-typescript': 7.24.7(@babel/core@7.27.1) + '@babel/register': 7.24.6(@babel/core@7.27.1) + babel-core: 7.0.0-bridge.0(@babel/core@7.27.1) chalk: 4.1.2 flow-parser: 0.242.1 graceful-fs: 4.2.11 @@ -27058,6 +27454,11 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + log-update@6.1.0: dependencies: ansi-escapes: 7.0.0 @@ -27124,7 +27525,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 make-error@1.3.6: optional: true @@ -27375,7 +27776,7 @@ snapshots: metro-babel-transformer@0.81.0: dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 flow-enums-runtime: 0.0.6 hermes-parser: 0.24.0 nullthrows: 1.1.1 @@ -27474,7 +27875,7 @@ snapshots: metro-transform-plugins@0.81.0: dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/generator': 7.27.1 '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 @@ -27485,7 +27886,7 @@ snapshots: metro-transform-worker@0.81.0: dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/generator': 7.27.1 '@babel/parser': 7.27.1 '@babel/types': 7.27.1 @@ -27506,7 +27907,7 @@ snapshots: metro@0.81.0: dependencies: '@babel/code-frame': 7.27.1 - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/generator': 7.27.1 '@babel/parser': 7.27.1 '@babel/template': 7.27.1 @@ -28177,7 +28578,7 @@ snapshots: rollup: 4.40.1 rollup-plugin-visualizer: 5.14.0(rollup@4.40.1) scule: 1.3.0 - semver: 7.7.1 + semver: 7.7.2 serve-placeholder: 2.0.2 serve-static: 1.16.2 source-map: 0.7.4 @@ -28361,7 +28762,7 @@ snapshots: dependencies: hosted-git-info: 7.0.2 proc-log: 4.2.0 - semver: 7.7.1 + semver: 7.7.2 validate-npm-package-name: 5.0.1 npm-package-arg@12.0.2: @@ -28378,7 +28779,7 @@ snapshots: semver: 5.7.2 validate-npm-package-name: 3.0.0 - npm-packlist@9.0.0: + npm-packlist@10.0.0: dependencies: ignore-walk: 7.0.0 @@ -28655,6 +29056,19 @@ snapshots: log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 + optional: true + + ora@8.2.0: + dependencies: + chalk: 5.3.0 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 ordered-binary@1.5.3: optional: true @@ -28750,7 +29164,7 @@ snapshots: package-manager-detector@1.1.0: {} - pacote@20.0.0: + pacote@21.0.0: dependencies: '@npmcli/git': 6.0.1 '@npmcli/installed-package-contents': 3.0.0 @@ -28761,7 +29175,7 @@ snapshots: fs-minipass: 3.0.3 minipass: 7.1.2 npm-package-arg: 12.0.2 - npm-packlist: 9.0.0 + npm-packlist: 10.0.0 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 proc-log: 5.0.0 @@ -30160,7 +30574,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.7.1 + semver: 7.7.2 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -30187,7 +30601,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.7.1 + semver: 7.7.2 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.1 '@img/sharp-darwin-x64': 0.34.1 @@ -30538,6 +30952,8 @@ snapshots: std-env@3.9.0: {} + stdin-discarder@0.2.2: {} + stream-browserify@2.0.2: dependencies: inherits: 2.0.4 @@ -31095,9 +31511,9 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.25.4)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)): + tsup-preset-solid@2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)): dependencies: - esbuild-plugin-solid: 0.5.0(esbuild@0.25.4)(solid-js@1.9.5) + esbuild-plugin-solid: 0.5.0(esbuild@0.25.5)(solid-js@1.9.5) tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) transitivePeerDependencies: - esbuild @@ -31220,7 +31636,7 @@ snapshots: typescript-auto-import-cache@0.3.3: dependencies: - semver: 7.7.1 + semver: 7.7.2 typescript-eslint@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): dependencies: @@ -31901,7 +32317,7 @@ snapshots: volar-service-typescript@0.0.62(@volar/language-service@2.4.12): dependencies: path-browserify: 1.0.1 - semver: 7.7.1 + semver: 7.7.2 typescript-auto-import-cache: 0.3.3 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 @@ -31987,7 +32403,7 @@ snapshots: espree: 9.6.1 esquery: 1.6.0 lodash: 4.17.21 - semver: 7.7.1 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -31995,7 +32411,7 @@ snapshots: dependencies: '@volar/typescript': 2.4.12 '@vue/language-core': 2.0.29(typescript@5.8.3) - semver: 7.7.1 + semver: 7.7.2 typescript: 5.8.3 vue-tsc@2.2.8(typescript@5.8.3): From 34eedd601c7b19ac6a9fb8ab9c1ec0b600c2b95f Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 29 May 2025 11:09:26 +0200 Subject: [PATCH 112/432] chore: update to eslint-plugin-react-hooks v6 (#9071) * chore: update to eslint-plugin-react-hooks v6 and remove the separate compiler linter plugin, as those rules are now integrated * chore: disable compiler-linter in tests * chore: bypass lint violations * chore: Disable '@eslint-react/no-context-provider' to be react 18 compatible --- .github/renovate.json | 1 - examples/react/algolia/eslint.config.js | 6 +- .../basic-graphql-request/eslint.config.js | 6 +- examples/react/basic/eslint.config.js | 6 +- examples/react/shadow-dom/eslint.config.js | 6 +- package.json | 2 +- .../react-query-devtools/eslint.config.js | 10 +- .../eslint.config.js | 10 +- .../src/HydrationStreamProvider.tsx | 1 + .../eslint.config.js | 10 +- .../PersistQueryClientProvider.test.tsx | 1 + packages/react-query/eslint.config.js | 15 +- packages/react-query/package.json | 1 - .../react-query/src/HydrationBoundary.tsx | 3 +- packages/react-query/src/useMutationState.ts | 2 - pnpm-lock.yaml | 202 ++++++++---------- 16 files changed, 127 insertions(+), 155 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 13f4da55d7..6bcdc1b427 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -20,7 +20,6 @@ "@types/node", "@types/react", "@types/react-dom", - "eslint-plugin-react-compiler", "node", "react", "react-dom", diff --git a/examples/react/algolia/eslint.config.js b/examples/react/algolia/eslint.config.js index dee0fcc96c..2fe45cb071 100644 --- a/examples/react/algolia/eslint.config.js +++ b/examples/react/algolia/eslint.config.js @@ -1,16 +1,14 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, + reactHooks.configs.recommended, { - plugins: { - 'react-hooks': pluginReactHooks, - }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', diff --git a/examples/react/basic-graphql-request/eslint.config.js b/examples/react/basic-graphql-request/eslint.config.js index dee0fcc96c..2fe45cb071 100644 --- a/examples/react/basic-graphql-request/eslint.config.js +++ b/examples/react/basic-graphql-request/eslint.config.js @@ -1,16 +1,14 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, + reactHooks.configs.recommended, { - plugins: { - 'react-hooks': pluginReactHooks, - }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', diff --git a/examples/react/basic/eslint.config.js b/examples/react/basic/eslint.config.js index dee0fcc96c..2fe45cb071 100644 --- a/examples/react/basic/eslint.config.js +++ b/examples/react/basic/eslint.config.js @@ -1,16 +1,14 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, + reactHooks.configs.recommended, { - plugins: { - 'react-hooks': pluginReactHooks, - }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', diff --git a/examples/react/shadow-dom/eslint.config.js b/examples/react/shadow-dom/eslint.config.js index dee0fcc96c..2fe45cb071 100644 --- a/examples/react/shadow-dom/eslint.config.js +++ b/examples/react/shadow-dom/eslint.config.js @@ -1,16 +1,14 @@ import { tanstackConfig } from '@tanstack/config/eslint' import pluginQuery from '@tanstack/eslint-plugin-query' import pluginReact from '@eslint-react/eslint-plugin' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' export default [ ...tanstackConfig, ...pluginQuery.configs['flat/recommended'], pluginReact.configs.recommended, + reactHooks.configs.recommended, { - plugins: { - 'react-hooks': pluginReactHooks, - }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', diff --git a/package.json b/package.json index 5b526c4c71..c8896ea94c 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "cpy-cli": "^5.0.0", "esbuild-plugin-file-path-extensions": "^2.1.4", "eslint": "^9.15.0", - "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-hooks": "^6.0.0-rc.1", "fast-glob": "^3.3.3", "jsdom": "^25.0.1", "knip": "^5.50.2", diff --git a/packages/react-query-devtools/eslint.config.js b/packages/react-query-devtools/eslint.config.js index ec7943f019..03abe66600 100644 --- a/packages/react-query-devtools/eslint.config.js +++ b/packages/react-query-devtools/eslint.config.js @@ -1,22 +1,24 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, + reactHooks.configs.recommended, { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, + rules: { + '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible + }, }, { - plugins: { - 'react-hooks': pluginReactHooks, - }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/react-compiler': 'error', }, }, ] diff --git a/packages/react-query-next-experimental/eslint.config.js b/packages/react-query-next-experimental/eslint.config.js index 3554c211ee..9d16dcb779 100644 --- a/packages/react-query-next-experimental/eslint.config.js +++ b/packages/react-query-next-experimental/eslint.config.js @@ -1,23 +1,25 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, + reactHooks.configs.recommended, { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, + rules: { + '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible + }, }, { - plugins: { - 'react-hooks': pluginReactHooks, - }, rules: { '@eslint-react/no-unstable-context-value': 'off', 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/react-compiler': 'error', }, }, ] diff --git a/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx b/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx index 8e4f8b724e..6ce047810d 100644 --- a/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx +++ b/packages/react-query-next-experimental/src/HydrationStreamProvider.tsx @@ -130,6 +130,7 @@ export function createHydrationStreamProvider() { .join(',') // Flush stream + // eslint-disable-next-line react-hooks/react-compiler stream.length = 0 const html: Array = [ diff --git a/packages/react-query-persist-client/eslint.config.js b/packages/react-query-persist-client/eslint.config.js index ec7943f019..03abe66600 100644 --- a/packages/react-query-persist-client/eslint.config.js +++ b/packages/react-query-persist-client/eslint.config.js @@ -1,22 +1,24 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, + reactHooks.configs.recommended, { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, + rules: { + '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible + }, }, { - plugins: { - 'react-hooks': pluginReactHooks, - }, rules: { 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/react-compiler': 'error', }, }, ] diff --git a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx index 74bccab533..5612040b7e 100644 --- a/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx +++ b/packages/react-query-persist-client/src/__tests__/PersistQueryClientProvider.test.tsx @@ -371,6 +371,7 @@ describe('PersistQueryClientProvider', () => { const state = useQuery({ queryKey: key, queryFn: async () => { + // eslint-disable-next-line react-hooks/react-compiler fetched = true await sleep(10) return 'fetched' diff --git a/packages/react-query/eslint.config.js b/packages/react-query/eslint.config.js index 7ca2619cfa..8f2cb3fb8f 100644 --- a/packages/react-query/eslint.config.js +++ b/packages/react-query/eslint.config.js @@ -1,28 +1,23 @@ // @ts-check import pluginReact from '@eslint-react/eslint-plugin' -// @ts-expect-error -import pluginReactCompiler from 'eslint-plugin-react-compiler' -import pluginReactHooks from 'eslint-plugin-react-hooks' +import * as reactHooks from 'eslint-plugin-react-hooks' import rootConfig from './root.eslint.config.js' export default [ ...rootConfig, + reactHooks.configs.recommended, { files: ['**/*.{ts,tsx}'], ...pluginReact.configs.recommended, rules: { - '@eslint-react/no-context-provider': 'off', + '@eslint-react/no-context-provider': 'off', // We need to be React 18 compatible }, }, { - plugins: { - 'react-hooks': pluginReactHooks, - 'react-compiler': pluginReactCompiler, - }, rules: { '@eslint-react/dom/no-missing-button-type': 'off', - 'react-compiler/react-compiler': 'error', + 'react-hooks/react-compiler': 'error', 'react-hooks/exhaustive-deps': 'error', 'react-hooks/rules-of-hooks': 'error', }, @@ -31,7 +26,7 @@ export default [ files: ['**/__tests__/**'], rules: { '@typescript-eslint/no-unnecessary-condition': 'off', - 'react-compiler/react-compiler': 'off', + 'react-hooks/react-compiler': 'off', }, }, ] diff --git a/packages/react-query/package.json b/packages/react-query/package.json index d3298e21f1..8e8f1a6ba1 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -75,7 +75,6 @@ "@types/react": "^19.0.1", "@types/react-dom": "^19.0.2", "@vitejs/plugin-react": "^4.3.4", - "eslint-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124", "npm-run-all2": "^5.0.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/react-query/src/HydrationBoundary.tsx b/packages/react-query/src/HydrationBoundary.tsx index a89e4ceab3..f60ffaf292 100644 --- a/packages/react-query/src/HydrationBoundary.tsx +++ b/packages/react-query/src/HydrationBoundary.tsx @@ -1,5 +1,3 @@ -/* eslint-disable react-compiler/react-compiler */ - 'use client' import * as React from 'react' @@ -101,6 +99,7 @@ export const HydrationBoundary = ({ hydrate(client, { queries: newQueries }, optionsRef.current) } if (existingQueries.length > 0) { + // eslint-disable-next-line react-hooks/react-compiler setHydrationQueue((prev) => prev ? [...prev, ...existingQueries] : existingQueries, ) diff --git a/packages/react-query/src/useMutationState.ts b/packages/react-query/src/useMutationState.ts index d962bf085d..689e17c273 100644 --- a/packages/react-query/src/useMutationState.ts +++ b/packages/react-query/src/useMutationState.ts @@ -1,5 +1,3 @@ -/* eslint-disable react-compiler/react-compiler */ - 'use client' import * as React from 'react' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff894737eb..ff70b200c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,8 +75,8 @@ importers: specifier: ^9.15.0 version: 9.15.0(jiti@2.4.2) eslint-plugin-react-hooks: - specifier: ^5.2.0 - version: 5.2.0(eslint@9.15.0(jiti@2.4.2)) + specifier: ^6.0.0-rc.1 + version: 6.0.0-rc.1(eslint@9.15.0(jiti@2.4.2)) fast-glob: specifier: ^3.3.3 version: 3.3.3 @@ -694,7 +694,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -911,7 +911,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -939,7 +939,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -970,7 +970,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -998,7 +998,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -1029,7 +1029,7 @@ importers: version: link:../../../packages/react-query-next-experimental next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1094,7 +1094,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1122,7 +1122,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1150,7 +1150,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1203,7 +1203,7 @@ importers: version: link:../../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -1231,7 +1231,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(1f29909f8de70b3aa674884b982ac755) + version: 6.4.1(cgoxobftzx7q2rxvco2fw2mfyq) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -1523,7 +1523,7 @@ importers: version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -2074,7 +2074,7 @@ importers: version: link:../../packages/react-query-devtools next: specifier: ^14.2.28 - version: 14.2.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) + version: 14.2.28(@babel/core@7.27.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0) react: specifier: ^18.2.0 version: 18.3.1 @@ -2102,7 +2102,7 @@ importers: version: link:../../packages/react-query-devtools next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: specifier: ^19.0.0 version: 19.0.0 @@ -2367,7 +2367,7 @@ importers: version: link:../query-test-utils '@testing-library/angular': specifier: ^17.3.7 - version: 17.3.7(44e06ac0fb247039d3919c909462d711) + version: 17.3.7(5fchvpeatqbl65tde2d3342iqq) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -2557,9 +2557,6 @@ importers: '@vitejs/plugin-react': specifier: ^4.3.4 version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - eslint-plugin-react-compiler: - specifier: 19.0.0-beta-df7b47d-20241124 - version: 19.0.0-beta-df7b47d-20241124(eslint@9.15.0(jiti@2.4.2)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2611,7 +2608,7 @@ importers: version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) next: specifier: ^15.3.1 - version: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -3218,10 +3215,6 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.27.1': resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} @@ -3250,10 +3243,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -9984,12 +9973,6 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124: - resolution: {integrity: sha512-82PfnllC8jP/68KdLAbpWuYTcfmtGLzkqy2IW85WopKMTr+4rdQpp+lfliQ/QE79wWrv/dRoADrk3Pdhq25nTw==} - engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} - peerDependencies: - eslint: '>=7' - eslint-plugin-react-debug@1.21.0: resolution: {integrity: sha512-ftBeA++SfKkGosxOt6Pl9BGLhi09ry9pqVrciYXt+jhAzW2xYLC8sFkIiHQgYULpPhXCQZioJiSkRWWPy/VPJg==} engines: {bun: '>=1.0.15', node: '>=18.18.0'} @@ -10020,9 +10003,9 @@ packages: typescript: optional: true - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} + eslint-plugin-react-hooks@6.0.0-rc.1: + resolution: {integrity: sha512-7C4c7bdtd/B7Q+HruZxYhGjwZVvJawvQpilEYlRG1Jncuk1ZNqrFy9bO8SJNieyj3iDh8WPQA7BzzPO7sNAyEA==} + engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -16808,10 +16791,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@vercel/edge': 1.2.1 '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.2) '@vercel/routing-utils': 5.0.4 @@ -16930,35 +16913,35 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.10) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.10) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/traverse': 7.27.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.27.1)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.27.1) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.10) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/traverse': 7.27.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.26.10)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.10) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/traverse': 7.27.1 semver: 6.3.1 @@ -16990,13 +16973,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-member-expression-to-functions@7.27.1': dependencies: '@babel/traverse': 7.27.1 @@ -17058,10 +17034,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.25.9': - dependencies: - '@babel/types': 7.27.1 - '@babel/helper-optimise-call-expression@7.27.1': dependencies: '@babel/types': 7.27.1 @@ -17089,24 +17061,24 @@ snapshots: '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.9(@babel/core@7.27.1)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.26.10)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 '@babel/traverse': 7.27.1 @@ -17249,7 +17221,7 @@ snapshots: '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.27.1) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17257,7 +17229,7 @@ snapshots: '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.26.10) transitivePeerDependencies: @@ -17279,7 +17251,7 @@ snapshots: dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1) transitivePeerDependencies: - supports-color @@ -17589,7 +17561,7 @@ snapshots: '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17986,7 +17958,7 @@ snapshots: '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -17999,11 +17971,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -18171,9 +18151,9 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.10) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.26.10) transitivePeerDependencies: - supports-color @@ -18182,9 +18162,9 @@ snapshots: dependencies: '@babel/core': 7.27.1 '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.27.1) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) transitivePeerDependencies: - supports-color @@ -19605,7 +19585,7 @@ snapshots: '@expo/metro-config@0.19.4': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.27.1 '@babel/generator': 7.27.1 '@babel/parser': 7.27.1 '@babel/types': 7.27.1 @@ -20881,7 +20861,7 @@ snapshots: '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.26.10) '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.10) @@ -21017,7 +20997,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(1f29909f8de70b3aa674884b982ac755)': + '@react-navigation/stack@6.4.1(cgoxobftzx7q2rxvco2fw2mfyq)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) @@ -21806,7 +21786,7 @@ snapshots: - tsx - yaml - '@testing-library/angular@17.3.7(44e06ac0fb247039d3919c909462d711)': + '@testing-library/angular@17.3.7(5fchvpeatqbl65tde2d3342iqq)': dependencies: '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) @@ -22170,10 +22150,10 @@ snapshots: '@urql/core': 5.0.8(graphql@16.9.0) wonka: 6.3.4 - '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': optionalDependencies: '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - next: 15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) + next: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: 19.0.0 svelte: 5.26.1 vue: 3.4.35(typescript@5.8.3) @@ -25079,18 +25059,6 @@ snapshots: minimatch: 9.0.5 semver: 7.7.2 - eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124(eslint@9.15.0(jiti@2.4.2)): - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.27.1 - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10) - eslint: 9.15.0(jiti@2.4.2) - hermes-parser: 0.25.1 - zod: 3.24.2 - zod-validation-error: 3.3.0(zod@3.24.2) - transitivePeerDependencies: - - supports-color - eslint-plugin-react-debug@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): dependencies: '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) @@ -25152,9 +25120,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@5.2.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-react-hooks@6.0.0-rc.1(eslint@9.15.0(jiti@2.4.2)): dependencies: + '@babel/core': 7.27.1 + '@babel/parser': 7.27.1 + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1) eslint: 9.15.0(jiti@2.4.2) + hermes-parser: 0.25.1 + zod: 3.24.2 + zod-validation-error: 3.3.0(zod@3.24.2) + transitivePeerDependencies: + - supports-color eslint-plugin-react-naming-convention@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): dependencies: @@ -28440,7 +28416,7 @@ snapshots: nested-error-stacks@2.1.1: {} - next@14.2.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): + next@14.2.28(@babel/core@7.27.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): dependencies: '@next/env': 14.2.28 '@swc/helpers': 0.5.5 @@ -28450,7 +28426,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(react@18.3.1) + styled-jsx: 5.1.1(@babel/core@7.27.1)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.28 '@next/swc-darwin-x64': 14.2.28 @@ -28466,7 +28442,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): + next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.88.0): dependencies: '@next/env': 15.3.1 '@swc/counter': 0.1.3 @@ -28476,7 +28452,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.6(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.27.1)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 15.3.1 '@next/swc-darwin-x64': 15.3.1 @@ -28493,7 +28469,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.3.1(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0): + next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0): dependencies: '@next/env': 15.3.1 '@swc/counter': 0.1.3 @@ -28503,7 +28479,7 @@ snapshots: postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(react@19.0.0) + styled-jsx: 5.1.6(@babel/core@7.27.1)(react@19.0.0) optionalDependencies: '@next/swc-darwin-arm64': 15.3.1 '@next/swc-darwin-x64': 15.3.1 @@ -31084,20 +31060,26 @@ snapshots: structured-headers@0.4.1: {} - styled-jsx@5.1.1(react@18.3.1): + styled-jsx@5.1.1(@babel/core@7.27.1)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 + optionalDependencies: + '@babel/core': 7.27.1 - styled-jsx@5.1.6(react@18.3.1): + styled-jsx@5.1.6(@babel/core@7.27.1)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 + optionalDependencies: + '@babel/core': 7.27.1 - styled-jsx@5.1.6(react@19.0.0): + styled-jsx@5.1.6(@babel/core@7.27.1)(react@19.0.0): dependencies: client-only: 0.0.1 react: 19.0.0 + optionalDependencies: + '@babel/core': 7.27.1 styleq@0.1.3: {} From b475d2156860243b5c57bf1190919dba67305586 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 29 May 2025 11:40:52 +0200 Subject: [PATCH 113/432] feat(core): staleTime: 'static' (#9139) * feat(core): StaleTime.Static * fix: consider StaleTime.Static for invalidation previously, it didn't matter if we included `stale: true` or not in the filters for refetch, because marking things with query.invalidate() would set them all to stale anyway. Now, queries with StaleTime.Static will be marked as `invalidated`, but still shouldn't be refetched. The `isStale` filter logic accounts for that, so we have to include it in the filters * fix: isStale order check check for observers first because they contain the source of truth calculated with `isStaleByTime`, and it also takes enabled into account * fix: isStaleByTime logic we have to check for undefined data first, because queries without data are really always stale; then, the next check must be against StaleTime.Static, because queries that are marked as invalidated are still not stale, even if they are static. * tests * fix: type issue in react * fix: make sure invalidation _always_ only refetches stale queries this ensures we never refetch Static queries * fix: never refetch static queries * fix: make sure we don't refetchOn... for StaleTime.Static even when 'always' is set * docs: StaleTime.Static * ref: switch to 'static' string * docs --- .../react/guides/important-defaults.md | 11 ++- docs/framework/react/reference/useQuery.md | 11 +-- docs/reference/QueryClient.md | 6 ++ .../src/__tests__/queryClient.test.tsx | 67 +++++++++++++++++++ .../src/__tests__/queryObserver.test.tsx | 43 ++++++++++++ packages/query-core/src/query.ts | 40 ++++++++--- packages/query-core/src/queryClient.ts | 2 +- packages/query-core/src/queryObserver.ts | 5 +- packages/query-core/src/types.ts | 12 ++-- packages/query-core/src/utils.ts | 7 +- packages/react-query/src/suspense.ts | 11 +-- 11 files changed, 186 insertions(+), 29 deletions(-) diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md index 57aeb524c5..8fddf5365d 100644 --- a/docs/framework/react/guides/important-defaults.md +++ b/docs/framework/react/guides/important-defaults.md @@ -9,13 +9,20 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul > To change this behavior, you can configure your queries both globally and per-query using the `staleTime` option. Specifying a longer `staleTime` means queries will not refetch their data as often +- A Query that has a `staleTime` set is considered **fresh** until that `staleTime` has elapsed. + + - set `staleTime` to e.g. `2 * 60 * 1000` to make sure data is read from the cache, without triggering any kinds of refetches, for 2 minutes, or until the Query is [invalidated manually](./query-invalidation.md). + - set `staleTime` to `Infinity` to never trigger a refetch until the Query is [invalidated manually](./query-invalidation.md). + - set `staleTime` to `'static'` to **never** trigger a refetch, even if the Query is [invalidated manually](./query-invalidation.md). + - Stale queries are refetched automatically in the background when: - New instances of the query mount - The window is refocused - The network is reconnected - - The query is optionally configured with a refetch interval -> To change this functionality, you can use options like `refetchOnMount`, `refetchOnWindowFocus`, `refetchOnReconnect` and `refetchInterval`. +> Setting `staleTime` is the recommended way to avoid excessive refetches, but you can also customize the points in time for refetches by setting options like `refetchOnMount`, `refetchOnWindowFocus` and `refetchOnReconnect`. + +- Queries can optionally be configured with a `refetchInterval` to trigger refetches periodically, which is independent of the `staleTime` setting. - Query results that have no more active instances of `useQuery`, `useInfiniteQuery` or query observers are labeled as "inactive" and remain in the cache in case they are used again at a later time. - By default, "inactive" queries are garbage collected after **5 minutes**. diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md index 0b4066dbf4..5bda1e9e53 100644 --- a/docs/framework/react/reference/useQuery.md +++ b/docs/framework/react/reference/useQuery.md @@ -90,12 +90,13 @@ const { - This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the next attempt in milliseconds. - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff. - A function like `attempt => attempt * 1000` applies linear backoff. -- `staleTime: number | ((query: Query) => number)` +- `staleTime: number | 'static' ((query: Query) => number | 'static')` - Optional - Defaults to `0` - The time in milliseconds after which data is considered stale. This value only applies to the hook it is defined on. - - If set to `Infinity`, the data will never be considered stale + - If set to `Infinity`, the data will not be considered stale unless manually invalidated - If set to a function, the function will be executed with the query to compute a `staleTime`. + - If set to `'static'`, the data will never be considered stale - `gcTime: number | Infinity` - Defaults to `5 * 60 * 1000` (5 minutes) or `Infinity` during SSR - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration. When different garbage collection times are specified, the longest one will be used. @@ -116,21 +117,21 @@ const { - Defaults to `true` - If set to `true`, the query will refetch on mount if the data is stale. - If set to `false`, the query will not refetch on mount. - - If set to `"always"`, the query will always refetch on mount. + - If set to `"always"`, the query will always refetch on mount (except when `staleTime: 'static'` is used). - If set to a function, the function will be executed with the query to compute the value - `refetchOnWindowFocus: boolean | "always" | ((query: Query) => boolean | "always")` - Optional - Defaults to `true` - If set to `true`, the query will refetch on window focus if the data is stale. - If set to `false`, the query will not refetch on window focus. - - If set to `"always"`, the query will always refetch on window focus. + - If set to `"always"`, the query will always refetch on window focus (except when `staleTime: 'static'` is used). - If set to a function, the function will be executed with the query to compute the value - `refetchOnReconnect: boolean | "always" | ((query: Query) => boolean | "always")` - Optional - Defaults to `true` - If set to `true`, the query will refetch on reconnect if the data is stale. - If set to `false`, the query will not refetch on reconnect. - - If set to `"always"`, the query will always refetch on reconnect. + - If set to `"always"`, the query will always refetch on reconnect (except when `staleTime: 'static'` is used). - If set to a function, the function will be executed with the query to compute the value - `notifyOnChangeProps: string[] | "all" | (() => string[] | "all" | undefined)` - Optional diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md index 78fab85092..86634c2e5d 100644 --- a/docs/reference/QueryClient.md +++ b/docs/reference/QueryClient.md @@ -321,6 +321,7 @@ The `invalidateQueries` method can be used to invalidate and refetch single or m - If you **do not want active queries to refetch**, and simply be marked as invalid, you can use the `refetchType: 'none'` option. - If you **want inactive queries to refetch** as well, use the `refetchType: 'all'` option +- For refetching, [queryClient.refetchQueries](#queryclientrefetchqueries) is called. ```tsx await queryClient.invalidateQueries( @@ -390,6 +391,11 @@ await queryClient.refetchQueries({ This function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true` +**Notes** + +- Queries that are "disabled" because they only have disabled Observers will never be refetched. +- Queries that are "static" because they only have Observers with a Static StaleTime will never be refetched. + ## `queryClient.cancelQueries` The `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query. diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index 4f18534808..b6a5bfa81e 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -661,6 +661,35 @@ describe('queryClient', () => { expect(second).toBe(first) }) + test('should read from cache with static staleTime even if invalidated', async () => { + const key = queryKey() + + const fetchFn = vi.fn(() => Promise.resolve({ data: 'data' })) + const first = await queryClient.fetchQuery({ + queryKey: key, + queryFn: fetchFn, + staleTime: 'static', + }) + + expect(first.data).toBe('data') + expect(fetchFn).toHaveBeenCalledTimes(1) + + await queryClient.invalidateQueries({ + queryKey: key, + refetchType: 'none', + }) + + const second = await queryClient.fetchQuery({ + queryKey: key, + queryFn: fetchFn, + staleTime: 'static', + }) + + expect(fetchFn).toHaveBeenCalledTimes(1) + + expect(second).toBe(first) + }) + test('should be able to fetch when garbage collection time is set to 0 and then be removed', async () => { const key1 = queryKey() const promise = queryClient.fetchQuery({ @@ -1323,6 +1352,25 @@ describe('queryClient', () => { expect(queryFn1).toHaveBeenCalledTimes(2) onlineMock.mockRestore() }) + + test('should not refetch static queries', async () => { + const key = queryKey() + const queryFn = vi.fn(() => 'data1') + await queryClient.fetchQuery({ queryKey: key, queryFn: queryFn }) + + expect(queryFn).toHaveBeenCalledTimes(1) + + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + staleTime: 'static', + }) + const unsubscribe = observer.subscribe(() => undefined) + await queryClient.refetchQueries() + + expect(queryFn).toHaveBeenCalledTimes(1) + unsubscribe() + }) }) describe('invalidateQueries', () => { @@ -1537,6 +1585,25 @@ describe('queryClient', () => { expect(abortFn).toHaveBeenCalledTimes(0) expect(fetchCount).toBe(1) }) + + test('should not refetch static queries after invalidation', async () => { + const key = queryKey() + const queryFn = vi.fn(() => 'data1') + await queryClient.fetchQuery({ queryKey: key, queryFn: queryFn }) + + expect(queryFn).toHaveBeenCalledTimes(1) + + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + staleTime: 'static', + }) + const unsubscribe = observer.subscribe(() => undefined) + await queryClient.invalidateQueries() + + expect(queryFn).toHaveBeenCalledTimes(1) + unsubscribe() + }) }) describe('resetQueries', () => { diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index f9f21aea19..a594523b3d 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -1178,6 +1178,33 @@ describe('queryObserver', () => { unsubscribe() }) + test('should not see queries as stale is staleTime is Static', async () => { + const key = queryKey() + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: async () => { + await sleep(5) + return { + data: 'data', + } + }, + staleTime: 'static', + }) + const result = observer.getCurrentResult() + expect(result.isStale).toBe(true) // no data = stale + + const results: Array> = [] + const unsubscribe = observer.subscribe((x) => { + if (x.data) { + results.push(x) + } + }) + + await vi.waitFor(() => expect(results[0]?.isStale).toBe(false)) + + unsubscribe() + }) + test('should return a promise that resolves when data is present', async () => { const results: Array = [] const key = queryKey() @@ -1346,6 +1373,22 @@ describe('queryObserver', () => { unsubscribe() }) + test('should not refetchOnMount when set to "always" when staleTime is Static', async () => { + const key = queryKey() + const queryFn = vi.fn(() => 'data') + queryClient.setQueryData(key, 'initial') + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + staleTime: 'static', + refetchOnMount: 'always', + }) + const unsubscribe = observer.subscribe(() => undefined) + await vi.advanceTimersByTimeAsync(1) + expect(queryFn).toHaveBeenCalledTimes(0) + unsubscribe() + }) + test('should set fetchStatus to idle when _optimisticResults is isRestoring', () => { const key = queryKey() const observer = new QueryObserver(queryClient, { diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index e6ad4ca4ee..7ee01522ec 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -3,6 +3,7 @@ import { noop, replaceData, resolveEnabled, + resolveStaleTime, skipToken, timeUntilStale, } from './utils' @@ -24,6 +25,7 @@ import type { QueryOptions, QueryStatus, SetDataOptions, + StaleTime, } from './types' import type { QueryObserver } from './queryObserver' import type { Retryer } from './retryer' @@ -270,26 +272,44 @@ export class Query< ) } - isStale(): boolean { - if (this.state.isInvalidated) { - return true + isStatic(): boolean { + if (this.getObserversCount() > 0) { + return this.observers.some( + (observer) => + resolveStaleTime(observer.options.staleTime, this) === 'static', + ) } + return false + } + + isStale(): boolean { + // check observers first, their `isStale` has the source of truth + // calculated with `isStaleByTime` and it takes `enabled` into account if (this.getObserversCount() > 0) { return this.observers.some( (observer) => observer.getCurrentResult().isStale, ) } - return this.state.data === undefined + return this.state.data === undefined || this.state.isInvalidated } - isStaleByTime(staleTime = 0): boolean { - return ( - this.state.isInvalidated || - this.state.data === undefined || - !timeUntilStale(this.state.dataUpdatedAt, staleTime) - ) + isStaleByTime(staleTime: StaleTime = 0): boolean { + // no data is always stale + if (this.state.data === undefined) { + return true + } + // static is never stale + if (staleTime === 'static') { + return false + } + // if the query is invalidated, it is stale + if (this.state.isInvalidated) { + return true + } + + return !timeUntilStale(this.state.dataUpdatedAt, staleTime) } onFocus(): void { diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts index 3406bbf7d2..650d3e5ad6 100644 --- a/packages/query-core/src/queryClient.ts +++ b/packages/query-core/src/queryClient.ts @@ -324,7 +324,7 @@ export class QueryClient { const promises = notifyManager.batch(() => this.#queryCache .findAll(filters) - .filter((query) => !query.isDisabled()) + .filter((query) => !query.isDisabled() && !query.isStatic()) .map((query) => { let promise = query.fetch(undefined, fetchOptions) if (!fetchOptions.throwOnError) { diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index 174dc72bf5..f2b961eb27 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -764,7 +764,10 @@ function shouldFetchOn( (typeof options)['refetchOnWindowFocus'] & (typeof options)['refetchOnReconnect'], ) { - if (resolveEnabled(options.enabled, query) !== false) { + if ( + resolveEnabled(options.enabled, query) !== false && + resolveStaleTime(options.staleTime, query) !== 'static' + ) { const value = typeof field === 'function' ? field(query) : field return value === 'always' || (value !== false && isStale(query, options)) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 735b8ea263..3bf6e6c55f 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -99,12 +99,16 @@ export type QueryFunction< TPageParam = never, > = (context: QueryFunctionContext) => T | Promise -export type StaleTime< +export type StaleTime = number | 'static' + +export type StaleTimeFunction< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, -> = number | ((query: Query) => number) +> = + | StaleTime + | ((query: Query) => StaleTime) export type Enabled< TQueryFnData = unknown, @@ -329,7 +333,7 @@ export interface QueryObserverOptions< * If set to a function, the function will be executed with the query to compute a `staleTime`. * Defaults to `0`. */ - staleTime?: StaleTime + staleTime?: StaleTimeFunction /** * If set to a number, the query will continuously refetch at this frequency in milliseconds. * If set to a function, the function will be executed with the latest data and query to compute a frequency @@ -502,7 +506,7 @@ export interface FetchQueryOptions< * The time in milliseconds after data is considered stale. * If the data is fresh it will be returned from the cache. */ - staleTime?: StaleTime + staleTime?: StaleTimeFunction } export interface EnsureQueryDataOptions< diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index 8c2b50a089..b3e383d7cd 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -8,6 +8,7 @@ import type { QueryKey, QueryOptions, StaleTime, + StaleTimeFunction, } from './types' import type { Mutation } from './mutation' import type { FetchOptions, Query } from './query' @@ -102,9 +103,11 @@ export function resolveStaleTime< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - staleTime: undefined | StaleTime, + staleTime: + | undefined + | StaleTimeFunction, query: Query, -): number | undefined { +): StaleTime | undefined { return typeof staleTime === 'function' ? staleTime(query) : staleTime } diff --git a/packages/react-query/src/suspense.ts b/packages/react-query/src/suspense.ts index 6981e07422..b5bb6677e2 100644 --- a/packages/react-query/src/suspense.ts +++ b/packages/react-query/src/suspense.ts @@ -21,15 +21,18 @@ export const defaultThrowOnError = < export const ensureSuspenseTimers = ( defaultedOptions: DefaultedQueryObserverOptions, ) => { - const originalStaleTime = defaultedOptions.staleTime - if (defaultedOptions.suspense) { // Handle staleTime to ensure minimum 1000ms in Suspense mode // This prevents unnecessary refetching when components remount after suspending + + const clamp = (value: number | 'static' | undefined) => + value === 'static' ? value : Math.max(value ?? 1000, 1000) + + const originalStaleTime = defaultedOptions.staleTime defaultedOptions.staleTime = typeof originalStaleTime === 'function' - ? (...args) => Math.max(originalStaleTime(...args), 1000) - : Math.max(originalStaleTime ?? 1000, 1000) + ? (...args) => clamp(originalStaleTime(...args)) + : clamp(originalStaleTime) if (typeof defaultedOptions.gcTime === 'number') { defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1000) From 7cf6ef515fbdda6b79aa1640efd040391b13c7d2 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 29 May 2025 09:42:36 +0000 Subject: [PATCH 114/432] release: v5.79.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 1a0db3bb4e..99938212b3 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 71857b3e56..dfab8579a7 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.77.2", + "@tanstack/query-sync-storage-persister": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 420b5bbcaa..d030b5c8d7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 861d5726a5..0314792d17 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.77.2", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-devtools-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index cf10f89c91..027473fc4d 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 114ee8fe47..e8320aff3b 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 10aab6f808..cfb51e982d 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 84d91dcd40..a7736a2662 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 4d8088063f..35ed912d0a 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 8d936ba503..87910d472f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index f68cc91192..103eee4d89 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.77.2", + "@tanstack/angular-query-experimental": "^5.79.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index df25d48e9d..c597a1dd00 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 8450525c93..a96b3e0668 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 765bee3a7e..08565c35a8 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 5fb8a655d6..ac0030d1a0 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.2", - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", - "@tanstack/react-query-persist-client": "^5.77.2", + "@tanstack/query-sync-storage-persister": "^5.79.0", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query-persist-client": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 422e635f60..e933fdc751 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 6cd246e562..414d756044 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 02bc50a2fe..71efe46050 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index a1629228e5..e282033b35 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.2", - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", - "@tanstack/react-query-persist-client": "^5.77.2", + "@tanstack/query-sync-storage-persister": "^5.79.0", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query-persist-client": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index bd25010f6b..dbc8a5a228 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 7c353daff2..697cbf57a6 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 505132b478..79abc90d5e 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 9bf6c647f8..d1b17c166c 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", - "@tanstack/react-query-next-experimental": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query-next-experimental": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 8bf57a9929..8751f87ac3 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index e9721345d4..d1409cbc58 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.2", + "@tanstack/query-sync-storage-persister": "^5.79.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", - "@tanstack/react-query-persist-client": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query-persist-client": "^5.79.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index d2bd39b479..35833f9fec 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 96fa13bdbe..e004a3bedb 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 020fbd727d..d2f5f65f72 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index b83032f7e4..34f21445d8 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index e55801f8eb..ed7c4d097e 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 012ecca558..4095c5912b 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 61ccf53e99..fa45763163 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 8f4bb0a6c6..165ed8f435 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index eeca853eb8..476a29d511 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index e310b0cfe4..98de086142 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 0475a7d4cb..8631fb494e 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index f926dbc301..49dbf29f6b 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.77.2", - "@tanstack/react-query-devtools": "^5.77.2", + "@tanstack/react-query": "^5.79.0", + "@tanstack/react-query-devtools": "^5.79.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 46b03c9983..be72431384 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.77.2", - "@tanstack/solid-query-devtools": "^5.77.2", + "@tanstack/solid-query": "^5.79.0", + "@tanstack/solid-query-devtools": "^5.79.0", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 231821e865..f8847b4cc9 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.2", - "@tanstack/solid-query-devtools": "^5.77.2", + "@tanstack/solid-query": "^5.79.0", + "@tanstack/solid-query-devtools": "^5.79.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 5cfab49193..5b6dc5b9b6 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.2", - "@tanstack/solid-query-devtools": "^5.77.2", + "@tanstack/solid-query": "^5.79.0", + "@tanstack/solid-query-devtools": "^5.79.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index f86abdd64f..a6b538a428 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.2", - "@tanstack/solid-query-devtools": "^5.77.2", + "@tanstack/solid-query": "^5.79.0", + "@tanstack/solid-query-devtools": "^5.79.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 7fd9f52601..cf23773063 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.77.2", - "@tanstack/solid-query-devtools": "^5.77.2", + "@tanstack/solid-query": "^5.79.0", + "@tanstack/solid-query-devtools": "^5.79.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index e4e2c2de3e..925c3dafc5 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.77.2", - "@tanstack/solid-query-devtools": "^5.77.2", + "@tanstack/solid-query": "^5.79.0", + "@tanstack/solid-query-devtools": "^5.79.0", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index ad312a1073..33ab964b2e 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2" + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index b871fb04c0..403d2b96f1 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.77.2", - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2", - "@tanstack/svelte-query-persist-client": "^5.77.2" + "@tanstack/query-sync-storage-persister": "^5.79.0", + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0", + "@tanstack/svelte-query-persist-client": "^5.79.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 4d05ba8da8..c3381922f5 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2" + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index e247b289c1..978ddda8c0 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2" + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 8ce86638f0..567af71241 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2" + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 1f8a98aae2..7a52e57248 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2" + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index efb2399fe8..c6c8235d4a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2" + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 002f50e299..4ed059fc68 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.77.2", - "@tanstack/svelte-query-devtools": "^5.77.2" + "@tanstack/svelte-query": "^5.79.0", + "@tanstack/svelte-query-devtools": "^5.79.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 9182630c47..e76753f724 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.2", + "@tanstack/vue-query": "^5.79.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 59f1ebfd2f..2ea3242d70 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.2", + "@tanstack/vue-query": "^5.79.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 197ff060eb..0b7b7e6b9c 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.2", - "@tanstack/vue-query-devtools": "^5.77.2", + "@tanstack/vue-query": "^5.79.0", + "@tanstack/vue-query-devtools": "^5.79.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 9ee5fb4029..a06ab30968 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.2", + "@tanstack/vue-query": "^5.79.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 057285bbf1..462df4d093 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.77.2" + "@tanstack/vue-query": "^5.79.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 1da4fa3b02..12e6d028b0 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.77.2", - "@tanstack/query-persist-client-core": "^5.77.2", - "@tanstack/query-sync-storage-persister": "^5.77.2", - "@tanstack/vue-query": "^5.77.2", + "@tanstack/query-core": "^5.79.0", + "@tanstack/query-persist-client-core": "^5.79.0", + "@tanstack/query-sync-storage-persister": "^5.79.0", + "@tanstack/vue-query": "^5.79.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index a7b75df1dd..834962b196 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.77.2", - "@tanstack/vue-query-devtools": "^5.77.2", + "@tanstack/vue-query": "^5.79.0", + "@tanstack/vue-query-devtools": "^5.79.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 2df6f9885f..a60e7e8e53 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.77.2", + "version": "5.79.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 659549b9d1..0f882ebcac 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.77.2", + "version": "5.79.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index daf52db8b3..e46e73f870 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.77.2", + "version": "5.79.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index a1bbc17142..4a967279b6 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.77.2", + "version": "5.79.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a96f8c3b4b..b5d0a60d7a 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.77.2", + "version": "5.79.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 2cfb340110..161729a291 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.77.2", + "version": "5.79.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 083f93b210..4f2b162cf8 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.77.2", + "version": "5.79.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index b403a06d10..9cf69d99a1 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.77.2", + "version": "5.79.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index a4bd62031c..91ec1cffca 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.77.2", + "version": "5.79.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index d7a964d953..68b185aae8 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.77.2", + "version": "5.79.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 8e8f1a6ba1..e8c3a0ac2c 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.77.2", + "version": "5.79.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 2cf70d5202..6afd1674f2 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.77.2", + "version": "5.79.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index d2a16735af..dfec8cf07a 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.77.2", + "version": "5.79.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 90680dd389..d107318e0c 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.77.2", + "version": "5.79.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 73883c8328..faf4e5918f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.77.2", + "version": "5.79.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index cacccc1222..e8f7a6d01d 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.77.2", + "version": "5.79.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 6f7c655eca..d0a9fc77f0 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.77.2", + "version": "5.79.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index db79ceb757..741d2a55a0 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.77.2", + "version": "5.79.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index c7553ab21f..a66942d750 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.77.2", + "version": "5.79.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 982f6ca6073c68a152621772e3cd42c02150917f Mon Sep 17 00:00:00 2001 From: Braden Wong <13159333+braden-w@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:09:24 -0400 Subject: [PATCH 115/432] refactor(types): narrow onSuccess/onError/onMutate/onSettled callback types to Promise | void (#9202) * refactor: narrow onSuccess/onError/onMutate/onSettled callback types to Promise | void Previously, the `onSuccess`, `onError`, `onMutate`, and `onSettled` callbacks were typed as `() => Promise | unknown`. While `unknown` is technically valid, it implies that the return value might be used, assigned, or further processed. However, throughout the codebase, these callbacks are invoked solely for their side effects, and their return values are always ignored. Narrowing the type to `Promise | void` makes this intent explicit, clarifies that any return value will be discarded, and prevents misleading type signatures that suggest otherwise. This commit narrows their types to `() => Promise | void`, which more accurately reflects their intended use. * docs: update callback return types to Promise | void in mutation-related documentation This commit refines the documentation for mutation-related callbacks (`onSuccess`, `onError`, `onSettled`, and `onMutate`), changing their return types from `Promise | unknown` to `Promise | void`. --- docs/framework/react/plugins/persistQueryClient.md | 4 ++-- docs/framework/react/reference/useMutation.md | 6 +++--- docs/reference/MutationCache.md | 8 ++++---- .../src/with-persist-query-client.ts | 4 ++-- packages/query-core/src/mutationCache.ts | 8 ++++---- packages/query-core/src/query.ts | 2 +- packages/query-core/src/types.ts | 6 +++--- .../src/PersistQueryClientProvider.tsx | 4 ++-- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/framework/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md index 77e9aa5b13..4cf6be9288 100644 --- a/docs/framework/react/plugins/persistQueryClient.md +++ b/docs/framework/react/plugins/persistQueryClient.md @@ -214,12 +214,12 @@ ReactDOM.createRoot(rootElement).render( - `persistOptions: PersistQueryClientOptions` - all [options](#options) you can pass to [persistQueryClient](#persistqueryclient) minus the QueryClient itself -- `onSuccess?: () => Promise | unknown` +- `onSuccess?: () => Promise | void` - optional - will be called when the initial restore is finished - can be used to [resumePausedMutations](../../../../reference/QueryClient.md#queryclientresumepausedmutations) - if a Promise is returned, it will be awaited; restoring is seen as ongoing until then -- `onError?: () => Promise | unknown` +- `onError?: () => Promise | void` - optional - will be called when an error is thrown during restoration - if a Promise is returned, it will be awaited diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md index 9147c072ef..80545c517e 100644 --- a/docs/framework/react/reference/useMutation.md +++ b/docs/framework/react/reference/useMutation.md @@ -68,15 +68,15 @@ mutate(variables, { - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds - The value returned from this function will be passed to both the `onError` and `onSettled` functions in the event of a mutation failure and can be useful for rolling back optimistic updates. -- `onSuccess: (data: TData, variables: TVariables, context: TContext) => Promise | unknown` +- `onSuccess: (data: TData, variables: TVariables, context: TContext) => Promise | void` - Optional - This function will fire when the mutation is successful and will be passed the mutation's result. - If a promise is returned, it will be awaited and resolved before proceeding -- `onError: (err: TError, variables: TVariables, context?: TContext) => Promise | unknown` +- `onError: (err: TError, variables: TVariables, context?: TContext) => Promise | void` - Optional - This function will fire if the mutation encounters an error and will be passed the error. - If a promise is returned, it will be awaited and resolved before proceeding -- `onSettled: (data: TData, error: TError, variables: TVariables, context?: TContext) => Promise | unknown` +- `onSettled: (data: TData, error: TError, variables: TVariables, context?: TContext) => Promise | void` - Optional - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error - If a promise is returned, it will be awaited and resolved before proceeding diff --git a/docs/reference/MutationCache.md b/docs/reference/MutationCache.md index 9e8ef2e61a..63c9a4133f 100644 --- a/docs/reference/MutationCache.md +++ b/docs/reference/MutationCache.md @@ -28,19 +28,19 @@ Its available methods are: **Options** -- `onError?: (error: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` +- `onError?: (error: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | void` - Optional - This function will be called if some mutation encounters an error. - If you return a Promise from it, it will be awaited -- `onSuccess?: (data: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` +- `onSuccess?: (data: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | void` - Optional - This function will be called if some mutation is successful. - If you return a Promise from it, it will be awaited -- `onSettled?: (data: unknown | undefined, error: unknown | null, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` +- `onSettled?: (data: unknown | undefined, error: unknown | null, variables: unknown, context: unknown, mutation: Mutation) => Promise | void` - Optional - This function will be called if some mutation is settled (either successful or errored). - If you return a Promise from it, it will be awaited -- `onMutate?: (variables: unknown, mutation: Mutation) => Promise | unknown` +- `onMutate?: (variables: unknown, mutation: Mutation) => Promise | void` - Optional - This function will be called before some mutation executes. - If you return a Promise from it, it will be awaited diff --git a/packages/angular-query-persist-client/src/with-persist-query-client.ts b/packages/angular-query-persist-client/src/with-persist-query-client.ts index ceeeed01cd..d6ad609c8f 100644 --- a/packages/angular-query-persist-client/src/with-persist-query-client.ts +++ b/packages/angular-query-persist-client/src/with-persist-query-client.ts @@ -20,8 +20,8 @@ import type { PersistQueryClientFeature } from '@tanstack/angular-query-experime type PersistQueryClientOptions = { persistOptions: Omit - onSuccess?: () => Promise | unknown - onError?: () => Promise | unknown + onSuccess?: () => Promise | void + onError?: () => Promise | void } /** diff --git a/packages/query-core/src/mutationCache.ts b/packages/query-core/src/mutationCache.ts index 6ab95fbfed..3739388a64 100644 --- a/packages/query-core/src/mutationCache.ts +++ b/packages/query-core/src/mutationCache.ts @@ -16,24 +16,24 @@ interface MutationCacheConfig { variables: unknown, context: unknown, mutation: Mutation, - ) => Promise | unknown + ) => Promise | void onSuccess?: ( data: unknown, variables: unknown, context: unknown, mutation: Mutation, - ) => Promise | unknown + ) => Promise | void onMutate?: ( variables: unknown, mutation: Mutation, - ) => Promise | unknown + ) => Promise | void onSettled?: ( data: unknown | undefined, error: DefaultError | null, variables: unknown, context: unknown, mutation: Mutation, - ) => Promise | unknown + ) => Promise | void } interface NotifyEventMutationAdded extends NotifyEvent { diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 7ee01522ec..6bb6455c6f 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -67,7 +67,7 @@ export interface FetchContext< TData, TQueryKey extends QueryKey = QueryKey, > { - fetchFn: () => unknown | Promise + fetchFn: () => Promise | unknown fetchOptions?: FetchOptions signal: AbortSignal options: QueryOptions diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 3bf6e6c55f..89d7c3a9c7 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -1109,18 +1109,18 @@ export interface MutationOptions< data: TData, variables: TVariables, context: TContext, - ) => Promise | unknown + ) => Promise | void onError?: ( error: TError, variables: TVariables, context: TContext | undefined, - ) => Promise | unknown + ) => Promise | void onSettled?: ( data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined, - ) => Promise | unknown + ) => Promise | void retry?: RetryValue retryDelay?: RetryDelayValue networkMode?: NetworkMode diff --git a/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx b/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx index b12dba8810..808a2e7a57 100644 --- a/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx +++ b/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx @@ -11,8 +11,8 @@ import type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query' export type PersistQueryClientProviderProps = QueryClientProviderProps & { persistOptions: OmitKeyof - onSuccess?: () => Promise | unknown - onError?: () => Promise | unknown + onSuccess?: () => Promise | void + onError?: () => Promise | void } export const PersistQueryClientProvider = ({ From ff2b51a7da54cb07dacf597e45526f711de688f2 Mon Sep 17 00:00:00 2001 From: Zentrik Date: Mon, 2 Jun 2025 17:11:06 +0100 Subject: [PATCH 116/432] docs: Mention query keys needs to be serializable using `JSON.stringify` (#9204) This was not clear to me and so maybe a useful addition to the docs --- docs/framework/react/guides/query-keys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/guides/query-keys.md b/docs/framework/react/guides/query-keys.md index a914aefbb8..4d95b09bd9 100644 --- a/docs/framework/react/guides/query-keys.md +++ b/docs/framework/react/guides/query-keys.md @@ -3,7 +3,7 @@ id: query-keys title: Query Keys --- -At its core, TanStack Query manages query caching for you based on query keys. Query keys have to be an Array at the top level, and can be as simple as an Array with a single string, or as complex as an array of many strings and nested objects. As long as the query key is serializable, and **unique to the query's data**, you can use it! +At its core, TanStack Query manages query caching for you based on query keys. Query keys have to be an Array at the top level, and can be as simple as an Array with a single string, or as complex as an array of many strings and nested objects. As long as the query key is serializable using `JSON.stringify`, and **unique to the query's data**, you can use it! ## Simple Query Keys From 7c5a8b6b963ad237000f510565a9336868708e1d Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 2 Jun 2025 16:17:53 +0000 Subject: [PATCH 117/432] release: v5.79.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 99938212b3..03ae0c13ac 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index dfab8579a7..bc0a1c110b 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.79.0", + "@tanstack/query-sync-storage-persister": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index d030b5c8d7..fc8fb58aca 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 0314792d17..3e8e402382 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.79.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-devtools-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 027473fc4d..032ecd8628 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index e8320aff3b..989a1c66b6 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index cfb51e982d..1eca982034 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index a7736a2662..fca3e27cfc 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 35ed912d0a..177efcce39 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 87910d472f..c1b664e610 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 103eee4d89..b104ed6984 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.0", + "@tanstack/angular-query-experimental": "^5.79.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index c597a1dd00..34d2ffb8d5 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index a96b3e0668..e3052052a4 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 08565c35a8..5eae96183e 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index ac0030d1a0..e3b0608168 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.0", - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", - "@tanstack/react-query-persist-client": "^5.79.0", + "@tanstack/query-sync-storage-persister": "^5.79.1", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query-persist-client": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index e933fdc751..c01ab45a43 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 414d756044..34dbd57b14 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 71efe46050..b3ff051923 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index e282033b35..259d3a0576 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.0", - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", - "@tanstack/react-query-persist-client": "^5.79.0", + "@tanstack/query-sync-storage-persister": "^5.79.1", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query-persist-client": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index dbc8a5a228..77cba1d7b3 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 697cbf57a6..ee13ba42ef 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 79abc90d5e..4c5dec6207 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index d1b17c166c..d8b609fadc 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", - "@tanstack/react-query-next-experimental": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query-next-experimental": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 8751f87ac3..a91d47d9ac 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index d1409cbc58..98befc392c 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.0", + "@tanstack/query-sync-storage-persister": "^5.79.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", - "@tanstack/react-query-persist-client": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query-persist-client": "^5.79.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 35833f9fec..89346d1b31 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index e004a3bedb..cdce7e74ce 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index d2f5f65f72..47bd49c916 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 34f21445d8..298197129d 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index ed7c4d097e..94750c8f4f 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 4095c5912b..69d4455123 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index fa45763163..fa9e965d85 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 165ed8f435..40e4f73707 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 476a29d511..425ad140d7 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 98de086142..18d2e5db96 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 8631fb494e..a95cffaff1 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 49dbf29f6b..447fbabde7 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.0", - "@tanstack/react-query-devtools": "^5.79.0", + "@tanstack/react-query": "^5.79.1", + "@tanstack/react-query-devtools": "^5.79.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index be72431384..2e8f1590a0 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.79.0", - "@tanstack/solid-query-devtools": "^5.79.0", + "@tanstack/solid-query": "^5.79.1", + "@tanstack/solid-query-devtools": "^5.79.1", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index f8847b4cc9..996c76ae0b 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.0", - "@tanstack/solid-query-devtools": "^5.79.0", + "@tanstack/solid-query": "^5.79.1", + "@tanstack/solid-query-devtools": "^5.79.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 5b6dc5b9b6..bafa433e0f 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.0", - "@tanstack/solid-query-devtools": "^5.79.0", + "@tanstack/solid-query": "^5.79.1", + "@tanstack/solid-query-devtools": "^5.79.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index a6b538a428..68ad060aa8 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.0", - "@tanstack/solid-query-devtools": "^5.79.0", + "@tanstack/solid-query": "^5.79.1", + "@tanstack/solid-query-devtools": "^5.79.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index cf23773063..f83240a154 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.0", - "@tanstack/solid-query-devtools": "^5.79.0", + "@tanstack/solid-query": "^5.79.1", + "@tanstack/solid-query-devtools": "^5.79.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 925c3dafc5..555f57e7ca 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.79.0", - "@tanstack/solid-query-devtools": "^5.79.0", + "@tanstack/solid-query": "^5.79.1", + "@tanstack/solid-query-devtools": "^5.79.1", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 33ab964b2e..5d4dc1e994 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0" + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 403d2b96f1..f1a6f472f1 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.0", - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0", - "@tanstack/svelte-query-persist-client": "^5.79.0" + "@tanstack/query-sync-storage-persister": "^5.79.1", + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1", + "@tanstack/svelte-query-persist-client": "^5.79.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index c3381922f5..566a5a4fc9 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0" + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 978ddda8c0..c2c045084b 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0" + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 567af71241..a7368a23f8 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0" + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 7a52e57248..550b04266d 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0" + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index c6c8235d4a..1c2aa43cff 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0" + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 4ed059fc68..ba8f960d10 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.0", - "@tanstack/svelte-query-devtools": "^5.79.0" + "@tanstack/svelte-query": "^5.79.1", + "@tanstack/svelte-query-devtools": "^5.79.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index e76753f724..4d19779c22 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.0", + "@tanstack/vue-query": "^5.79.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 2ea3242d70..82c259a555 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.0", + "@tanstack/vue-query": "^5.79.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 0b7b7e6b9c..80dece4c9e 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.0", - "@tanstack/vue-query-devtools": "^5.79.0", + "@tanstack/vue-query": "^5.79.1", + "@tanstack/vue-query-devtools": "^5.79.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index a06ab30968..95e2617455 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.0", + "@tanstack/vue-query": "^5.79.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 462df4d093..afb3baa60b 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.79.0" + "@tanstack/vue-query": "^5.79.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 12e6d028b0..5f28da18c8 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.79.0", - "@tanstack/query-persist-client-core": "^5.79.0", - "@tanstack/query-sync-storage-persister": "^5.79.0", - "@tanstack/vue-query": "^5.79.0", + "@tanstack/query-core": "^5.79.1", + "@tanstack/query-persist-client-core": "^5.79.1", + "@tanstack/query-sync-storage-persister": "^5.79.1", + "@tanstack/vue-query": "^5.79.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 834962b196..752e00fc5b 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.0", - "@tanstack/vue-query-devtools": "^5.79.0", + "@tanstack/vue-query": "^5.79.1", + "@tanstack/vue-query-devtools": "^5.79.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index a60e7e8e53..0e1b993a6b 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.79.0", + "version": "5.79.1", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 0f882ebcac..653fb55c9f 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.79.0", + "version": "5.79.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index e46e73f870..ecadc18b1d 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.79.0", + "version": "5.79.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 4a967279b6..f8faf5b12e 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.79.0", + "version": "5.79.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index b5d0a60d7a..07f8fe69ed 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.79.0", + "version": "5.79.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 161729a291..5694ed217d 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.79.0", + "version": "5.79.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 4f2b162cf8..b9cb4db835 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.79.0", + "version": "5.79.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 9cf69d99a1..09e107529d 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.79.0", + "version": "5.79.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 91ec1cffca..6af46eee4b 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.79.0", + "version": "5.79.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 68b185aae8..7f7e99f4b0 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.79.0", + "version": "5.79.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index e8c3a0ac2c..993d7e1621 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.79.0", + "version": "5.79.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 6afd1674f2..df65f4526f 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.79.0", + "version": "5.79.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index dfec8cf07a..ec5694123b 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.79.0", + "version": "5.79.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index d107318e0c..b519756255 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.79.0", + "version": "5.79.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index faf4e5918f..c9a48e2033 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.79.0", + "version": "5.79.1", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index e8f7a6d01d..15a8319fca 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.79.0", + "version": "5.79.1", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index d0a9fc77f0..cb5f7f7222 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.79.0", + "version": "5.79.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 741d2a55a0..369de4ba3b 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.79.0", + "version": "5.79.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index a66942d750..d0c52fefca 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.79.0", + "version": "5.79.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 0cbfc5ec6ba49ab8fe788a18047ff9c8b0ad65f4 Mon Sep 17 00:00:00 2001 From: Braden Wong <13159333+braden-w@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:21:31 -0400 Subject: [PATCH 118/432] refactor(query-core): extract context creation to functions and move type assertions (#9210) This refactor extracts the creation of the query function context and fetch context into dedicated helper functions (e.g., `createQueryFnContext`), improving code readability. This change: - Moves type assertions and type handling higher up, reducing inline type noise and making type boundaries clearer. - Replaces ad-hoc object construction with a function that does one thing (build query contexts). No functional behavior is changed; this is a structural and type-safety improvement. --- .../query-core/src/infiniteQueryBehavior.ts | 28 ++++---- packages/query-core/src/query.ts | 64 +++++++++++-------- 2 files changed, 52 insertions(+), 40 deletions(-) diff --git a/packages/query-core/src/infiniteQueryBehavior.ts b/packages/query-core/src/infiniteQueryBehavior.ts index 9cb616da27..476d90ce15 100644 --- a/packages/query-core/src/infiniteQueryBehavior.ts +++ b/packages/query-core/src/infiniteQueryBehavior.ts @@ -54,22 +54,24 @@ export function infiniteQueryBehavior( return Promise.resolve(data) } - const queryFnContext: OmitKeyof< - QueryFunctionContext, - 'signal' - > = { - client: context.client, - queryKey: context.queryKey, - pageParam: param, - direction: previous ? 'backward' : 'forward', - meta: context.options.meta, + const createQueryFnContext = () => { + const queryFnContext: OmitKeyof< + QueryFunctionContext, + 'signal' + > = { + client: context.client, + queryKey: context.queryKey, + pageParam: param, + direction: previous ? 'backward' : 'forward', + meta: context.options.meta, + } + addSignalProperty(queryFnContext) + return queryFnContext as QueryFunctionContext } - addSignalProperty(queryFnContext) + const queryFnContext = createQueryFnContext() - const page = await queryFn( - queryFnContext as QueryFunctionContext, - ) + const page = await queryFn(queryFnContext) const { maxPages } = context.options const addTo = previous ? addToStart : addToEnd diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 6bb6455c6f..d20ec84252 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -18,7 +18,6 @@ import type { FetchStatus, InitialDataFunction, OmitKeyof, - QueryFunction, QueryFunctionContext, QueryKey, QueryMeta, @@ -431,48 +430,59 @@ export class Query< const queryFn = ensureQueryFn(this.options, fetchOptions) // Create query function context - const queryFnContext: OmitKeyof< - QueryFunctionContext, - 'signal' - > = { - client: this.#client, - queryKey: this.queryKey, - meta: this.meta, + const createQueryFnContext = (): QueryFunctionContext => { + const queryFnContext: OmitKeyof< + QueryFunctionContext, + 'signal' + > = { + client: this.#client, + queryKey: this.queryKey, + meta: this.meta, + } + addSignalProperty(queryFnContext) + return queryFnContext as QueryFunctionContext } - addSignalProperty(queryFnContext) + const queryFnContext = createQueryFnContext() this.#abortSignalConsumed = false if (this.options.persister) { return this.options.persister( - queryFn as QueryFunction, - queryFnContext as QueryFunctionContext, + queryFn, + queryFnContext, this as unknown as Query, ) } - return queryFn(queryFnContext as QueryFunctionContext) + return queryFn(queryFnContext) } // Trigger behavior hook - const context: OmitKeyof< - FetchContext, - 'signal' - > = { - fetchOptions, - options: this.options, - queryKey: this.queryKey, - client: this.#client, - state: this.state, - fetchFn, + const createFetchContext = (): FetchContext< + TQueryFnData, + TError, + TData, + TQueryKey + > => { + const context: OmitKeyof< + FetchContext, + 'signal' + > = { + fetchOptions, + options: this.options, + queryKey: this.queryKey, + client: this.#client, + state: this.state, + fetchFn, + } + + addSignalProperty(context) + return context as FetchContext } - addSignalProperty(context) + const context = createFetchContext() - this.options.behavior?.onFetch( - context as FetchContext, - this as unknown as Query, - ) + this.options.behavior?.onFetch(context, this as unknown as Query) // Store state in case the current fetch needs to be reverted this.#revertState = this.state From 0e083c626f21c23f3a963c4050a63b058ef317ea Mon Sep 17 00:00:00 2001 From: novice0840 <111696934+novice0840@users.noreply.github.com> Date: Tue, 3 Jun 2025 01:22:22 +0900 Subject: [PATCH 119/432] refactor(react-query): change the order of const variables (#9211) --- packages/react-query/src/useBaseQuery.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index bda1d95dc3..06690b544f 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -49,9 +49,9 @@ export function useBaseQuery< } } - const client = useQueryClient(queryClient) const isRestoring = useIsRestoring() const errorResetBoundary = useQueryErrorResetBoundary() + const client = useQueryClient(queryClient) const defaultedOptions = client.defaultQueryOptions(options) ;(client.getDefaultOptions().queries as any)?._experimental_beforeQuery?.( From 214fafdae526ac86a097da4ada5dd5e9964380dc Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 2 Jun 2025 16:29:10 +0000 Subject: [PATCH 120/432] release: v5.79.2 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 03ae0c13ac..67812755a5 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index bc0a1c110b..e076f3cb74 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.79.1", + "@tanstack/query-sync-storage-persister": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index fc8fb58aca..90923b6e98 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 3e8e402382..121724cd48 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.79.1", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-devtools-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 032ecd8628..e58c0232cb 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 989a1c66b6..46e32c2451 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 1eca982034..75f5e34f83 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index fca3e27cfc..0c1d479029 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 177efcce39..8341101e7b 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index c1b664e610..b16b306a44 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index b104ed6984..03977ec434 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.1", + "@tanstack/angular-query-experimental": "^5.79.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 34d2ffb8d5..ef82560dd1 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index e3052052a4..3cdf62d6dc 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 5eae96183e..68abbe1344 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index e3b0608168..68455ccde0 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.1", - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", - "@tanstack/react-query-persist-client": "^5.79.1", + "@tanstack/query-sync-storage-persister": "^5.79.2", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query-persist-client": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index c01ab45a43..75da04c529 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 34dbd57b14..ecebdb7c81 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index b3ff051923..cddc8cfe98 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 259d3a0576..109957d0e6 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.1", - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", - "@tanstack/react-query-persist-client": "^5.79.1", + "@tanstack/query-sync-storage-persister": "^5.79.2", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query-persist-client": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 77cba1d7b3..f73a1b77ae 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index ee13ba42ef..7d1c13e202 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 4c5dec6207..60c0dc5161 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index d8b609fadc..b134a82d5c 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", - "@tanstack/react-query-next-experimental": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query-next-experimental": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index a91d47d9ac..8c6b9dfe85 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 98befc392c..9f6a99ec17 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.1", + "@tanstack/query-sync-storage-persister": "^5.79.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", - "@tanstack/react-query-persist-client": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query-persist-client": "^5.79.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 89346d1b31..c5daf721ee 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index cdce7e74ce..7a72252c5f 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 47bd49c916..3904c48ae6 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 298197129d..4423154cbc 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 94750c8f4f..efb2289f55 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 69d4455123..7d2b7b2832 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index fa9e965d85..6306ed1664 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 40e4f73707..585f02e118 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 425ad140d7..a9729b0cf6 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 18d2e5db96..eef5db1342 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index a95cffaff1..27e73cdcf2 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 447fbabde7..0ce6f2474f 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.1", - "@tanstack/react-query-devtools": "^5.79.1", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 2e8f1590a0..ece8948229 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.79.1", - "@tanstack/solid-query-devtools": "^5.79.1", + "@tanstack/solid-query": "^5.79.2", + "@tanstack/solid-query-devtools": "^5.79.2", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 996c76ae0b..dc4562e6c9 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.1", - "@tanstack/solid-query-devtools": "^5.79.1", + "@tanstack/solid-query": "^5.79.2", + "@tanstack/solid-query-devtools": "^5.79.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index bafa433e0f..3d6fd99ae7 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.1", - "@tanstack/solid-query-devtools": "^5.79.1", + "@tanstack/solid-query": "^5.79.2", + "@tanstack/solid-query-devtools": "^5.79.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 68ad060aa8..a7b96d4fc4 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.1", - "@tanstack/solid-query-devtools": "^5.79.1", + "@tanstack/solid-query": "^5.79.2", + "@tanstack/solid-query-devtools": "^5.79.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index f83240a154..0a8e735306 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.1", - "@tanstack/solid-query-devtools": "^5.79.1", + "@tanstack/solid-query": "^5.79.2", + "@tanstack/solid-query-devtools": "^5.79.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 555f57e7ca..3a58cffd9e 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.79.1", - "@tanstack/solid-query-devtools": "^5.79.1", + "@tanstack/solid-query": "^5.79.2", + "@tanstack/solid-query-devtools": "^5.79.2", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 5d4dc1e994..fac80f2d38 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1" + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index f1a6f472f1..3f67c195f9 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.1", - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1", - "@tanstack/svelte-query-persist-client": "^5.79.1" + "@tanstack/query-sync-storage-persister": "^5.79.2", + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2", + "@tanstack/svelte-query-persist-client": "^5.79.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 566a5a4fc9..4cbbb0dccf 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1" + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index c2c045084b..f1f72d9876 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1" + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index a7368a23f8..0ee0241c28 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1" + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 550b04266d..b5f16b7215 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1" + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 1c2aa43cff..479d13fffd 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1" + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index ba8f960d10..fba6044a34 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.1", - "@tanstack/svelte-query-devtools": "^5.79.1" + "@tanstack/svelte-query": "^5.79.2", + "@tanstack/svelte-query-devtools": "^5.79.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 4d19779c22..fa3585f4d7 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.1", + "@tanstack/vue-query": "^5.79.2", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 82c259a555..2b4e53f97c 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.1", + "@tanstack/vue-query": "^5.79.2", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 80dece4c9e..ec2c6fea95 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.1", - "@tanstack/vue-query-devtools": "^5.79.1", + "@tanstack/vue-query": "^5.79.2", + "@tanstack/vue-query-devtools": "^5.79.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 95e2617455..5ef4fccf81 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.1", + "@tanstack/vue-query": "^5.79.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index afb3baa60b..e9b3d60161 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.79.1" + "@tanstack/vue-query": "^5.79.2" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 5f28da18c8..75d11b39d6 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.79.1", - "@tanstack/query-persist-client-core": "^5.79.1", - "@tanstack/query-sync-storage-persister": "^5.79.1", - "@tanstack/vue-query": "^5.79.1", + "@tanstack/query-core": "^5.79.2", + "@tanstack/query-persist-client-core": "^5.79.2", + "@tanstack/query-sync-storage-persister": "^5.79.2", + "@tanstack/vue-query": "^5.79.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 752e00fc5b..59b64e593a 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.1", - "@tanstack/vue-query-devtools": "^5.79.1", + "@tanstack/vue-query": "^5.79.2", + "@tanstack/vue-query-devtools": "^5.79.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 0e1b993a6b..9c6a8b6d77 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.79.1", + "version": "5.79.2", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 653fb55c9f..7778ecca23 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.79.1", + "version": "5.79.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index ecadc18b1d..5cdc5f5d7e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.79.1", + "version": "5.79.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index f8faf5b12e..60d3efe350 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.79.1", + "version": "5.79.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 07f8fe69ed..f4bd3cb9ef 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.79.1", + "version": "5.79.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 5694ed217d..d9ade1f16d 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.79.1", + "version": "5.79.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index b9cb4db835..931337582c 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.79.1", + "version": "5.79.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 09e107529d..9266afbe32 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.79.1", + "version": "5.79.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 6af46eee4b..28d3e09515 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.79.1", + "version": "5.79.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 7f7e99f4b0..d939ac8421 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.79.1", + "version": "5.79.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 993d7e1621..362f55437e 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.79.1", + "version": "5.79.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index df65f4526f..878ee97b74 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.79.1", + "version": "5.79.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index ec5694123b..0fcaf27f83 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.79.1", + "version": "5.79.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index b519756255..47e2f2c731 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.79.1", + "version": "5.79.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c9a48e2033..4b03b6728b 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.79.1", + "version": "5.79.2", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 15a8319fca..b6448097e5 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.79.1", + "version": "5.79.2", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index cb5f7f7222..cb28c63209 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.79.1", + "version": "5.79.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 369de4ba3b..03f118a1ac 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.79.1", + "version": "5.79.2", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index d0c52fefca..52b42b3487 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.79.1", + "version": "5.79.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 3e7d715718adf5ff17df68b1c0b3b9c2c0ff6f2d Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Tue, 3 Jun 2025 01:46:15 +0900 Subject: [PATCH 121/432] feat(query-devtools): add indicator for staleTime: "static" (#9215) Co-authored-by: Dominik Dorfmeister --- packages/query-devtools/src/Devtools.tsx | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index 29883b77e5..e7e640a9dc 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -1263,6 +1263,17 @@ const QueryRow: Component<{ query: Query }> = (props) => { (e) => e.query.queryHash === props.query.queryHash, ) + const isStatic = createSubscribeToQueryCacheBatcher( + (queryCache) => + queryCache() + .find({ + queryKey: props.query.queryKey, + }) + ?.isStatic() ?? false, + true, + (e) => e.query.queryHash === props.query.queryHash, + ) + const isStale = createSubscribeToQueryCacheBatcher( (queryCache) => queryCache() @@ -1337,6 +1348,9 @@ const QueryRow: Component<{ query: Query }> = (props) => {
disabled
+ +
static
+
) @@ -3180,6 +3194,17 @@ const stylesFactory = ( border-bottom: 1px solid ${t(colors.gray[300], colors.darkGray[400])}; font-size: ${font.size.xs}; } + + & .tsqd-query-static-indicator { + align-self: stretch; + display: flex; + align-items: center; + padding: 0 ${tokens.size[2]}; + color: ${t(colors.teal[800], colors.teal[300])}; + background-color: ${t(colors.teal[100], colors.teal[900])}; + border-bottom: 1px solid ${t(colors.teal[300], colors.teal[700])}; + font-size: ${font.size.xs}; + } `, selectedQueryRow: css` background-color: ${t(colors.gray[200], colors.darkGray[500])}; From 3a89ec9c5bb7157859c468120ca38e81e2e13e76 Mon Sep 17 00:00:00 2001 From: Braden Wong <13159333+braden-w@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:49:16 -0400 Subject: [PATCH 122/432] chore: improve type safety in `getQueryData` by using generics (#9218) Refactored the `getQueryData` method in `QueryClient` to use generics for type inference instead of type assertion with `as`. The previous implementation of `getQueryData` relied on a type assertion (`as`) to cast the result of `queryCache.get()`: ```typescript return this.#queryCache.get(options.queryHash)?.state.data as | TInferredQueryFnData | undefined ``` While this works, using generics is a more type-safe and idiomatic approach in TypeScript. It allows the type system to infer the correct type for `TInferredQueryFnData` when `queryCache.get` is called, reducing the need for manual type casting and potential runtime errors if the cast is incorrect. ## Changes The `getQueryData` method has been updated to pass `TInferredQueryFnData` as a generic type argument to `this.#queryCache.get()`: **Before:** ```typescript return this.#queryCache.get(options.queryHash)?.state.data as | TInferredQueryFnData | undefined ``` **After:** ```typescript return this.#queryCache.get(options.queryHash)?.state .data ``` This change leverages the existing generic type parameter `TInferredQueryFnData` already defined in the `getQueryData` signature and `QueryCache#get` method. --- packages/query-core/src/queryClient.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts index 650d3e5ad6..5154ecb535 100644 --- a/packages/query-core/src/queryClient.ts +++ b/packages/query-core/src/queryClient.ts @@ -133,9 +133,8 @@ export class QueryClient { >(queryKey: TTaggedQueryKey): TInferredQueryFnData | undefined { const options = this.defaultQueryOptions({ queryKey }) - return this.#queryCache.get(options.queryHash)?.state.data as - | TInferredQueryFnData - | undefined + return this.#queryCache.get(options.queryHash)?.state + .data } ensureQueryData< From 4bf169e7c3004bd9dca921509f4e534a930d94ea Mon Sep 17 00:00:00 2001 From: novice0840 <111696934+novice0840@users.noreply.github.com> Date: Tue, 3 Jun 2025 02:13:53 +0900 Subject: [PATCH 123/432] refactor(query-core): add "Set" instead of "includes" (#9221) --- packages/query-core/src/utils.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index b3e383d7cd..f4bde86c8d 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -264,13 +264,14 @@ export function replaceEqualDeep(a: any, b: any): any { const bItems = array ? b : Object.keys(b) const bSize = bItems.length const copy: any = array ? [] : {} + const aItemsSet = new Set(aItems) let equalItems = 0 for (let i = 0; i < bSize; i++) { const key = array ? i : bItems[i] if ( - ((!array && aItems.includes(key)) || array) && + ((!array && aItemsSet.has(key)) || array) && a[key] === undefined && b[key] === undefined ) { From a2a23a89a3134a3010f2a5752764e4bc031db568 Mon Sep 17 00:00:00 2001 From: clonemycode <168618167+clonemycode@users.noreply.github.com> Date: Tue, 3 Jun 2025 01:32:03 +0800 Subject: [PATCH 124/432] chore: remove redundant word in comment (#9231) Signed-off-by: clonemycode Co-authored-by: Jonghyeon Ko --- docs/framework/react/guides/ssr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/guides/ssr.md b/docs/framework/react/guides/ssr.md index eeecf03d2f..641c195919 100644 --- a/docs/framework/react/guides/ssr.md +++ b/docs/framework/react/guides/ssr.md @@ -509,7 +509,7 @@ Note that the queries are no longer fetched on the client, instead their data wa We simply can not know before we have fetched the feed if we also need to fetch graph data, they are dependent queries. Because this happens on the server where latency is generally both lower and more stable, this often isn't such a big deal. -Amazing, we've mostly flattened our waterfalls! There's a catch though. Let's call this page the `/feed` page, and let's pretend we also have another page like `/posts`. If we type in `www.example.com/feed` directly in the url bar and hit enter, we get all these great server rendering benefits, BUT, if we instead type in `www.example.com/posts` and then **click a link** to `/feed`, we're back to to this: +Amazing, we've mostly flattened our waterfalls! There's a catch though. Let's call this page the `/feed` page, and let's pretend we also have another page like `/posts`. If we type in `www.example.com/feed` directly in the url bar and hit enter, we get all these great server rendering benefits, BUT, if we instead type in `www.example.com/posts` and then **click a link** to `/feed`, we're back to this: ``` 1. |> JS for From efa963d1fd90d408d3500ef8754c78fb243b9473 Mon Sep 17 00:00:00 2001 From: Braden Wong <13159333+braden-w@users.noreply.github.com> Date: Mon, 2 Jun 2025 13:34:28 -0400 Subject: [PATCH 125/432] refactor(types): remove unnecessary TQueryData generic in InfiniteQueryObserverOptions (#9224) * refactor(core): remove unnecessary TQueryData in InfiniteQueryObserverOptions * refactor(react-query,solid-query,svelte-query,vue-query,angular-query): remove unnecessary TQueryData in InfiniteQueryObserverOptions * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister --- .../src/infinite-query-options.ts | 4 ---- .../src/inject-infinite-query.ts | 1 - packages/angular-query-experimental/src/types.ts | 2 -- .../src/__tests__/infiniteQueryBehavior.test.tsx | 1 - .../src/__tests__/infiniteQueryObserver.test.tsx | 1 - packages/query-core/src/infiniteQueryObserver.ts | 13 ++++--------- packages/query-core/src/types.ts | 5 +---- .../__tests__/usePrefetchInfiniteQuery.test.tsx | 1 - packages/react-query/src/infiniteQueryOptions.ts | 12 +----------- packages/react-query/src/types.ts | 16 ++-------------- packages/react-query/src/useInfiniteQuery.ts | 1 - .../react-query/src/useSuspenseInfiniteQuery.ts | 1 - packages/solid-query/src/QueryClient.ts | 2 -- packages/solid-query/src/infiniteQueryOptions.ts | 2 -- packages/solid-query/src/types.ts | 11 +---------- packages/svelte-query/src/createInfiniteQuery.ts | 1 - .../svelte-query/src/infiniteQueryOptions.ts | 2 -- packages/svelte-query/src/types.ts | 2 -- packages/vue-query/src/infiniteQueryOptions.ts | 2 -- packages/vue-query/src/useBaseQuery.ts | 9 +-------- packages/vue-query/src/useInfiniteQuery.ts | 5 ----- 21 files changed, 10 insertions(+), 84 deletions(-) diff --git a/packages/angular-query-experimental/src/infinite-query-options.ts b/packages/angular-query-experimental/src/infinite-query-options.ts index 1245416539..fdc7396c99 100644 --- a/packages/angular-query-experimental/src/infinite-query-options.ts +++ b/packages/angular-query-experimental/src/infinite-query-options.ts @@ -20,7 +20,6 @@ export type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { @@ -43,7 +42,6 @@ export type UnusedSkipTokenInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >, @@ -54,7 +52,6 @@ export type UnusedSkipTokenInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >['queryFn'], @@ -72,7 +69,6 @@ export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { diff --git a/packages/angular-query-experimental/src/inject-infinite-query.ts b/packages/angular-query-experimental/src/inject-infinite-query.ts index 6993a5bfcc..6df26a0bb5 100644 --- a/packages/angular-query-experimental/src/inject-infinite-query.ts +++ b/packages/angular-query-experimental/src/inject-infinite-query.ts @@ -100,7 +100,6 @@ export function injectInfiniteQuery< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >, diff --git a/packages/angular-query-experimental/src/types.ts b/packages/angular-query-experimental/src/types.ts index 8cdb820965..578eaa0864 100644 --- a/packages/angular-query-experimental/src/types.ts +++ b/packages/angular-query-experimental/src/types.ts @@ -96,7 +96,6 @@ export interface CreateInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > extends OmitKeyof< @@ -104,7 +103,6 @@ export interface CreateInfiniteQueryOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index e382a307c9..523a30ca20 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -366,7 +366,6 @@ describe('InfiniteQueryBehavior', () => { TestResponse, Error, InfiniteData, - TestResponse, typeof key, number >(queryClient, { diff --git a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx index b24993b8c1..36aa08c554 100644 --- a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx @@ -220,7 +220,6 @@ describe('InfiniteQueryObserver', () => { number, Error, InfiniteData, - number, typeof key, number > = { diff --git a/packages/query-core/src/infiniteQueryObserver.ts b/packages/query-core/src/infiniteQueryObserver.ts index 2e6acf0cdd..1499b13816 100644 --- a/packages/query-core/src/infiniteQueryObserver.ts +++ b/packages/query-core/src/infiniteQueryObserver.ts @@ -27,14 +27,13 @@ export class InfiniteQueryObserver< TQueryFnData = unknown, TError = DefaultError, TData = InfiniteData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > extends QueryObserver< TQueryFnData, TError, TData, - InfiniteData, + InfiniteData, TQueryKey > { // Type override @@ -48,7 +47,7 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - InfiniteData, + InfiniteData, TQueryKey >['getCurrentResult'], InfiniteQueryObserverResult @@ -60,7 +59,7 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - InfiniteData, + InfiniteData, TQueryKey >['fetch'], Promise> @@ -72,7 +71,6 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, @@ -91,7 +89,6 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, @@ -107,7 +104,6 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, @@ -145,14 +141,13 @@ export class InfiniteQueryObserver< query: Query< TQueryFnData, TError, - InfiniteData, + InfiniteData, TQueryKey >, options: InfiniteQueryObserverOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 89d7c3a9c7..5df30eee87 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -459,14 +459,13 @@ export interface InfiniteQueryObserverOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > extends QueryObserverOptions< TQueryFnData, TError, TData, - InfiniteData, + InfiniteData, TQueryKey, TPageParam >, @@ -476,7 +475,6 @@ export type DefaultedInfiniteQueryObserverOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = WithRequired< @@ -484,7 +482,6 @@ export type DefaultedInfiniteQueryObserverOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, diff --git a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx index 0ebd96c68e..fabb410842 100644 --- a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx @@ -50,7 +50,6 @@ describe('usePrefetchInfiniteQuery', () => { T, Error, InfiniteData, - any, Array, any > diff --git a/packages/react-query/src/infiniteQueryOptions.ts b/packages/react-query/src/infiniteQueryOptions.ts index 18d3d655b0..5e8c371a59 100644 --- a/packages/react-query/src/infiniteQueryOptions.ts +++ b/packages/react-query/src/infiniteQueryOptions.ts @@ -20,7 +20,6 @@ export type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { @@ -39,14 +38,7 @@ export type UnusedSkipTokenInfiniteOptions< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = OmitKeyof< - UseInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryFnData, - TQueryKey, - TPageParam - >, + UseInfiniteQueryOptions, 'queryFn' > & { queryFn?: Exclude< @@ -54,7 +46,6 @@ export type UnusedSkipTokenInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >['queryFn'], @@ -72,7 +63,6 @@ export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { diff --git a/packages/react-query/src/types.ts b/packages/react-query/src/types.ts index 18f632d406..3b295e8947 100644 --- a/packages/react-query/src/types.ts +++ b/packages/react-query/src/types.ts @@ -82,14 +82,12 @@ export type AnyUseInfiniteQueryOptions = UseInfiniteQueryOptions< any, any, any, - any, any > export interface UseInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > extends OmitKeyof< @@ -97,7 +95,6 @@ export interface UseInfiniteQueryOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, @@ -111,23 +108,15 @@ export interface UseInfiniteQueryOptions< } export type AnyUseSuspenseInfiniteQueryOptions = - UseSuspenseInfiniteQueryOptions + UseSuspenseInfiniteQueryOptions export interface UseSuspenseInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > extends OmitKeyof< - UseInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryData, - TQueryKey, - TPageParam - >, + UseInfiniteQueryOptions, 'queryFn' | 'enabled' | 'throwOnError' | 'placeholderData' > { queryFn?: Exclude< @@ -135,7 +124,6 @@ export interface UseSuspenseInfiniteQueryOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >['queryFn'], diff --git a/packages/react-query/src/useInfiniteQuery.ts b/packages/react-query/src/useInfiniteQuery.ts index fd2ce11a7f..32ebfb7673 100644 --- a/packages/react-query/src/useInfiniteQuery.ts +++ b/packages/react-query/src/useInfiniteQuery.ts @@ -63,7 +63,6 @@ export function useInfiniteQuery< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >, diff --git a/packages/react-query/src/useSuspenseInfiniteQuery.ts b/packages/react-query/src/useSuspenseInfiniteQuery.ts index 916e89265a..3c2fdfdd72 100644 --- a/packages/react-query/src/useSuspenseInfiniteQuery.ts +++ b/packages/react-query/src/useSuspenseInfiniteQuery.ts @@ -26,7 +26,6 @@ export function useSuspenseInfiniteQuery< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >, diff --git a/packages/solid-query/src/QueryClient.ts b/packages/solid-query/src/QueryClient.ts index ddbe9927da..f453b99bca 100644 --- a/packages/solid-query/src/QueryClient.ts +++ b/packages/solid-query/src/QueryClient.ts @@ -43,7 +43,6 @@ export interface InfiniteQueryObserverOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > extends OmitKeyof< @@ -51,7 +50,6 @@ export interface InfiniteQueryObserverOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, diff --git a/packages/solid-query/src/infiniteQueryOptions.ts b/packages/solid-query/src/infiniteQueryOptions.ts index 2cb1fea1f5..de4991d0b7 100644 --- a/packages/solid-query/src/infiniteQueryOptions.ts +++ b/packages/solid-query/src/infiniteQueryOptions.ts @@ -19,7 +19,6 @@ export type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { @@ -39,7 +38,6 @@ export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { diff --git a/packages/solid-query/src/types.ts b/packages/solid-query/src/types.ts index 758653a099..2d6876a677 100644 --- a/packages/solid-query/src/types.ts +++ b/packages/solid-query/src/types.ts @@ -91,7 +91,6 @@ export interface SolidInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > extends OmitKeyof< @@ -99,7 +98,6 @@ export interface SolidInfiniteQueryOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >, @@ -128,14 +126,7 @@ export type UseInfiniteQueryOptions< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = Accessor< - SolidInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryFnData, - TQueryKey, - TPageParam - > + SolidInfiniteQueryOptions > export type UseInfiniteQueryResult< diff --git a/packages/svelte-query/src/createInfiniteQuery.ts b/packages/svelte-query/src/createInfiniteQuery.ts index 7137800298..5ebb82213a 100644 --- a/packages/svelte-query/src/createInfiniteQuery.ts +++ b/packages/svelte-query/src/createInfiniteQuery.ts @@ -25,7 +25,6 @@ export function createInfiniteQuery< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > diff --git a/packages/svelte-query/src/infiniteQueryOptions.ts b/packages/svelte-query/src/infiniteQueryOptions.ts index 6d71bd2f44..9702520ac2 100644 --- a/packages/svelte-query/src/infiniteQueryOptions.ts +++ b/packages/svelte-query/src/infiniteQueryOptions.ts @@ -12,7 +12,6 @@ export function infiniteQueryOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >, @@ -20,7 +19,6 @@ export function infiniteQueryOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > { diff --git a/packages/svelte-query/src/types.ts b/packages/svelte-query/src/types.ts index fb835c5e7b..ef7ba2e384 100644 --- a/packages/svelte-query/src/types.ts +++ b/packages/svelte-query/src/types.ts @@ -54,14 +54,12 @@ export type CreateInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = InfiniteQueryObserverOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam > diff --git a/packages/vue-query/src/infiniteQueryOptions.ts b/packages/vue-query/src/infiniteQueryOptions.ts index 220fd37563..adab774aa1 100644 --- a/packages/vue-query/src/infiniteQueryOptions.ts +++ b/packages/vue-query/src/infiniteQueryOptions.ts @@ -17,7 +17,6 @@ export type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { @@ -34,7 +33,6 @@ export type DefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & { diff --git a/packages/vue-query/src/useBaseQuery.ts b/packages/vue-query/src/useBaseQuery.ts index ab3dd5b012..65a988ee03 100644 --- a/packages/vue-query/src/useBaseQuery.ts +++ b/packages/vue-query/src/useBaseQuery.ts @@ -47,14 +47,7 @@ type UseQueryOptionsGeneric< TPageParam = unknown, > = | UseQueryOptions - | UseInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryData, - TQueryKey, - TPageParam - > + | UseInfiniteQueryOptions export function useBaseQuery< TQueryFnData, diff --git a/packages/vue-query/src/useInfiniteQuery.ts b/packages/vue-query/src/useInfiniteQuery.ts index 2ec30b25c8..f16eb80dff 100644 --- a/packages/vue-query/src/useInfiniteQuery.ts +++ b/packages/vue-query/src/useInfiniteQuery.ts @@ -27,7 +27,6 @@ export type UseInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, - TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, > = MaybeRef< @@ -36,7 +35,6 @@ export type UseInfiniteQueryOptions< TQueryFnData, TError, TData, - TQueryData, TQueryKey, TPageParam >]: Property extends 'enabled' @@ -45,7 +43,6 @@ export type UseInfiniteQueryOptions< TQueryFnData, TError, TData, - TQueryData, DeepUnwrapRef >[Property] > @@ -54,7 +51,6 @@ export type UseInfiniteQueryOptions< TQueryFnData, TError, TData, - TQueryData, DeepUnwrapRef, TPageParam >[Property] @@ -115,7 +111,6 @@ export function useInfiniteQuery< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >, From 1fba7fc38b91be92d8c20e52935e89acd2921415 Mon Sep 17 00:00:00 2001 From: Braden Wong <13159333+braden-w@users.noreply.github.com> Date: Tue, 3 Jun 2025 05:31:33 -0400 Subject: [PATCH 126/432] chore: consolidate noop function usage across framework packages (#9228) Multiple framework-specific packages (`solid-query`, `svelte-query`, and `angular-query-experimental`) were maintaining their own implementations of the `noop` function, creating unnecessary code duplication across the codebase. ```typescript // Before: Each package had its own noop // packages/svelte-query/src/utils.ts export function noop(): void {} // packages/solid-query/src/utils.ts (missing, causing import errors) // Local noop definitions scattered across files ``` Consolidated all `noop` usage to import from the canonical implementation in `@tanstack/query-core`, which all framework packages already depend on. ```typescript // After: Single source of truth import { noop } from '@tanstack/query-core' ``` - **Removed duplicate `noop` definition** from `packages/svelte-query/src/utils.ts` - **Updated import statements** in Solid Query and Svelte Query to use `noop` from `@tanstack/query-core` - **Fixed missing utils file** in Solid Query that was causing import errors - **Resolved TypeScript compatibility** issues with `noop`'s overloaded return types - **Persisters were intentionally left unchanged** as they don't import `query-core` and maintain their own lightweight utils - **Framework packages already depend on `query-core`**, making this consolidation natural and dependency-free --- packages/angular-query-experimental/src/inject-mutation.ts | 2 +- packages/angular-query-experimental/src/providers.ts | 3 +-- packages/angular-query-experimental/src/util/index.ts | 1 - packages/solid-query/src/useMutation.ts | 3 +-- packages/solid-query/src/useQueries.ts | 5 ++--- packages/solid-query/src/utils.ts | 1 - packages/svelte-query/src/createBaseQuery.ts | 4 ++-- packages/svelte-query/src/createMutation.ts | 4 ++-- packages/svelte-query/src/createQueries.ts | 4 ++-- packages/svelte-query/src/utils.ts | 2 -- 10 files changed, 11 insertions(+), 18 deletions(-) delete mode 100644 packages/angular-query-experimental/src/util/index.ts delete mode 100644 packages/solid-query/src/utils.ts diff --git a/packages/angular-query-experimental/src/inject-mutation.ts b/packages/angular-query-experimental/src/inject-mutation.ts index 16b22ed2f7..2cb465104f 100644 --- a/packages/angular-query-experimental/src/inject-mutation.ts +++ b/packages/angular-query-experimental/src/inject-mutation.ts @@ -12,11 +12,11 @@ import { import { MutationObserver, QueryClient, + noop, notifyManager, shouldThrowError, } from '@tanstack/query-core' import { signalProxy } from './signal-proxy' -import { noop } from './util' import type { DefaultError, MutationObserverResult } from '@tanstack/query-core' import type { CreateMutateFunction, CreateMutationResult } from './types' import type { CreateMutationOptions } from './mutation-options' diff --git a/packages/angular-query-experimental/src/providers.ts b/packages/angular-query-experimental/src/providers.ts index e6f05bb2bc..d7619cec71 100644 --- a/packages/angular-query-experimental/src/providers.ts +++ b/packages/angular-query-experimental/src/providers.ts @@ -7,10 +7,9 @@ import { effect, inject, } from '@angular/core' -import { QueryClient, onlineManager } from '@tanstack/query-core' +import { QueryClient, noop, onlineManager } from '@tanstack/query-core' import { isPlatformBrowser } from '@angular/common' import { isDevMode } from './util/is-dev-mode/is-dev-mode' -import { noop } from './util' import type { Provider } from '@angular/core' import type { DevtoolsButtonPosition, diff --git a/packages/angular-query-experimental/src/util/index.ts b/packages/angular-query-experimental/src/util/index.ts deleted file mode 100644 index 89966dd3d1..0000000000 --- a/packages/angular-query-experimental/src/util/index.ts +++ /dev/null @@ -1 +0,0 @@ -export function noop(): void {} diff --git a/packages/solid-query/src/useMutation.ts b/packages/solid-query/src/useMutation.ts index b6bf7f85ab..df114395c7 100644 --- a/packages/solid-query/src/useMutation.ts +++ b/packages/solid-query/src/useMutation.ts @@ -1,8 +1,7 @@ -import { MutationObserver, shouldThrowError } from '@tanstack/query-core' +import { MutationObserver, noop, shouldThrowError } from '@tanstack/query-core' import { createComputed, createMemo, on, onCleanup } from 'solid-js' import { createStore } from 'solid-js/store' import { useQueryClient } from './QueryClientProvider' -import { noop } from './utils' import type { DefaultError } from '@tanstack/query-core' import type { QueryClient } from './QueryClient' import type { diff --git a/packages/solid-query/src/useQueries.ts b/packages/solid-query/src/useQueries.ts index 1b9e5a0fb8..1e5592775d 100644 --- a/packages/solid-query/src/useQueries.ts +++ b/packages/solid-query/src/useQueries.ts @@ -1,4 +1,4 @@ -import { QueriesObserver } from '@tanstack/query-core' +import { QueriesObserver, noop } from '@tanstack/query-core' import { createStore, unwrap } from 'solid-js/store' import { batch, @@ -13,7 +13,6 @@ import { } from 'solid-js' import { useQueryClient } from './QueryClientProvider' import { useIsRestoring } from './isRestoring' -import { noop } from './utils' import type { SolidQueryOptions, UseQueryResult } from './types' import type { Accessor } from 'solid-js' import type { QueryClient } from './QueryClient' @@ -292,7 +291,7 @@ export function useQueries< }) }) - let unsubscribe = noop + let unsubscribe: () => void = noop createComputed<() => void>((cleanup) => { cleanup?.() unsubscribe = isRestoring() ? noop : subscribeToObserver() diff --git a/packages/solid-query/src/utils.ts b/packages/solid-query/src/utils.ts deleted file mode 100644 index 89966dd3d1..0000000000 --- a/packages/solid-query/src/utils.ts +++ /dev/null @@ -1 +0,0 @@ -export function noop(): void {} diff --git a/packages/svelte-query/src/createBaseQuery.ts b/packages/svelte-query/src/createBaseQuery.ts index acd81bdd8c..df45764bca 100644 --- a/packages/svelte-query/src/createBaseQuery.ts +++ b/packages/svelte-query/src/createBaseQuery.ts @@ -1,8 +1,8 @@ import { derived, get, readable } from 'svelte/store' -import { notifyManager } from '@tanstack/query-core' +import { noop, notifyManager } from '@tanstack/query-core' import { useIsRestoring } from './useIsRestoring.js' import { useQueryClient } from './useQueryClient.js' -import { isSvelteStore, noop } from './utils.js' +import { isSvelteStore } from './utils.js' import type { QueryClient, QueryKey, diff --git a/packages/svelte-query/src/createMutation.ts b/packages/svelte-query/src/createMutation.ts index 96198c3c1f..a08dcf91fa 100644 --- a/packages/svelte-query/src/createMutation.ts +++ b/packages/svelte-query/src/createMutation.ts @@ -1,7 +1,7 @@ import { derived, get, readable } from 'svelte/store' -import { MutationObserver, notifyManager } from '@tanstack/query-core' +import { MutationObserver, noop, notifyManager } from '@tanstack/query-core' import { useQueryClient } from './useQueryClient.js' -import { isSvelteStore, noop } from './utils.js' +import { isSvelteStore } from './utils.js' import type { CreateMutateFunction, CreateMutationOptions, diff --git a/packages/svelte-query/src/createQueries.ts b/packages/svelte-query/src/createQueries.ts index 53877565b1..25e9731c10 100644 --- a/packages/svelte-query/src/createQueries.ts +++ b/packages/svelte-query/src/createQueries.ts @@ -1,8 +1,8 @@ -import { QueriesObserver, notifyManager } from '@tanstack/query-core' +import { QueriesObserver, noop, notifyManager } from '@tanstack/query-core' import { derived, get, readable } from 'svelte/store' import { useIsRestoring } from './useIsRestoring.js' import { useQueryClient } from './useQueryClient.js' -import { isSvelteStore, noop } from './utils.js' +import { isSvelteStore } from './utils.js' import type { Readable } from 'svelte/store' import type { StoreOrVal } from './types.js' import type { diff --git a/packages/svelte-query/src/utils.ts b/packages/svelte-query/src/utils.ts index 29dd68b659..35d60730aa 100644 --- a/packages/svelte-query/src/utils.ts +++ b/packages/svelte-query/src/utils.ts @@ -6,5 +6,3 @@ export function isSvelteStore( ): obj is Readable { return 'subscribe' in obj && typeof obj.subscribe === 'function' } - -export function noop(): void {} From 8d41a4ea789e275a6b54ecb8da215d3a76d875cb Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 3 Jun 2025 09:36:24 +0000 Subject: [PATCH 127/432] release: v5.80.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 78 files changed, 134 insertions(+), 134 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 67812755a5..383a09f8ff 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index e076f3cb74..be4c32ea8d 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.79.2", + "@tanstack/query-sync-storage-persister": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 90923b6e98..db30868cdf 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 121724cd48..592996095f 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.79.2", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-devtools-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index e58c0232cb..3209c4f621 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 46e32c2451..f35b09721b 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 75f5e34f83..c6b542698c 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 0c1d479029..c56a37af5d 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 8341101e7b..f6aae7b462 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index b16b306a44..bd3b976102 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 03977ec434..17bd286fc8 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.79.2", + "@tanstack/angular-query-experimental": "^5.80.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index ef82560dd1..1e15da987d 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 3cdf62d6dc..04401149d8 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 68abbe1344..efdaded2bb 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 68455ccde0..a530be036e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.2", - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", - "@tanstack/react-query-persist-client": "^5.79.2", + "@tanstack/query-sync-storage-persister": "^5.80.0", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query-persist-client": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 75da04c529..03921ec0ef 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index ecebdb7c81..5b2c18b2da 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index cddc8cfe98..85f960bd1a 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 109957d0e6..d4f54893dd 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.2", - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", - "@tanstack/react-query-persist-client": "^5.79.2", + "@tanstack/query-sync-storage-persister": "^5.80.0", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query-persist-client": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index f73a1b77ae..d16ce0ba25 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 7d1c13e202..d0262508d0 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 60c0dc5161..a841dfe5da 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index b134a82d5c..5abf3240a9 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", - "@tanstack/react-query-next-experimental": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query-next-experimental": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 8c6b9dfe85..f2288ef3e0 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 9f6a99ec17..6211e9d2bd 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.2", + "@tanstack/query-sync-storage-persister": "^5.80.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", - "@tanstack/react-query-persist-client": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query-persist-client": "^5.80.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index c5daf721ee..b01b6d9ff3 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 7a72252c5f..2a0d117811 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 3904c48ae6..c1ea193efa 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 4423154cbc..8b0ce0dea2 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index efb2289f55..b0be3a00ee 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 7d2b7b2832..69e06e2dcc 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 6306ed1664..a162fc3a19 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 585f02e118..82cf470142 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index a9729b0cf6..64668bf846 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index eef5db1342..8edfb7ee79 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 27e73cdcf2..6b0e699867 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 0ce6f2474f..e0e2e7bf0f 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.79.2", - "@tanstack/react-query-devtools": "^5.79.2", + "@tanstack/react-query": "^5.80.0", + "@tanstack/react-query-devtools": "^5.80.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index ece8948229..137013ab23 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.79.2", - "@tanstack/solid-query-devtools": "^5.79.2", + "@tanstack/solid-query": "^5.80.0", + "@tanstack/solid-query-devtools": "^5.80.0", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index dc4562e6c9..93182b0cb3 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.2", - "@tanstack/solid-query-devtools": "^5.79.2", + "@tanstack/solid-query": "^5.80.0", + "@tanstack/solid-query-devtools": "^5.80.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 3d6fd99ae7..7762b77302 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.2", - "@tanstack/solid-query-devtools": "^5.79.2", + "@tanstack/solid-query": "^5.80.0", + "@tanstack/solid-query-devtools": "^5.80.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index a7b96d4fc4..755b894ccb 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.2", - "@tanstack/solid-query-devtools": "^5.79.2", + "@tanstack/solid-query": "^5.80.0", + "@tanstack/solid-query-devtools": "^5.80.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 0a8e735306..f5684092da 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.79.2", - "@tanstack/solid-query-devtools": "^5.79.2", + "@tanstack/solid-query": "^5.80.0", + "@tanstack/solid-query-devtools": "^5.80.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 3a58cffd9e..e776d511b8 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.79.2", - "@tanstack/solid-query-devtools": "^5.79.2", + "@tanstack/solid-query": "^5.80.0", + "@tanstack/solid-query-devtools": "^5.80.0", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index fac80f2d38..672cc118a9 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2" + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 3f67c195f9..db8661ac99 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.79.2", - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2", - "@tanstack/svelte-query-persist-client": "^5.79.2" + "@tanstack/query-sync-storage-persister": "^5.80.0", + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0", + "@tanstack/svelte-query-persist-client": "^5.80.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 4cbbb0dccf..d13057cd45 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2" + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index f1f72d9876..982525f0c8 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2" + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 0ee0241c28..092b5790cd 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2" + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index b5f16b7215..587fa02f20 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2" + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 479d13fffd..0bca03bcf7 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2" + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index fba6044a34..96d0fe58b9 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.79.2", - "@tanstack/svelte-query-devtools": "^5.79.2" + "@tanstack/svelte-query": "^5.80.0", + "@tanstack/svelte-query-devtools": "^5.80.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index fa3585f4d7..804a45591b 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.2", + "@tanstack/vue-query": "^5.80.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 2b4e53f97c..995762d659 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.2", + "@tanstack/vue-query": "^5.80.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index ec2c6fea95..3b28eedeea 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.2", - "@tanstack/vue-query-devtools": "^5.79.2", + "@tanstack/vue-query": "^5.80.0", + "@tanstack/vue-query-devtools": "^5.80.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 5ef4fccf81..070a12f66d 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.2", + "@tanstack/vue-query": "^5.80.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index e9b3d60161..a007afccca 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.79.2" + "@tanstack/vue-query": "^5.80.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 75d11b39d6..8645f3e961 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.79.2", - "@tanstack/query-persist-client-core": "^5.79.2", - "@tanstack/query-sync-storage-persister": "^5.79.2", - "@tanstack/vue-query": "^5.79.2", + "@tanstack/query-core": "^5.80.0", + "@tanstack/query-persist-client-core": "^5.80.0", + "@tanstack/query-sync-storage-persister": "^5.80.0", + "@tanstack/vue-query": "^5.80.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 59b64e593a..f58b4365bf 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.79.2", - "@tanstack/vue-query-devtools": "^5.79.2", + "@tanstack/vue-query": "^5.80.0", + "@tanstack/vue-query-devtools": "^5.80.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 9c6a8b6d77..2f56af7735 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.79.2", + "version": "5.80.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 7778ecca23..b84b5e9484 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.79.2", + "version": "5.80.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 5cdc5f5d7e..3e71c72caf 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.79.2", + "version": "5.80.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 60d3efe350..187b7064ae 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.79.2", + "version": "5.80.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index f4bd3cb9ef..222c6b0250 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.79.2", + "version": "5.80.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index f94edf0ce9..0db06289ff 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.76.0", + "version": "5.80.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index d9ade1f16d..ef31ec0654 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.79.2", + "version": "5.80.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 931337582c..c5dd8cffe9 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.79.2", + "version": "5.80.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 9266afbe32..5a2852a8cf 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.79.2", + "version": "5.80.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 28d3e09515..8c8918c15c 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.79.2", + "version": "5.80.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index d939ac8421..4ba80facc4 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.79.2", + "version": "5.80.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 362f55437e..96f8a79607 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.79.2", + "version": "5.80.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 878ee97b74..cdf3e63bd7 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.79.2", + "version": "5.80.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 0fcaf27f83..911ef68ac0 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.79.2", + "version": "5.80.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 47e2f2c731..750f0b68c0 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.79.2", + "version": "5.80.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 4b03b6728b..75b7baf34b 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.79.2", + "version": "5.80.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index b6448097e5..b3bd58dde7 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.79.2", + "version": "5.80.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index cb28c63209..0a426831e4 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.79.2", + "version": "5.80.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 03f118a1ac..a219bf8181 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.79.2", + "version": "5.80.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 52b42b3487..03e56d621e 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.79.2", + "version": "5.80.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 57c6ce149b524db2a4892d23cb2e26e43d780d10 Mon Sep 17 00:00:00 2001 From: novice0840 <111696934+novice0840@users.noreply.github.com> Date: Tue, 3 Jun 2025 20:18:02 +0900 Subject: [PATCH 128/432] perf: improve performance of util function "difference" in quriesObserver.ts in query-core package (#9201) * perf: change "difference" util function * refactor: extract "new Set" function in "difference" util function --- packages/query-core/src/queriesObserver.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/query-core/src/queriesObserver.ts b/packages/query-core/src/queriesObserver.ts index c330351f06..853e490abd 100644 --- a/packages/query-core/src/queriesObserver.ts +++ b/packages/query-core/src/queriesObserver.ts @@ -10,7 +10,8 @@ import type { import type { QueryClient } from './queryClient' function difference(array1: Array, array2: Array): Array { - return array1.filter((x) => !array2.includes(x)) + const excludeSet = new Set(array2) + return array1.filter((x) => !excludeSet.has(x)) } function replaceAt(array: Array, index: number, value: T): Array { From 9c6fb061a5f09c36f39876f48649a1a82cdc8db7 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 3 Jun 2025 11:23:36 +0000 Subject: [PATCH 129/432] release: v5.80.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 383a09f8ff..9b875e88e0 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index be4c32ea8d..455ef995b7 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.80.0", + "@tanstack/query-sync-storage-persister": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index db30868cdf..9fe4386947 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 592996095f..a919f7b64d 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-devtools-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 3209c4f621..ce067f1dbb 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index f35b09721b..b38cc4cf1b 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index c6b542698c..3b40cd5484 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index c56a37af5d..36c1fe58e7 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index f6aae7b462..0d35645bcf 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index bd3b976102..92babecca3 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 17bd286fc8..a264823702 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.0", + "@tanstack/angular-query-experimental": "^5.80.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 1e15da987d..8d65a2d256 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 04401149d8..81c4a3d638 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index efdaded2bb..6166653df4 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index a530be036e..166f13556e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.0", - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", - "@tanstack/react-query-persist-client": "^5.80.0", + "@tanstack/query-sync-storage-persister": "^5.80.1", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query-persist-client": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 03921ec0ef..d4a040d1bd 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 5b2c18b2da..dce11601b0 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 85f960bd1a..188e7585fc 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index d4f54893dd..fee8f94949 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.0", - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", - "@tanstack/react-query-persist-client": "^5.80.0", + "@tanstack/query-sync-storage-persister": "^5.80.1", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query-persist-client": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index d16ce0ba25..bfdc1962d8 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index d0262508d0..af385ebf18 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index a841dfe5da..bd46a084bc 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 5abf3240a9..8e4963f160 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", - "@tanstack/react-query-next-experimental": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query-next-experimental": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index f2288ef3e0..177348e45e 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 6211e9d2bd..0790085bc5 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.0", + "@tanstack/query-sync-storage-persister": "^5.80.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", - "@tanstack/react-query-persist-client": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query-persist-client": "^5.80.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index b01b6d9ff3..e5863ca597 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 2a0d117811..c6cbd29166 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index c1ea193efa..270a6750b5 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 8b0ce0dea2..472d6b814c 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index b0be3a00ee..921c4d036f 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 69e06e2dcc..161eaae842 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index a162fc3a19..9ef721f413 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 82cf470142..1fa57c7410 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 64668bf846..ba0cfc9722 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 8edfb7ee79..dbcdddf310 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 6b0e699867..9033a03cb6 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index e0e2e7bf0f..f80a839eb2 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.0", - "@tanstack/react-query-devtools": "^5.80.0", + "@tanstack/react-query": "^5.80.1", + "@tanstack/react-query-devtools": "^5.80.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 137013ab23..47799dc4a4 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.80.0", - "@tanstack/solid-query-devtools": "^5.80.0", + "@tanstack/solid-query": "^5.80.1", + "@tanstack/solid-query-devtools": "^5.80.1", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 93182b0cb3..5fe8c494f3 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.0", - "@tanstack/solid-query-devtools": "^5.80.0", + "@tanstack/solid-query": "^5.80.1", + "@tanstack/solid-query-devtools": "^5.80.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 7762b77302..0de0091873 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.0", - "@tanstack/solid-query-devtools": "^5.80.0", + "@tanstack/solid-query": "^5.80.1", + "@tanstack/solid-query-devtools": "^5.80.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 755b894ccb..64edb16ded 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.0", - "@tanstack/solid-query-devtools": "^5.80.0", + "@tanstack/solid-query": "^5.80.1", + "@tanstack/solid-query-devtools": "^5.80.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index f5684092da..68b68b18c8 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.0", - "@tanstack/solid-query-devtools": "^5.80.0", + "@tanstack/solid-query": "^5.80.1", + "@tanstack/solid-query-devtools": "^5.80.1", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index e776d511b8..bff2f90b78 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.80.0", - "@tanstack/solid-query-devtools": "^5.80.0", + "@tanstack/solid-query": "^5.80.1", + "@tanstack/solid-query-devtools": "^5.80.1", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 672cc118a9..6f5ce4ccd8 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0" + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index db8661ac99..80df889734 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.0", - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0", - "@tanstack/svelte-query-persist-client": "^5.80.0" + "@tanstack/query-sync-storage-persister": "^5.80.1", + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1", + "@tanstack/svelte-query-persist-client": "^5.80.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index d13057cd45..5d725006a8 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0" + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 982525f0c8..3a83bf5b94 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0" + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 092b5790cd..83811bf8e0 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0" + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 587fa02f20..f48e492c37 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0" + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 0bca03bcf7..5e43610529 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0" + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 96d0fe58b9..90df23cdc3 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.0", - "@tanstack/svelte-query-devtools": "^5.80.0" + "@tanstack/svelte-query": "^5.80.1", + "@tanstack/svelte-query-devtools": "^5.80.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 804a45591b..f64bef9d2d 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.0", + "@tanstack/vue-query": "^5.80.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 995762d659..3a471a240b 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.0", + "@tanstack/vue-query": "^5.80.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 3b28eedeea..252df84188 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.0", - "@tanstack/vue-query-devtools": "^5.80.0", + "@tanstack/vue-query": "^5.80.1", + "@tanstack/vue-query-devtools": "^5.80.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 070a12f66d..787f8c4225 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.0", + "@tanstack/vue-query": "^5.80.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index a007afccca..384cd85aad 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.0" + "@tanstack/vue-query": "^5.80.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 8645f3e961..94d9c690a3 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.80.0", - "@tanstack/query-persist-client-core": "^5.80.0", - "@tanstack/query-sync-storage-persister": "^5.80.0", - "@tanstack/vue-query": "^5.80.0", + "@tanstack/query-core": "^5.80.1", + "@tanstack/query-persist-client-core": "^5.80.1", + "@tanstack/query-sync-storage-persister": "^5.80.1", + "@tanstack/vue-query": "^5.80.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index f58b4365bf..73c1e90c99 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.0", - "@tanstack/vue-query-devtools": "^5.80.0", + "@tanstack/vue-query": "^5.80.1", + "@tanstack/vue-query-devtools": "^5.80.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 2f56af7735..76eb3b0b5e 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.0", + "version": "5.80.1", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index b84b5e9484..002077c5ca 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.0", + "version": "5.80.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 3e71c72caf..d82ab87e8e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.80.0", + "version": "5.80.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 187b7064ae..5c3e4953b3 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.80.0", + "version": "5.80.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 222c6b0250..fd14014850 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.80.0", + "version": "5.80.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index ef31ec0654..ef170eb641 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.80.0", + "version": "5.80.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index c5dd8cffe9..c1547f02ec 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.80.0", + "version": "5.80.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 5a2852a8cf..c04ecea3a1 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.0", + "version": "5.80.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 8c8918c15c..4c620bea6e 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.0", + "version": "5.80.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 4ba80facc4..a2f305a8fa 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.0", + "version": "5.80.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 96f8a79607..32cbd49424 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.0", + "version": "5.80.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index cdf3e63bd7..a3baa7ab60 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.80.0", + "version": "5.80.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 911ef68ac0..ebcc7c2846 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.80.0", + "version": "5.80.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 750f0b68c0..61a22db121 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.80.0", + "version": "5.80.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 75b7baf34b..0cdb9be804 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.80.0", + "version": "5.80.1", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index b3bd58dde7..e31a6f3bfe 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.80.0", + "version": "5.80.1", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 0a426831e4..cd98ac280d 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.80.0", + "version": "5.80.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index a219bf8181..bb648bbc21 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.0", + "version": "5.80.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 03e56d621e..b15734568c 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.0", + "version": "5.80.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 5e3cd46aaabb7ef7c42670d9867aac35d2620117 Mon Sep 17 00:00:00 2001 From: Jongwan Lee Date: Tue, 3 Jun 2025 21:04:18 +0900 Subject: [PATCH 130/432] fix(query-core): correct error handling in tryResolveSync function (#9206) --- packages/query-core/src/thenable.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-core/src/thenable.ts b/packages/query-core/src/thenable.ts index c8308b4888..5e54411ea2 100644 --- a/packages/query-core/src/thenable.ts +++ b/packages/query-core/src/thenable.ts @@ -98,7 +98,7 @@ export function tryResolveSync(promise: Promise | Thenable) { .then((result) => { data = result return result - }) + }, noop) // .catch can be unavailable on certain kinds of thenable's // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition ?.catch(noop) From 37eda0d7d9884fef95a6c349b8be15c6846fc07d Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 3 Jun 2025 12:08:50 +0000 Subject: [PATCH 131/432] release: v5.80.2 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 9b875e88e0..ea68ecb9d5 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 455ef995b7..8c01491417 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.80.1", + "@tanstack/query-sync-storage-persister": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 9fe4386947..05144d5f10 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index a919f7b64d..fa777a1908 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.1", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-devtools-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index ce067f1dbb..65b2e59145 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index b38cc4cf1b..7b6d766ef6 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 3b40cd5484..b4e28b83c4 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 36c1fe58e7..d29f2aaaec 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 0d35645bcf..f1668280e0 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 92babecca3..c23dfdb81b 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index a264823702..dae854fcac 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.1", + "@tanstack/angular-query-experimental": "^5.80.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 8d65a2d256..2cace82d9c 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 81c4a3d638..299f7e6187 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 6166653df4..2ad58cdaf4 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 166f13556e..f350e3a5d6 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.1", - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", - "@tanstack/react-query-persist-client": "^5.80.1", + "@tanstack/query-sync-storage-persister": "^5.80.2", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query-persist-client": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index d4a040d1bd..2738a5a0b4 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index dce11601b0..0d6abc656c 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 188e7585fc..86ea381d2a 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index fee8f94949..2ed898bf79 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.1", - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", - "@tanstack/react-query-persist-client": "^5.80.1", + "@tanstack/query-sync-storage-persister": "^5.80.2", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query-persist-client": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index bfdc1962d8..fd8f3f7d67 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index af385ebf18..77e591f6f4 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index bd46a084bc..483fa88cf8 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 8e4963f160..1ad18f54de 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", - "@tanstack/react-query-next-experimental": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query-next-experimental": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 177348e45e..1ef71a757d 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 0790085bc5..dbfdcc54ef 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.1", + "@tanstack/query-sync-storage-persister": "^5.80.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", - "@tanstack/react-query-persist-client": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query-persist-client": "^5.80.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index e5863ca597..c87e36f3d1 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index c6cbd29166..fc5b142d7e 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 270a6750b5..a3c02fd6ba 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 472d6b814c..169ff92b94 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 921c4d036f..49dea35310 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 161eaae842..7848be7bdd 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 9ef721f413..fc2e83b54e 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 1fa57c7410..2cdc7ad576 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index ba0cfc9722..6b55f7aaf0 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index dbcdddf310..d2921a6691 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 9033a03cb6..b0b6533c82 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index f80a839eb2..f21f320109 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.1", - "@tanstack/react-query-devtools": "^5.80.1", + "@tanstack/react-query": "^5.80.2", + "@tanstack/react-query-devtools": "^5.80.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 47799dc4a4..e3ff56b2fa 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.80.1", - "@tanstack/solid-query-devtools": "^5.80.1", + "@tanstack/solid-query": "^5.80.2", + "@tanstack/solid-query-devtools": "^5.80.2", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 5fe8c494f3..bd2782020f 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.1", - "@tanstack/solid-query-devtools": "^5.80.1", + "@tanstack/solid-query": "^5.80.2", + "@tanstack/solid-query-devtools": "^5.80.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 0de0091873..86183a5cb2 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.1", - "@tanstack/solid-query-devtools": "^5.80.1", + "@tanstack/solid-query": "^5.80.2", + "@tanstack/solid-query-devtools": "^5.80.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 64edb16ded..08e89f4439 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.1", - "@tanstack/solid-query-devtools": "^5.80.1", + "@tanstack/solid-query": "^5.80.2", + "@tanstack/solid-query-devtools": "^5.80.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 68b68b18c8..ee13733d82 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.1", - "@tanstack/solid-query-devtools": "^5.80.1", + "@tanstack/solid-query": "^5.80.2", + "@tanstack/solid-query-devtools": "^5.80.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index bff2f90b78..71889bdcf6 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.80.1", - "@tanstack/solid-query-devtools": "^5.80.1", + "@tanstack/solid-query": "^5.80.2", + "@tanstack/solid-query-devtools": "^5.80.2", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 6f5ce4ccd8..8a1469154c 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1" + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 80df889734..fd36ef3daf 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.1", - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1", - "@tanstack/svelte-query-persist-client": "^5.80.1" + "@tanstack/query-sync-storage-persister": "^5.80.2", + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2", + "@tanstack/svelte-query-persist-client": "^5.80.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 5d725006a8..29f5cb5688 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1" + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 3a83bf5b94..da5e14bbc0 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1" + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 83811bf8e0..6a0f9780c2 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1" + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index f48e492c37..52fab2ee56 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1" + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 5e43610529..eff3ee0262 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1" + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 90df23cdc3..b67af7ed73 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.1", - "@tanstack/svelte-query-devtools": "^5.80.1" + "@tanstack/svelte-query": "^5.80.2", + "@tanstack/svelte-query-devtools": "^5.80.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index f64bef9d2d..fbc8e8a17a 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.1", + "@tanstack/vue-query": "^5.80.2", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 3a471a240b..1a63ca6809 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.1", + "@tanstack/vue-query": "^5.80.2", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 252df84188..55d13caf5c 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.1", - "@tanstack/vue-query-devtools": "^5.80.1", + "@tanstack/vue-query": "^5.80.2", + "@tanstack/vue-query-devtools": "^5.80.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 787f8c4225..1518b52cf9 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.1", + "@tanstack/vue-query": "^5.80.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 384cd85aad..1e689a8cae 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.1" + "@tanstack/vue-query": "^5.80.2" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 94d9c690a3..2ac9301fdd 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.80.1", - "@tanstack/query-persist-client-core": "^5.80.1", - "@tanstack/query-sync-storage-persister": "^5.80.1", - "@tanstack/vue-query": "^5.80.1", + "@tanstack/query-core": "^5.80.2", + "@tanstack/query-persist-client-core": "^5.80.2", + "@tanstack/query-sync-storage-persister": "^5.80.2", + "@tanstack/vue-query": "^5.80.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 73c1e90c99..751f179a88 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.1", - "@tanstack/vue-query-devtools": "^5.80.1", + "@tanstack/vue-query": "^5.80.2", + "@tanstack/vue-query-devtools": "^5.80.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 76eb3b0b5e..eb22bd2209 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.1", + "version": "5.80.2", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 002077c5ca..187818727a 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.1", + "version": "5.80.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index d82ab87e8e..439a6d34cb 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.80.1", + "version": "5.80.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 5c3e4953b3..40cfee8cbf 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.80.1", + "version": "5.80.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index fd14014850..8b246e9505 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.80.1", + "version": "5.80.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index ef170eb641..444f6b5a20 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.80.1", + "version": "5.80.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index c1547f02ec..49b3c9ef71 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.80.1", + "version": "5.80.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index c04ecea3a1..9bced2004b 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.1", + "version": "5.80.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 4c620bea6e..8129d3e76c 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.1", + "version": "5.80.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index a2f305a8fa..1db743c52c 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.1", + "version": "5.80.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 32cbd49424..f904ccec7f 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.1", + "version": "5.80.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index a3baa7ab60..442bc53e0f 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.80.1", + "version": "5.80.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index ebcc7c2846..408fd16d6f 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.80.1", + "version": "5.80.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 61a22db121..82fe6ff98a 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.80.1", + "version": "5.80.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 0cdb9be804..0c2d5171a1 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.80.1", + "version": "5.80.2", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index e31a6f3bfe..b43b6fdf67 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.80.1", + "version": "5.80.2", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index cd98ac280d..4ea5d51f2b 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.80.1", + "version": "5.80.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index bb648bbc21..b3cd034bb8 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.1", + "version": "5.80.2", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index b15734568c..02597f6896 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.1", + "version": "5.80.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 058bfc9735257f2a5bcc450ab5d04ea2013bb824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A9=94=ED=83=80=EB=AA=BD=EB=8B=AE=EC=9D=8C?= Date: Wed, 4 Jun 2025 01:20:14 +0900 Subject: [PATCH 132/432] docs(contributing): update pnpm version and fix typo (#9243) --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ecdb0b86e3..403242f96c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ If you have been assigned to fix an issue or develop a new feature, please follo pnpm install ``` - - We use [pnpm](https://pnpm.io/) v9 for package management (run in case of pnpm-related issues). + - We use [pnpm](https://pnpm.io/) v10 for package management (run in case of pnpm-related issues). ```bash corepack enable && corepack prepare @@ -57,7 +57,7 @@ If you have been assigned to fix an issue or develop a new feature, please follo The documentations for all the TanStack projects are hosted on [tanstack.com](https://tanstack.com), which is a TanStack Start application (https://github.com/TanStack/tanstack.com). You need to run this app locally to preview your changes in the `TanStack/query` docs. > [!NOTE] -> The website fetches the doc pages from GitHub in production, and searches for them at `../query/docs` in development. Your local clone of `TanStack/query` needs to be in the same directory as the local clone of `TansStack/tanstack.com`. +> The website fetches the doc pages from GitHub in production, and searches for them at `../query/docs` in development. Your local clone of `TanStack/query` needs to be in the same directory as the local clone of `TanStack/tanstack.com`. You can follow these steps to set up the docs for local development: From 0d2c2e0fb27e6b837f3ddbe141f834663d04934e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Wed, 4 Jun 2025 11:44:20 +0200 Subject: [PATCH 133/432] fix(react-query): move hydrationQueue from state to a derived value (#9247) --- .../react-query/src/HydrationBoundary.tsx | 92 +++++++++---------- 1 file changed, 41 insertions(+), 51 deletions(-) diff --git a/packages/react-query/src/HydrationBoundary.tsx b/packages/react-query/src/HydrationBoundary.tsx index f60ffaf292..4a6c825933 100644 --- a/packages/react-query/src/HydrationBoundary.tsx +++ b/packages/react-query/src/HydrationBoundary.tsx @@ -29,9 +29,6 @@ export const HydrationBoundary = ({ queryClient, }: HydrationBoundaryProps) => { const client = useQueryClient(queryClient) - const [hydrationQueue, setHydrationQueue] = React.useState< - DehydratedState['queries'] | undefined - >() const optionsRef = React.useRef(options) optionsRef.current = options @@ -51,66 +48,59 @@ export const HydrationBoundary = ({ // If the transition is aborted, we will have hydrated any _new_ queries, but // we throw away the fresh data for any existing ones to avoid unexpectedly // updating the UI. - React.useMemo(() => { - if (state) { - if (typeof state !== 'object') { - return - } - - const queryCache = client.getQueryCache() - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - const queries = (state as DehydratedState).queries || [] - - const newQueries: DehydratedState['queries'] = [] - const existingQueries: DehydratedState['queries'] = [] - for (const dehydratedQuery of queries) { - const existingQuery = queryCache.get(dehydratedQuery.queryHash) + const hydrationQueue: DehydratedState['queries'] | undefined = + React.useMemo(() => { + if (state) { + if (typeof state !== 'object') { + return + } - if (!existingQuery) { - newQueries.push(dehydratedQuery) - } else { - const hydrationIsNewer = - dehydratedQuery.state.dataUpdatedAt > - existingQuery.state.dataUpdatedAt || - (dehydratedQuery.promise && - existingQuery.state.status !== 'pending' && - existingQuery.state.fetchStatus !== 'fetching' && - dehydratedQuery.dehydratedAt !== undefined && - dehydratedQuery.dehydratedAt > existingQuery.state.dataUpdatedAt) + const queryCache = client.getQueryCache() + // State is supplied from the outside and we might as well fail + // gracefully if it has the wrong shape, so while we type `queries` + // as required, we still provide a fallback. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + const queries = (state as DehydratedState).queries || [] - const queryAlreadyQueued = hydrationQueue?.find( - (query) => query.queryHash === dehydratedQuery.queryHash, - ) + const newQueries: DehydratedState['queries'] = [] + const existingQueries: DehydratedState['queries'] = [] + for (const dehydratedQuery of queries) { + const existingQuery = queryCache.get(dehydratedQuery.queryHash) - if ( - hydrationIsNewer && - (!queryAlreadyQueued || + if (!existingQuery) { + newQueries.push(dehydratedQuery) + } else { + const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > - queryAlreadyQueued.state.dataUpdatedAt) - ) { - existingQueries.push(dehydratedQuery) + existingQuery.state.dataUpdatedAt || + (dehydratedQuery.promise && + existingQuery.state.status !== 'pending' && + existingQuery.state.fetchStatus !== 'fetching' && + dehydratedQuery.dehydratedAt !== undefined && + dehydratedQuery.dehydratedAt > + existingQuery.state.dataUpdatedAt) + + if (hydrationIsNewer) { + existingQueries.push(dehydratedQuery) + } } } - } - if (newQueries.length > 0) { - // It's actually fine to call this with queries/state that already exists - // in the cache, or is older. hydrate() is idempotent for queries. - hydrate(client, { queries: newQueries }, optionsRef.current) - } - if (existingQueries.length > 0) { - // eslint-disable-next-line react-hooks/react-compiler - setHydrationQueue((prev) => - prev ? [...prev, ...existingQueries] : existingQueries, - ) + if (newQueries.length > 0) { + // It's actually fine to call this with queries/state that already exists + // in the cache, or is older. hydrate() is idempotent for queries. + hydrate(client, { queries: newQueries }, optionsRef.current) + } + if (existingQueries.length > 0) { + return existingQueries + } } - } - }, [client, hydrationQueue, state]) + return undefined + }, [client, state]) React.useEffect(() => { if (hydrationQueue) { hydrate(client, { queries: hydrationQueue }, optionsRef.current) - setHydrationQueue(undefined) } }, [client, hydrationQueue]) From 4f4c2c7540d8c11be2e99e312b3ebc4ca7531a81 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 4 Jun 2025 09:49:05 +0000 Subject: [PATCH 134/432] release: v5.80.3 --- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- 30 files changed, 60 insertions(+), 60 deletions(-) diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 2cace82d9c..0fd129da23 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 299f7e6187..b934cf1d3f 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 2ad58cdaf4..769f20bffd 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index f350e3a5d6..0b65d41edb 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.80.2", - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", - "@tanstack/react-query-persist-client": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query-persist-client": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 2738a5a0b4..5f9936bfaf 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 0d6abc656c..e4e0b897ff 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 86ea381d2a..851a66d24e 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 2ed898bf79..b3f9bb724b 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.80.2", - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", - "@tanstack/react-query-persist-client": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query-persist-client": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index fd8f3f7d67..84afb890fd 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 77e591f6f4..3f85a916a0 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 483fa88cf8..f3b4386088 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 1ad18f54de..4cb8ce1e41 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", - "@tanstack/react-query-next-experimental": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query-next-experimental": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 1ef71a757d..2b07cb8dbe 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index dbfdcc54ef..af1e3e7ae8 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-sync-storage-persister": "^5.80.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", - "@tanstack/react-query-persist-client": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query-persist-client": "^5.80.3", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index c87e36f3d1..ecc1f1682c 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index fc5b142d7e..da9d8344ce 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index a3c02fd6ba..bf9cb33af9 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 169ff92b94..80e8c357fb 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 49dea35310..a76c105a5a 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 7848be7bdd..e131167541 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index fc2e83b54e..ca3615ea0d 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 2cdc7ad576..56d03bbc6e 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 6b55f7aaf0..b6ba04182a 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index d2921a6691..1b9a244bd7 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index b0b6533c82..e7ca55a29a 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index f21f320109..61b85de288 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.2", - "@tanstack/react-query-devtools": "^5.80.2", + "@tanstack/react-query": "^5.80.3", + "@tanstack/react-query-devtools": "^5.80.3", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 9bced2004b..2bfd27f1fa 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.2", + "version": "5.80.3", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 8129d3e76c..6287ab9786 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.2", + "version": "5.80.3", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 1db743c52c..4b88233233 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.2", + "version": "5.80.3", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index f904ccec7f..dd79a1c57c 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.2", + "version": "5.80.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", From 838acecbe5f1bed62ccc40a730b47698ffe1305a Mon Sep 17 00:00:00 2001 From: Jinhyun Park Date: Wed, 4 Jun 2025 18:55:46 +0900 Subject: [PATCH 135/432] docs(readme): replace invalid _build image paths with public asset URLs (#9248) - Replaced sponsor image paths that pointed to `_build/assets/...` (invalid in GitHub markdown context) - Updated to use public URLs (`https://tanstack.com/assets/...`) to prevent broken images --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 762b355e75..3f4fa2bd4f 100644 --- a/README.md +++ b/README.md @@ -50,16 +50,16 @@ Still on **React Query v4**? No problem! Check out the v4 docs here: https://tan Speakeasy Logo From fc92ef9fa32e1201e4b6f77afe8b46fde2bb5fd0 Mon Sep 17 00:00:00 2001 From: Damian Osipiuk Date: Wed, 4 Jun 2025 20:18:05 +0200 Subject: [PATCH 136/432] fix(vue-query): make vue-query client compatible with query-core (#9250) * fix(vue-query): make vue-query client compatible with query-core * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../src/__tests__/vueQueryPlugin.test.ts | 12 ++++---- packages/vue-query/src/queryClient.ts | 2 +- packages/vue-query/src/useBaseQuery.ts | 28 +++++++++-------- packages/vue-query/src/useQueries.ts | 30 ++++++++++--------- packages/vue-query/src/vueQueryPlugin.ts | 8 +++-- 5 files changed, 44 insertions(+), 36 deletions(-) diff --git a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts index 3644494b03..a47ae191ee 100644 --- a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts +++ b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts @@ -269,11 +269,11 @@ describe('VueQueryPlugin', () => { ], }) - expect(customClient.isRestoring.value).toBeTruthy() + expect(customClient.isRestoring?.value).toBeTruthy() await sleep(0) - expect(customClient.isRestoring.value).toBeFalsy() + expect(customClient.isRestoring?.value).toBeFalsy() }) test('should delay useQuery subscription and not call fetcher if data is not stale', async () => { @@ -311,14 +311,14 @@ describe('VueQueryPlugin', () => { customClient, ) - expect(customClient.isRestoring.value).toBeTruthy() + expect(customClient.isRestoring?.value).toBeTruthy() expect(query.isFetching.value).toBeFalsy() expect(query.data.value).toStrictEqual(undefined) expect(fnSpy).toHaveBeenCalledTimes(0) await sleep(0) - expect(customClient.isRestoring.value).toBeFalsy() + expect(customClient.isRestoring?.value).toBeFalsy() expect(query.data.value).toStrictEqual({ foo: 'bar' }) expect(fnSpy).toHaveBeenCalledTimes(0) }) @@ -373,7 +373,7 @@ describe('VueQueryPlugin', () => { customClient, ) - expect(customClient.isRestoring.value).toBeTruthy() + expect(customClient.isRestoring?.value).toBeTruthy() expect(query.isFetching.value).toBeFalsy() expect(query.data.value).toStrictEqual(undefined) @@ -384,7 +384,7 @@ describe('VueQueryPlugin', () => { await sleep(0) - expect(customClient.isRestoring.value).toBeFalsy() + expect(customClient.isRestoring?.value).toBeFalsy() expect(query.data.value).toStrictEqual({ foo1: 'bar1' }) expect(queries.value[0].data).toStrictEqual({ foo2: 'bar2' }) expect(fnSpy).toHaveBeenCalledTimes(0) diff --git a/packages/vue-query/src/queryClient.ts b/packages/vue-query/src/queryClient.ts index dc0bff131d..2dfc53e803 100644 --- a/packages/vue-query/src/queryClient.ts +++ b/packages/vue-query/src/queryClient.ts @@ -44,7 +44,7 @@ export class QueryClient extends QC { super(vueQueryConfig) } - isRestoring: Ref = ref(false) + isRestoring?: Ref = ref(false) isFetching(filters: MaybeRefDeep = {}): number { return super.isFetching(cloneDeepUnref(filters)) diff --git a/packages/vue-query/src/useBaseQuery.ts b/packages/vue-query/src/useBaseQuery.ts index 65a988ee03..1b6786837b 100644 --- a/packages/vue-query/src/useBaseQuery.ts +++ b/packages/vue-query/src/useBaseQuery.ts @@ -93,7 +93,7 @@ export function useBaseQuery< TQueryKey > = client.defaultQueryOptions(clonedOptions) - defaulted._optimisticResults = client.isRestoring.value + defaulted._optimisticResults = client.isRestoring?.value ? 'isRestoring' : 'optimistic' @@ -110,18 +110,20 @@ export function useBaseQuery< // noop } - watch( - client.isRestoring, - (isRestoring) => { - if (!isRestoring) { - unsubscribe() - unsubscribe = observer.subscribe((result) => { - updateState(state, result) - }) - } - }, - { immediate: true }, - ) + if (client.isRestoring) { + watch( + client.isRestoring, + (isRestoring) => { + if (!isRestoring) { + unsubscribe() + unsubscribe = observer.subscribe((result) => { + updateState(state, result) + }) + } + }, + { immediate: true }, + ) + } const updater = () => { observer.setOptions(defaultedOptions.value) diff --git a/packages/vue-query/src/useQueries.ts b/packages/vue-query/src/useQueries.ts index 04edb91e4a..48af3dfa98 100644 --- a/packages/vue-query/src/useQueries.ts +++ b/packages/vue-query/src/useQueries.ts @@ -274,7 +274,7 @@ export function useQueries< } const defaulted = client.defaultQueryOptions(clonedOptions) - defaulted._optimisticResults = client.isRestoring.value + defaulted._optimisticResults = client.isRestoring?.value ? 'isRestoring' : 'optimistic' @@ -317,20 +317,22 @@ export function useQueries< // noop } - watch( - client.isRestoring, - (isRestoring) => { - if (!isRestoring) { - unsubscribe() - unsubscribe = observer.subscribe(() => { - state.value = getOptimisticResult() - }) + if (client.isRestoring) { + watch( + client.isRestoring, + (isRestoring) => { + if (!isRestoring) { + unsubscribe() + unsubscribe = observer.subscribe(() => { + state.value = getOptimisticResult() + }) - state.value = getOptimisticResult() - } - }, - { immediate: true }, - ) + state.value = getOptimisticResult() + } + }, + { immediate: true }, + ) + } watch(defaultedQueries, (queriesValue) => { observer.setQueries( diff --git a/packages/vue-query/src/vueQueryPlugin.ts b/packages/vue-query/src/vueQueryPlugin.ts index 04d254ffdb..590d994d30 100644 --- a/packages/vue-query/src/vueQueryPlugin.ts +++ b/packages/vue-query/src/vueQueryPlugin.ts @@ -47,11 +47,15 @@ export const VueQueryPlugin = { } if (options.clientPersister) { - client.isRestoring.value = true + if (client.isRestoring) { + client.isRestoring.value = true + } const [unmount, promise] = options.clientPersister(client) persisterUnmount = unmount promise.then(() => { - client.isRestoring.value = false + if (client.isRestoring) { + client.isRestoring.value = false + } options.clientPersisterOnSuccess?.(client) }) } From baaa3104d2b9e753e8308023f237c52d1db37323 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 4 Jun 2025 18:20:29 +0000 Subject: [PATCH 137/432] release: v5.80.4 --- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 2 +- examples/vue/simple/package.json | 4 ++-- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index fbc8e8a17a..8502ececa6 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.2", + "@tanstack/vue-query": "^5.80.4", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 1a63ca6809..ca44cd75f0 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.2", + "@tanstack/vue-query": "^5.80.4", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 55d13caf5c..de00987f90 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.2", - "@tanstack/vue-query-devtools": "^5.80.2", + "@tanstack/vue-query": "^5.80.4", + "@tanstack/vue-query-devtools": "^5.80.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 1518b52cf9..f6d5ec747b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.2", + "@tanstack/vue-query": "^5.80.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 1e689a8cae..d375e448a7 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.2" + "@tanstack/vue-query": "^5.80.4" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 2ac9301fdd..941eb688a6 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -11,7 +11,7 @@ "@tanstack/query-core": "^5.80.2", "@tanstack/query-persist-client-core": "^5.80.2", "@tanstack/query-sync-storage-persister": "^5.80.2", - "@tanstack/vue-query": "^5.80.2", + "@tanstack/vue-query": "^5.80.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 751f179a88..e768ff9dc6 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.2", - "@tanstack/vue-query-devtools": "^5.80.2", + "@tanstack/vue-query": "^5.80.4", + "@tanstack/vue-query-devtools": "^5.80.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index b3cd034bb8..da55c1b1a4 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.2", + "version": "5.80.4", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 02597f6896..acd0b91534 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.2", + "version": "5.80.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 9e0e60c7f0d1c6c6ac9981401ebfd5a00e337537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Klomp?= Date: Wed, 4 Jun 2025 20:37:26 +0200 Subject: [PATCH 138/432] fix(experimental_createQueryPersister): Change persisterRestoreAll to restoreQueries with filter support (#9230) * Add persisterRestoreByKey * Fix imports * Add missing return statement * Fix test * docs * Add extra test * Merge into single restoreQueries function --- .../react/plugins/createPersister.md | 13 ++- packages/query-core/src/index.ts | 1 + .../src/__tests__/createPersister.test.ts | 100 +++++++++++++++++- .../src/createPersister.ts | 38 +++++-- 4 files changed, 134 insertions(+), 18 deletions(-) diff --git a/docs/framework/react/plugins/createPersister.md b/docs/framework/react/plugins/createPersister.md index 58ae5d7aae..f09d3861f5 100644 --- a/docs/framework/react/plugins/createPersister.md +++ b/docs/framework/react/plugins/createPersister.md @@ -111,10 +111,17 @@ This function can be used to sporadically clean up stoage from `expired`, `buste For this function to work, your storage must expose `entries` method that would return a `key-value tuple array`. For example `Object.entries(localStorage)` for `localStorage` or `entries` from `idb-keyval`. -### `persisterRestoreAll(queryClient: QueryClient): Promise` +### `restoreQueries(queryClient: QueryClient, filters): Promise` -This function can be used to restore all queries that are currently stored by persister in one go. -For example when your app is starting up in offline mode, or you want data from previous session to be immediately available without intermediate `loading` state. +This function can be used to restore queries that are currently stored by persister. +For example when your app is starting up in offline mode, or you want all or only specific data from previous session to be immediately available without intermediate `loading` state. + +The filter object supports the following properties: + +- `queryKey?: QueryKey` + - Set this property to define a query key to match on. +- `exact?: boolean` + - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. For this function to work, your storage must expose `entries` method that would return a `key-value tuple array`. For example `Object.entries(localStorage)` for `localStorage` or `entries` from `idb-keyval`. diff --git a/packages/query-core/src/index.ts b/packages/query-core/src/index.ts index f9a5166636..889c8b02b7 100644 --- a/packages/query-core/src/index.ts +++ b/packages/query-core/src/index.ts @@ -15,6 +15,7 @@ export { focusManager } from './focusManager' export { onlineManager } from './onlineManager' export { hashKey, + partialMatchKey, replaceEqualDeep, isServer, matchQuery, diff --git a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts index 80bff17dc0..8d5069abfb 100644 --- a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts +++ b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts @@ -497,7 +497,7 @@ describe('createPersister', () => { }) }) - describe('persisterRestoreAll', () => { + describe('restoreQueries', () => { test('should properly clean storage from busted entries', async () => { const storage = getFreshStorage() const { persister, client, query, queryKey } = setupPersister(['foo'], { @@ -513,11 +513,11 @@ describe('createPersister', () => { expect(await storage.entries()).toHaveLength(1) - await persister.persisterRestoreAll(client) + await persister.restoreQueries(client) expect(await storage.entries()).toHaveLength(0) }) - test('should properly restore queries from cache', async () => { + test('should properly restore queries from cache without filters', async () => { const storage = getFreshStorage() const { persister, client, queryKey } = setupPersister(['foo'], { storage, @@ -530,10 +530,102 @@ describe('createPersister', () => { client.clear() expect(client.getQueryCache().getAll()).toHaveLength(0) - await persister.persisterRestoreAll(client) + await persister.restoreQueries(client) + expect(client.getQueryCache().getAll()).toHaveLength(1) + + expect(client.getQueryData(queryKey)).toEqual('foo') + }) + + test('should properly restore queries from cache', async () => { + const storage = getFreshStorage() + const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { + storage, + }) + client.setQueryData(queryKey, 'foo') + + await persister.persistQueryByKey(queryKey, client) + + expect(await storage.entries()).toHaveLength(1) + client.clear() + expect(client.getQueryCache().getAll()).toHaveLength(0) + + await persister.restoreQueries(client, { queryKey }) expect(client.getQueryCache().getAll()).toHaveLength(1) expect(client.getQueryData(queryKey)).toEqual('foo') }) + + test('should not restore queries from cache if there is no match', async () => { + const storage = getFreshStorage() + const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { + storage, + }) + client.setQueryData(queryKey, 'foo') + + await persister.persistQueryByKey(queryKey, client) + + expect(await storage.entries()).toHaveLength(1) + client.clear() + expect(client.getQueryCache().getAll()).toHaveLength(0) + + await persister.restoreQueries(client, { queryKey: ['bar'] }) + expect(client.getQueryCache().getAll()).toHaveLength(0) + }) + + test('should properly restore queries from cache with partial match', async () => { + const storage = getFreshStorage() + const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { + storage, + }) + client.setQueryData(queryKey, 'foo') + + await persister.persistQueryByKey(queryKey, client) + + expect(await storage.entries()).toHaveLength(1) + client.clear() + expect(client.getQueryCache().getAll()).toHaveLength(0) + + await persister.restoreQueries(client, { queryKey: ['foo'] }) + expect(client.getQueryCache().getAll()).toHaveLength(1) + + expect(client.getQueryData(queryKey)).toEqual('foo') + }) + + test('should not restore queries from cache with exact match if there is no match', async () => { + const storage = getFreshStorage() + const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { + storage, + }) + client.setQueryData(queryKey, 'foo') + + await persister.persistQueryByKey(queryKey, client) + + expect(await storage.entries()).toHaveLength(1) + client.clear() + expect(client.getQueryCache().getAll()).toHaveLength(0) + + await persister.restoreQueries(client, { queryKey: ['foo'], exact: true }) + expect(client.getQueryCache().getAll()).toHaveLength(0) + }) + + test('should restore queries from cache with exact match', async () => { + const storage = getFreshStorage() + const { persister, client, queryKey } = setupPersister(['foo', 'bar'], { + storage, + }) + client.setQueryData(queryKey, 'foo') + + await persister.persistQueryByKey(queryKey, client) + + expect(await storage.entries()).toHaveLength(1) + client.clear() + expect(client.getQueryCache().getAll()).toHaveLength(0) + + await persister.restoreQueries(client, { + queryKey: queryKey, + exact: true, + }) + expect(client.getQueryCache().getAll()).toHaveLength(1) + }) }) }) diff --git a/packages/query-persist-client-core/src/createPersister.ts b/packages/query-persist-client-core/src/createPersister.ts index 8eb889b1ad..63e835dec6 100644 --- a/packages/query-persist-client-core/src/createPersister.ts +++ b/packages/query-persist-client-core/src/createPersister.ts @@ -1,4 +1,4 @@ -import { matchQuery } from '@tanstack/query-core' +import { hashKey, matchQuery, partialMatchKey } from '@tanstack/query-core' import type { Query, QueryClient, @@ -240,7 +240,12 @@ export function experimental_createQueryPersister({ } } - async function persisterRestoreAll(queryClient: QueryClient) { + async function restoreQueries( + queryClient: QueryClient, + filters: Pick = {}, + ): Promise { + const { exact, queryKey } = filters + if (storage?.entries) { const entries = await storage.entries() for (const [key, value] of entries) { @@ -249,15 +254,26 @@ export function experimental_createQueryPersister({ if (isExpiredOrBusted(persistedQuery)) { await storage.removeItem(key) - } else { - queryClient.setQueryData( - persistedQuery.queryKey, - persistedQuery.state.data, - { - updatedAt: persistedQuery.state.dataUpdatedAt, - }, - ) + continue + } + + if (queryKey) { + if (exact) { + if (persistedQuery.queryHash !== hashKey(queryKey)) { + continue + } + } else if (!partialMatchKey(persistedQuery.queryKey, queryKey)) { + continue + } } + + queryClient.setQueryData( + persistedQuery.queryKey, + persistedQuery.state.data, + { + updatedAt: persistedQuery.state.dataUpdatedAt, + }, + ) } } } else if (process.env.NODE_ENV === 'development') { @@ -273,6 +289,6 @@ export function experimental_createQueryPersister({ persistQueryByKey, retrieveQuery, persisterGc, - persisterRestoreAll, + restoreQueries, } } From 2db48f44b3feadd42929178bc34d2b91f8d470e7 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 4 Jun 2025 18:43:11 +0000 Subject: [PATCH 139/432] release: v5.80.5 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index ea68ecb9d5..9731bc921d 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 8c01491417..c456eb3898 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.80.2", + "@tanstack/query-sync-storage-persister": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 05144d5f10..b1a16ff1d6 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index fa777a1908..dd14015511 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.2", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-devtools-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 65b2e59145..a9f968e21c 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 7b6d766ef6..90e6f10e58 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index b4e28b83c4..d2b9f36433 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index d29f2aaaec..50bdd4ad5a 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index f1668280e0..663a550ddb 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index c23dfdb81b..7a57511123 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index dae854fcac..92e79d1a83 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.2", + "@tanstack/angular-query-experimental": "^5.80.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 0fd129da23..1db56f0005 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index b934cf1d3f..03c640c8c4 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 769f20bffd..12cf32bf7c 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 0b65d41edb..1bf6f56c04 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.2", - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", - "@tanstack/react-query-persist-client": "^5.80.3", + "@tanstack/query-sync-storage-persister": "^5.80.5", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query-persist-client": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 5f9936bfaf..3247409bc4 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index e4e0b897ff..6238ce3bf2 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 851a66d24e..3d2ac1af88 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index b3f9bb724b..ee3fe2466d 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.2", - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", - "@tanstack/react-query-persist-client": "^5.80.3", + "@tanstack/query-sync-storage-persister": "^5.80.5", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query-persist-client": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 84afb890fd..29193c9e04 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 3f85a916a0..b67772f78a 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index f3b4386088..bc5487e687 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 4cb8ce1e41..736437bbd6 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", - "@tanstack/react-query-next-experimental": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query-next-experimental": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 2b07cb8dbe..9066e868fd 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index af1e3e7ae8..b9a39d5236 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.2", + "@tanstack/query-sync-storage-persister": "^5.80.5", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", - "@tanstack/react-query-persist-client": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query-persist-client": "^5.80.5", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index ecc1f1682c..4629e31fb6 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index da9d8344ce..3886dd1bc9 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index bf9cb33af9..91b8020a31 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 80e8c357fb..ebaf69f9f9 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index a76c105a5a..0d9f149caa 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index e131167541..9dcd25354e 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index ca3615ea0d..71d0692da7 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 56d03bbc6e..d0e37c6705 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index b6ba04182a..062204fe37 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 1b9a244bd7..31d755c113 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index e7ca55a29a..df96ab812f 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 61b85de288..ccdef788a9 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.3", - "@tanstack/react-query-devtools": "^5.80.3", + "@tanstack/react-query": "^5.80.5", + "@tanstack/react-query-devtools": "^5.80.5", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index e3ff56b2fa..bed4e0b32c 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.80.2", - "@tanstack/solid-query-devtools": "^5.80.2", + "@tanstack/solid-query": "^5.80.5", + "@tanstack/solid-query-devtools": "^5.80.5", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index bd2782020f..a345d32f0a 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.2", - "@tanstack/solid-query-devtools": "^5.80.2", + "@tanstack/solid-query": "^5.80.5", + "@tanstack/solid-query-devtools": "^5.80.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 86183a5cb2..f6d89d60b9 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.2", - "@tanstack/solid-query-devtools": "^5.80.2", + "@tanstack/solid-query": "^5.80.5", + "@tanstack/solid-query-devtools": "^5.80.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 08e89f4439..9f87c896cc 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.2", - "@tanstack/solid-query-devtools": "^5.80.2", + "@tanstack/solid-query": "^5.80.5", + "@tanstack/solid-query-devtools": "^5.80.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index ee13733d82..af960ecb16 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.2", - "@tanstack/solid-query-devtools": "^5.80.2", + "@tanstack/solid-query": "^5.80.5", + "@tanstack/solid-query-devtools": "^5.80.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 71889bdcf6..38f0c2b893 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.80.2", - "@tanstack/solid-query-devtools": "^5.80.2", + "@tanstack/solid-query": "^5.80.5", + "@tanstack/solid-query-devtools": "^5.80.5", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 8a1469154c..21d0fb67d4 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2" + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index fd36ef3daf..981deef044 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.2", - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2", - "@tanstack/svelte-query-persist-client": "^5.80.2" + "@tanstack/query-sync-storage-persister": "^5.80.5", + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5", + "@tanstack/svelte-query-persist-client": "^5.80.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 29f5cb5688..4ddb226b6e 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2" + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index da5e14bbc0..897c14ba8c 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2" + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 6a0f9780c2..48868dc168 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2" + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 52fab2ee56..7932d46735 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2" + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index eff3ee0262..aca743d924 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2" + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index b67af7ed73..eeccdeb5aa 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.2", - "@tanstack/svelte-query-devtools": "^5.80.2" + "@tanstack/svelte-query": "^5.80.5", + "@tanstack/svelte-query-devtools": "^5.80.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 8502ececa6..986ae61c24 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.4", + "@tanstack/vue-query": "^5.80.5", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index ca44cd75f0..5b721450b1 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.4", + "@tanstack/vue-query": "^5.80.5", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index de00987f90..05e08c6435 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.4", - "@tanstack/vue-query-devtools": "^5.80.4", + "@tanstack/vue-query": "^5.80.5", + "@tanstack/vue-query-devtools": "^5.80.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index f6d5ec747b..2eeac21a25 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.4", + "@tanstack/vue-query": "^5.80.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index d375e448a7..5929d0b83c 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.4" + "@tanstack/vue-query": "^5.80.5" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 941eb688a6..48c1bacb2c 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.80.2", - "@tanstack/query-persist-client-core": "^5.80.2", - "@tanstack/query-sync-storage-persister": "^5.80.2", - "@tanstack/vue-query": "^5.80.4", + "@tanstack/query-core": "^5.80.5", + "@tanstack/query-persist-client-core": "^5.80.5", + "@tanstack/query-sync-storage-persister": "^5.80.5", + "@tanstack/vue-query": "^5.80.5", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index e768ff9dc6..61d6195c14 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.4", - "@tanstack/vue-query-devtools": "^5.80.4", + "@tanstack/vue-query": "^5.80.5", + "@tanstack/vue-query-devtools": "^5.80.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index eb22bd2209..8637597dfe 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.2", + "version": "5.80.5", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 187818727a..19d9d5d9fa 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.2", + "version": "5.80.5", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 439a6d34cb..8589340f6a 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.80.2", + "version": "5.80.5", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 40cfee8cbf..fbbb07beb3 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.80.2", + "version": "5.80.5", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 8b246e9505..bf0cb1796f 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.80.2", + "version": "5.80.5", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 444f6b5a20..4d8f251429 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.80.2", + "version": "5.80.5", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 49b3c9ef71..e5a731fed6 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.80.2", + "version": "5.80.5", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 2bfd27f1fa..3842ffd018 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.3", + "version": "5.80.5", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 6287ab9786..affb145244 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.3", + "version": "5.80.5", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 4b88233233..5342b5b289 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.3", + "version": "5.80.5", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index dd79a1c57c..06990cf2a0 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.3", + "version": "5.80.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 442bc53e0f..46fea351e6 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.80.2", + "version": "5.80.5", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 408fd16d6f..2a73a67ee5 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.80.2", + "version": "5.80.5", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 82fe6ff98a..3681df59f5 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.80.2", + "version": "5.80.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 0c2d5171a1..83fba51aa7 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.80.2", + "version": "5.80.5", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index b43b6fdf67..2dba9d45e7 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.80.2", + "version": "5.80.5", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 4ea5d51f2b..9bfd231249 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.80.2", + "version": "5.80.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index da55c1b1a4..c48229a2f0 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.4", + "version": "5.80.5", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index acd0b91534..7fc4b90342 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.4", + "version": "5.80.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From dfbda9de66230e67b7e1c2f07e24eb5859ea14cb Mon Sep 17 00:00:00 2001 From: Braden Wong <13159333+braden-w@users.noreply.github.com> Date: Thu, 5 Jun 2025 09:04:37 -0400 Subject: [PATCH 140/432] refactor(types): revert narrow onSuccess/onError/onMutate/onSettled callback types to Promise | void (#9202)" (#9251) This reverts commit 982f6ca6073c68a152621772e3cd42c02150917f. --- docs/framework/react/plugins/persistQueryClient.md | 4 ++-- docs/framework/react/reference/useMutation.md | 6 +++--- docs/reference/MutationCache.md | 8 ++++---- .../src/with-persist-query-client.ts | 4 ++-- packages/query-core/src/mutationCache.ts | 8 ++++---- packages/query-core/src/query.ts | 2 +- packages/query-core/src/types.ts | 6 +++--- .../src/PersistQueryClientProvider.tsx | 4 ++-- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/framework/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md index 4cf6be9288..77e9aa5b13 100644 --- a/docs/framework/react/plugins/persistQueryClient.md +++ b/docs/framework/react/plugins/persistQueryClient.md @@ -214,12 +214,12 @@ ReactDOM.createRoot(rootElement).render( - `persistOptions: PersistQueryClientOptions` - all [options](#options) you can pass to [persistQueryClient](#persistqueryclient) minus the QueryClient itself -- `onSuccess?: () => Promise | void` +- `onSuccess?: () => Promise | unknown` - optional - will be called when the initial restore is finished - can be used to [resumePausedMutations](../../../../reference/QueryClient.md#queryclientresumepausedmutations) - if a Promise is returned, it will be awaited; restoring is seen as ongoing until then -- `onError?: () => Promise | void` +- `onError?: () => Promise | unknown` - optional - will be called when an error is thrown during restoration - if a Promise is returned, it will be awaited diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md index 80545c517e..9147c072ef 100644 --- a/docs/framework/react/reference/useMutation.md +++ b/docs/framework/react/reference/useMutation.md @@ -68,15 +68,15 @@ mutate(variables, { - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds - The value returned from this function will be passed to both the `onError` and `onSettled` functions in the event of a mutation failure and can be useful for rolling back optimistic updates. -- `onSuccess: (data: TData, variables: TVariables, context: TContext) => Promise | void` +- `onSuccess: (data: TData, variables: TVariables, context: TContext) => Promise | unknown` - Optional - This function will fire when the mutation is successful and will be passed the mutation's result. - If a promise is returned, it will be awaited and resolved before proceeding -- `onError: (err: TError, variables: TVariables, context?: TContext) => Promise | void` +- `onError: (err: TError, variables: TVariables, context?: TContext) => Promise | unknown` - Optional - This function will fire if the mutation encounters an error and will be passed the error. - If a promise is returned, it will be awaited and resolved before proceeding -- `onSettled: (data: TData, error: TError, variables: TVariables, context?: TContext) => Promise | void` +- `onSettled: (data: TData, error: TError, variables: TVariables, context?: TContext) => Promise | unknown` - Optional - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error - If a promise is returned, it will be awaited and resolved before proceeding diff --git a/docs/reference/MutationCache.md b/docs/reference/MutationCache.md index 63c9a4133f..9e8ef2e61a 100644 --- a/docs/reference/MutationCache.md +++ b/docs/reference/MutationCache.md @@ -28,19 +28,19 @@ Its available methods are: **Options** -- `onError?: (error: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | void` +- `onError?: (error: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` - Optional - This function will be called if some mutation encounters an error. - If you return a Promise from it, it will be awaited -- `onSuccess?: (data: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | void` +- `onSuccess?: (data: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` - Optional - This function will be called if some mutation is successful. - If you return a Promise from it, it will be awaited -- `onSettled?: (data: unknown | undefined, error: unknown | null, variables: unknown, context: unknown, mutation: Mutation) => Promise | void` +- `onSettled?: (data: unknown | undefined, error: unknown | null, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` - Optional - This function will be called if some mutation is settled (either successful or errored). - If you return a Promise from it, it will be awaited -- `onMutate?: (variables: unknown, mutation: Mutation) => Promise | void` +- `onMutate?: (variables: unknown, mutation: Mutation) => Promise | unknown` - Optional - This function will be called before some mutation executes. - If you return a Promise from it, it will be awaited diff --git a/packages/angular-query-persist-client/src/with-persist-query-client.ts b/packages/angular-query-persist-client/src/with-persist-query-client.ts index d6ad609c8f..ceeeed01cd 100644 --- a/packages/angular-query-persist-client/src/with-persist-query-client.ts +++ b/packages/angular-query-persist-client/src/with-persist-query-client.ts @@ -20,8 +20,8 @@ import type { PersistQueryClientFeature } from '@tanstack/angular-query-experime type PersistQueryClientOptions = { persistOptions: Omit - onSuccess?: () => Promise | void - onError?: () => Promise | void + onSuccess?: () => Promise | unknown + onError?: () => Promise | unknown } /** diff --git a/packages/query-core/src/mutationCache.ts b/packages/query-core/src/mutationCache.ts index 3739388a64..6ab95fbfed 100644 --- a/packages/query-core/src/mutationCache.ts +++ b/packages/query-core/src/mutationCache.ts @@ -16,24 +16,24 @@ interface MutationCacheConfig { variables: unknown, context: unknown, mutation: Mutation, - ) => Promise | void + ) => Promise | unknown onSuccess?: ( data: unknown, variables: unknown, context: unknown, mutation: Mutation, - ) => Promise | void + ) => Promise | unknown onMutate?: ( variables: unknown, mutation: Mutation, - ) => Promise | void + ) => Promise | unknown onSettled?: ( data: unknown | undefined, error: DefaultError | null, variables: unknown, context: unknown, mutation: Mutation, - ) => Promise | void + ) => Promise | unknown } interface NotifyEventMutationAdded extends NotifyEvent { diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index d20ec84252..8d6de1419d 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -66,7 +66,7 @@ export interface FetchContext< TData, TQueryKey extends QueryKey = QueryKey, > { - fetchFn: () => Promise | unknown + fetchFn: () => unknown | Promise fetchOptions?: FetchOptions signal: AbortSignal options: QueryOptions diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 5df30eee87..e4ed081539 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -1106,18 +1106,18 @@ export interface MutationOptions< data: TData, variables: TVariables, context: TContext, - ) => Promise | void + ) => Promise | unknown onError?: ( error: TError, variables: TVariables, context: TContext | undefined, - ) => Promise | void + ) => Promise | unknown onSettled?: ( data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined, - ) => Promise | void + ) => Promise | unknown retry?: RetryValue retryDelay?: RetryDelayValue networkMode?: NetworkMode diff --git a/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx b/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx index 808a2e7a57..b12dba8810 100644 --- a/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx +++ b/packages/react-query-persist-client/src/PersistQueryClientProvider.tsx @@ -11,8 +11,8 @@ import type { OmitKeyof, QueryClientProviderProps } from '@tanstack/react-query' export type PersistQueryClientProviderProps = QueryClientProviderProps & { persistOptions: OmitKeyof - onSuccess?: () => Promise | void - onError?: () => Promise | void + onSuccess?: () => Promise | unknown + onError?: () => Promise | unknown } export const PersistQueryClientProvider = ({ From 433599301c5eba7f2bebd1b98ebf489302e333b1 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 5 Jun 2025 13:09:53 +0000 Subject: [PATCH 141/432] release: v5.80.6 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 9731bc921d..e5cec4f3ad 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index c456eb3898..c7b8f8862e 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.80.5", + "@tanstack/query-sync-storage-persister": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index b1a16ff1d6..57f12bbb1f 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index dd14015511..0f24fb6bfd 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.5", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-devtools-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index a9f968e21c..af63f09884 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 90e6f10e58..c61fc6184c 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index d2b9f36433..ee2db1de4c 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 50bdd4ad5a..674876cb74 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 663a550ddb..993a60b82e 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 7a57511123..cb47928aa3 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 92e79d1a83..9aaaccee11 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.5", + "@tanstack/angular-query-experimental": "^5.80.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 1db56f0005..b585ad7f41 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 03c640c8c4..ae9ab84e1a 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 12cf32bf7c..95d9536f76 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1bf6f56c04..a3c1462e40 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.5", - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", - "@tanstack/react-query-persist-client": "^5.80.5", + "@tanstack/query-sync-storage-persister": "^5.80.6", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query-persist-client": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 3247409bc4..400d562398 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 6238ce3bf2..76208f17e7 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 3d2ac1af88..5a8d6fd616 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index ee3fe2466d..2f8bdd3193 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.5", - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", - "@tanstack/react-query-persist-client": "^5.80.5", + "@tanstack/query-sync-storage-persister": "^5.80.6", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query-persist-client": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 29193c9e04..9c81135e7a 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index b67772f78a..8fa109e857 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index bc5487e687..d58037ed9e 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 736437bbd6..babb91e70d 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", - "@tanstack/react-query-next-experimental": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query-next-experimental": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 9066e868fd..4acbe44a84 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index b9a39d5236..6fc5dcb70b 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.5", + "@tanstack/query-sync-storage-persister": "^5.80.6", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", - "@tanstack/react-query-persist-client": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query-persist-client": "^5.80.6", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 4629e31fb6..bdfb2228d8 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 3886dd1bc9..0a586b0253 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 91b8020a31..811f15d586 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index ebaf69f9f9..7dab15b27b 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 0d9f149caa..1a6550342f 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 9dcd25354e..20741f900a 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 71d0692da7..1201fd5b0a 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index d0e37c6705..fdf63d779f 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 062204fe37..e8642b44f2 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 31d755c113..b3e25a8e73 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index df96ab812f..04e1441d68 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index ccdef788a9..6467a27384 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.5", - "@tanstack/react-query-devtools": "^5.80.5", + "@tanstack/react-query": "^5.80.6", + "@tanstack/react-query-devtools": "^5.80.6", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index bed4e0b32c..79a8c33d1d 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.80.5", - "@tanstack/solid-query-devtools": "^5.80.5", + "@tanstack/solid-query": "^5.80.6", + "@tanstack/solid-query-devtools": "^5.80.6", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index a345d32f0a..c6d16ed416 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.5", - "@tanstack/solid-query-devtools": "^5.80.5", + "@tanstack/solid-query": "^5.80.6", + "@tanstack/solid-query-devtools": "^5.80.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index f6d89d60b9..90d653a235 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.5", - "@tanstack/solid-query-devtools": "^5.80.5", + "@tanstack/solid-query": "^5.80.6", + "@tanstack/solid-query-devtools": "^5.80.6", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 9f87c896cc..a14c629e72 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.5", - "@tanstack/solid-query-devtools": "^5.80.5", + "@tanstack/solid-query": "^5.80.6", + "@tanstack/solid-query-devtools": "^5.80.6", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index af960ecb16..9cbe947185 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.5", - "@tanstack/solid-query-devtools": "^5.80.5", + "@tanstack/solid-query": "^5.80.6", + "@tanstack/solid-query-devtools": "^5.80.6", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 38f0c2b893..7392a365ea 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.80.5", - "@tanstack/solid-query-devtools": "^5.80.5", + "@tanstack/solid-query": "^5.80.6", + "@tanstack/solid-query-devtools": "^5.80.6", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 21d0fb67d4..7529935675 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5" + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 981deef044..021b84b14c 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.5", - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5", - "@tanstack/svelte-query-persist-client": "^5.80.5" + "@tanstack/query-sync-storage-persister": "^5.80.6", + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6", + "@tanstack/svelte-query-persist-client": "^5.80.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 4ddb226b6e..b2b779785d 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5" + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 897c14ba8c..3d622b2526 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5" + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 48868dc168..157005ad3c 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5" + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 7932d46735..32029dd4fc 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5" + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index aca743d924..bfdf57e702 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5" + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index eeccdeb5aa..c5e3993c57 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.5", - "@tanstack/svelte-query-devtools": "^5.80.5" + "@tanstack/svelte-query": "^5.80.6", + "@tanstack/svelte-query-devtools": "^5.80.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 986ae61c24..53a76fe258 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.5", + "@tanstack/vue-query": "^5.80.6", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 5b721450b1..797418585d 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.5", + "@tanstack/vue-query": "^5.80.6", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 05e08c6435..636c8386ff 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.5", - "@tanstack/vue-query-devtools": "^5.80.5", + "@tanstack/vue-query": "^5.80.6", + "@tanstack/vue-query-devtools": "^5.80.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 2eeac21a25..e30609f4d3 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.5", + "@tanstack/vue-query": "^5.80.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 5929d0b83c..7ac0c8fe90 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.5" + "@tanstack/vue-query": "^5.80.6" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 48c1bacb2c..9de90cc106 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.80.5", - "@tanstack/query-persist-client-core": "^5.80.5", - "@tanstack/query-sync-storage-persister": "^5.80.5", - "@tanstack/vue-query": "^5.80.5", + "@tanstack/query-core": "^5.80.6", + "@tanstack/query-persist-client-core": "^5.80.6", + "@tanstack/query-sync-storage-persister": "^5.80.6", + "@tanstack/vue-query": "^5.80.6", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 61d6195c14..9feffec5bc 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.5", - "@tanstack/vue-query-devtools": "^5.80.5", + "@tanstack/vue-query": "^5.80.6", + "@tanstack/vue-query-devtools": "^5.80.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 8637597dfe..bb9d01e5a0 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.5", + "version": "5.80.6", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 19d9d5d9fa..3d8c81165d 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.5", + "version": "5.80.6", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 8589340f6a..17e3fc10f6 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.80.5", + "version": "5.80.6", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index fbbb07beb3..6a3491ef1c 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.80.5", + "version": "5.80.6", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index bf0cb1796f..462b10984b 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.80.5", + "version": "5.80.6", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 4d8f251429..61b202de3c 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.80.5", + "version": "5.80.6", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index e5a731fed6..ce435ee986 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.80.5", + "version": "5.80.6", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 3842ffd018..906f251da4 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.5", + "version": "5.80.6", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index affb145244..7ab44f9bc4 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.5", + "version": "5.80.6", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 5342b5b289..fba48239d5 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.5", + "version": "5.80.6", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 06990cf2a0..0866963fef 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.5", + "version": "5.80.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 46fea351e6..84b5af03d3 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.80.5", + "version": "5.80.6", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 2a73a67ee5..46fedfcb88 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.80.5", + "version": "5.80.6", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 3681df59f5..d046e280cb 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.80.5", + "version": "5.80.6", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 83fba51aa7..735054d99d 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.80.5", + "version": "5.80.6", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 2dba9d45e7..c4f4f4b98b 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.80.5", + "version": "5.80.6", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 9bfd231249..47ac38108c 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.80.5", + "version": "5.80.6", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index c48229a2f0..41f233879c 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.5", + "version": "5.80.6", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 7fc4b90342..676681eafa 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.5", + "version": "5.80.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 2b9b122b98e9eae16c8c29fd6fb720814d503526 Mon Sep 17 00:00:00 2001 From: Braden Wong <13159333+braden-w@users.noreply.github.com> Date: Thu, 5 Jun 2025 11:20:23 -0400 Subject: [PATCH 142/432] test: add callback return type tests for mutation callbacks (#9252) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "refactor(types): narrow onSuccess/onError/onMutate/onSettled callback types to Promise | void (#9202)" This reverts commit 982f6ca6073c68a152621772e3cd42c02150917f. * test: add callback return type tests for mutation callbacks Adds test coverage for mutation callback return types, inspired by the discussions and [TkDodo's comment](https://github.com/TanStack/query/pull/9245#issuecomment-2939664588 ) in #9245 and the original Promise.all() edge case identified in #9202. The original PR #9202 narrowed callback return types from `Promise | unknown` to `Promise | void`, but this broke common patterns like: ```ts onSuccess: (data) => Promise.all([ invalidateQueries(), trackAnalytics(), ]) ``` As noted in [the original discussion](https://github.com/TanStack/query/pull/9202#issuecomment-2934491122), this `Promise.all()` pattern was a legitimate use case that many users relied on. These tests ensure we support all the callback patterns that users expect: โœ… **Sync patterns**: Implicit void, explicit void, non-void returns โœ… **Async patterns**: Async functions, Promise.resolve(), Promise returns โœ… **Promise.all() patterns**: The original breaking case from #9202 โœ… **Promise.allSettled() patterns**: Additional parallel operation support โœ… **Mixed patterns**: Different callback types in same mutation โœ… **Error handling**: All patterns work in error scenarios โœ… **Return value isolation**: Callback returns don't affect mutation result * refactor(tests): remove unnecessary parameters in mutation tests * test(mutations): fix mutation test ordering with error handling and cleanup verification --------- Co-authored-by: Dominik Dorfmeister --- .../src/__tests__/mutations.test.tsx | 221 +++++++++++++++++- 1 file changed, 219 insertions(+), 2 deletions(-) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index 779daff63e..7921785fc4 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -1,7 +1,7 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' -import { MutationObserver } from '../mutationObserver' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { QueryClient } from '..' +import { MutationObserver } from '../mutationObserver' import { executeMutation } from './utils' import type { MutationState } from '../mutation' @@ -613,4 +613,221 @@ describe('mutations', () => { 'finish-B2', ]) }) + + describe('callback return types', () => { + test('should handle all sync callback patterns', async () => { + const key = queryKey() + const results: Array = [] + + await executeMutation( + queryClient, + { + mutationKey: key, + mutationFn: () => Promise.resolve('success'), + onMutate: () => { + results.push('onMutate-sync') + return { backup: 'data' } // onMutate can return context + }, + onSuccess: () => { + results.push('onSuccess-implicit-void') + // Implicit void return + }, + onError: () => { + results.push('onError-explicit-void') + return // Explicit void return + }, + onSettled: () => { + results.push('onSettled-return-value') + return 'ignored-value' // Non-void return (should be ignored) + }, + }, + 'vars', + ) + + expect(results).toEqual([ + 'onMutate-sync', + 'onSuccess-implicit-void', + 'onSettled-return-value', + ]) + }) + + test('should handle all async callback patterns', async () => { + const key = queryKey() + const results: Array = [] + + executeMutation( + queryClient, + { + mutationKey: key, + mutationFn: () => Promise.resolve('success'), + onMutate: async () => { + results.push('onMutate-async') + await sleep(1) + return { backup: 'async-data' } + }, + onSuccess: async () => { + results.push('onSuccess-async-start') + await sleep(2) + results.push('onSuccess-async-end') + // Implicit void return from async + }, + onSettled: () => { + results.push('onSettled-promise') + return Promise.resolve('also-ignored') // Promise (should be ignored) + }, + }, + 'vars', + ) + + await vi.runAllTimersAsync() + + expect(results).toEqual([ + 'onMutate-async', + 'onSuccess-async-start', + 'onSuccess-async-end', + 'onSettled-promise', + ]) + }) + + test('should handle Promise.all() and Promise.allSettled() patterns', async () => { + const key = queryKey() + const results: Array = [] + + executeMutation( + queryClient, + { + mutationKey: key, + mutationFn: () => Promise.resolve('success'), + onSuccess: () => { + results.push('onSuccess-start') + return Promise.all([ + sleep(2).then(() => results.push('invalidate-queries')), + sleep(1).then(() => results.push('track-analytics')), + ]) + }, + onSettled: () => { + results.push('onSettled-start') + return Promise.allSettled([ + sleep(1).then(() => results.push('cleanup-1')), + Promise.reject('error').catch(() => + results.push('cleanup-2-failed'), + ), + ]) + }, + }, + 'vars', + ) + + await vi.runAllTimersAsync() + + expect(results).toEqual([ + 'onSuccess-start', + 'track-analytics', + 'invalidate-queries', + 'onSettled-start', + 'cleanup-2-failed', + 'cleanup-1', + ]) + }) + + test('should handle mixed sync/async patterns and return value isolation', async () => { + const key = queryKey() + const results: Array = [] + + const mutationPromise = executeMutation( + queryClient, + { + mutationKey: key, + mutationFn: () => Promise.resolve('actual-result'), + onMutate: () => { + results.push('sync-onMutate') + return { rollback: 'data' } + }, + onSuccess: async () => { + results.push('async-onSuccess') + await sleep(1) + return 'success-return-ignored' + }, + onError: () => { + results.push('sync-onError') + return Promise.resolve('error-return-ignored') + }, + onSettled: (_data, _error, _variables, context) => { + results.push(`settled-context-${context?.rollback}`) + return Promise.all([ + Promise.resolve('cleanup-1'), + Promise.resolve('cleanup-2'), + ]) + }, + }, + 'vars', + ) + + await vi.runAllTimersAsync() + + const mutationResult = await mutationPromise + + // Verify mutation returns its own result, not callback returns + expect(mutationResult).toBe('actual-result') + console.log(results) + expect(results).toEqual([ + 'sync-onMutate', + 'async-onSuccess', + 'settled-context-data', + ]) + }) + + test('should handle error cases with all callback patterns', async () => { + const key = queryKey() + const results: Array = [] + + const newMutationError = new Error('mutation-error') + let mutationError: Error | undefined + executeMutation( + queryClient, + { + mutationKey: key, + mutationFn: () => Promise.reject(newMutationError), + onMutate: () => { + results.push('onMutate') + return { backup: 'error-data' } + }, + onSuccess: () => { + results.push('onSuccess-should-not-run') + }, + onError: async () => { + results.push('onError-async') + await sleep(1) + // Test Promise.all() in error callback + return Promise.all([ + sleep(1).then(() => results.push('error-cleanup-1')), + sleep(2).then(() => results.push('error-cleanup-2')), + ]) + }, + onSettled: (_data, _error, _variables, context) => { + results.push(`settled-error-${context?.backup}`) + return Promise.allSettled([ + Promise.resolve('settled-cleanup'), + Promise.reject('settled-error'), + ]) + }, + }, + 'vars', + ).catch((error) => { + mutationError = error + }) + + await vi.runAllTimersAsync() + + expect(results).toEqual([ + 'onMutate', + 'onError-async', + 'error-cleanup-1', + 'error-cleanup-2', + 'settled-error-error-data', + ]) + + expect(mutationError).toEqual(newMutationError) + }) + }) }) From eae7bde3282917cacf806e6024f7349eab4701cc Mon Sep 17 00:00:00 2001 From: Christina Martinez <31422523+christina-de-martinez@users.noreply.github.com> Date: Fri, 6 Jun 2025 00:14:14 -0700 Subject: [PATCH 143/432] docs: Replace accidentally-deleted content in mutations.md (#9254) Co-authored-by: christinamartinez --- docs/framework/react/guides/mutations.md | 231 ++++++++++++++++++++++- 1 file changed, 230 insertions(+), 1 deletion(-) diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md index 0b495a968c..e4a309f7ae 100644 --- a/docs/framework/react/guides/mutations.md +++ b/docs/framework/react/guides/mutations.md @@ -182,4 +182,233 @@ useMutation({ [//]: # 'Example5' -You might find that you want to **trigger additional callbacks** beyond the ones defined on `useMutation` when calling `mutate`. This can be used to trigger component-specific side effects. To do that, you can provide any of the same callback options to the ` +You might find that you want to **trigger additional callbacks** beyond the ones defined on `useMutation` when calling `mutate`. This can be used to trigger component-specific side effects. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported options include: `onSuccess`, `onError` and `onSettled`. Please keep in mind that those additional callbacks won't run if your component unmounts _before_ the mutation finishes.Add commentMore actions + +[//]: # 'Example6' + +```tsx +useMutation({ + mutationFn: addTodo, + onSuccess: (data, variables, context) => { + // I will fire first + }, + onError: (error, variables, context) => { + // I will fire first + }, + onSettled: (data, error, variables, context) => { + // I will fire first + }, +}) + +mutate(todo, { + onSuccess: (data, variables, context) => { + // I will fire second! + }, + onError: (error, variables, context) => { + // I will fire second! + }, + onSettled: (data, error, variables, context) => { + // I will fire second! + }, +}) +``` + +[//]: # 'Example6' + +### Consecutive mutations + +There is a slight difference in handling `onSuccess`, `onError` and `onSettled` callbacks when it comes to consecutive mutations. When passed to the `mutate` function, they will be fired up only _once_ and only if the component is still mounted. This is due to the fact that mutation observer is removed and resubscribed every time when the `mutate` function is called. On the contrary, `useMutation` handlers execute for each `mutate` call. + +> Be aware that most likely, `mutationFn` passed to `useMutation` is asynchronous. In that case, the order in which mutations are fulfilled may differ from the order of `mutate` function calls. + +[//]: # 'Example7' + +```tsx +useMutation({ + mutationFn: addTodo, + onSuccess: (data, variables, context) => { + // Will be called 3 times + }, +}) + +const todos = ['Todo 1', 'Todo 2', 'Todo 3'] +todos.forEach((todo) => { + mutate(todo, { + onSuccess: (data, variables, context) => { + // Will execute only once, for the last mutation (Todo 3), + // regardless which mutation resolves first + }, + }) +}) +``` + +[//]: # 'Example7' + +## Promises + +Use `mutateAsync` instead of `mutate` to get a promise which will resolve on success or throw on an error. This can for example be used to compose side effects. + +[//]: # 'Example8' + +```tsx +const mutation = useMutation({ mutationFn: addTodo }) + +try { + const todo = await mutation.mutateAsync(todo) + console.log(todo) +} catch (error) { + console.error(error) +} finally { + console.log('done') +} +``` + +[//]: # 'Example8' + +## Retry + +By default, TanStack Query will not retry a mutation on error, but it is possible with the `retry` option: + +[//]: # 'Example9' + +```tsx +const mutation = useMutation({ + mutationFn: addTodo, + retry: 3, +}) +``` + +[//]: # 'Example9' + +If mutations fail because the device is offline, they will be retried in the same order when the device reconnects. + +## Persist mutations + +Mutations can be persisted to storage if needed and resumed at a later point. This can be done with the hydration functions: + +[//]: # 'Example10' + +```tsx +const queryClient = new QueryClient() + +// Define the "addTodo" mutation +queryClient.setMutationDefaults(['addTodo'], { + mutationFn: addTodo, + onMutate: async (variables) => { + // Cancel current queries for the todos list + await queryClient.cancelQueries({ queryKey: ['todos'] }) + + // Create optimistic todo + const optimisticTodo = { id: uuid(), title: variables.title } + + // Add optimistic todo to todos list + queryClient.setQueryData(['todos'], (old) => [...old, optimisticTodo]) + + // Return context with the optimistic todo + return { optimisticTodo } + }, + onSuccess: (result, variables, context) => { + // Replace optimistic todo in the todos list with the result + queryClient.setQueryData(['todos'], (old) => + old.map((todo) => + todo.id === context.optimisticTodo.id ? result : todo, + ), + ) + }, + onError: (error, variables, context) => { + // Remove optimistic todo from the todos list + queryClient.setQueryData(['todos'], (old) => + old.filter((todo) => todo.id !== context.optimisticTodo.id), + ) + }, + retry: 3, +}) + +// Start mutation in some component: +const mutation = useMutation({ mutationKey: ['addTodo'] }) +mutation.mutate({ title: 'title' }) + +// If the mutation has been paused because the device is for example offline, +// Then the paused mutation can be dehydrated when the application quits: +const state = dehydrate(queryClient) + +// The mutation can then be hydrated again when the application is started: +hydrate(queryClient, state) + +// Resume the paused mutations: +queryClient.resumePausedMutations() +``` + +[//]: # 'Example10' + +### Persisting Offline mutations + +If you persist offline mutations with the [persistQueryClient plugin](../plugins/persistQueryClient.md), mutations cannot be resumed when the page is reloaded unless you provide a default mutation function. + +This is a technical limitation. When persisting to an external storage, only the state of mutations is persisted, as functions cannot be serialized. After hydration, the component that triggers the mutation might not be mounted, so calling `resumePausedMutations` might yield an error: `No mutationFn found`. + +[//]: # 'Example11' + +```tsx +const persister = createSyncStoragePersister({ + storage: window.localStorage, +}) +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + gcTime: 1000 * 60 * 60 * 24, // 24 hours + }, + }, +}) + +// we need a default mutation function so that paused mutations can resume after a page reload +queryClient.setMutationDefaults(['todos'], { + mutationFn: ({ id, data }) => { + return api.updateTodo(id, data) + }, +}) + +export default function App() { + return ( + { + // resume mutations after initial restore from localStorage was successful + queryClient.resumePausedMutations() + }} + > + + + ) +} +``` + +[//]: # 'Example11' + +We also have an extensive [offline example](../examples/offline) that covers both queries and mutations. + +## Mutation Scopes + +Per default, all mutations run in parallel - even if you invoke `.mutate()` of the same mutation multiple times. Mutations can be given a `scope` with an `id` to avoid that. All mutations with the same `scope.id` will run in serial, which means when they are triggered, they will start in `isPaused: true` state if there is already a mutation for that scope in progress. They will be put into a queue and will automatically resume once their time in the queue has come. + +[//]: # 'ExampleScopes' + +```tsx +const mutation = useMutation({ + mutationFn: addTodo, + scope: { + id: 'todo', + }, +}) +``` + +[//]: # 'ExampleScopes' +[//]: # 'Materials' + +## Further reading + +For more information about mutations, have a look at [#12: Mastering Mutations in React Query](../community/tkdodos-blog.md#12-mastering-mutations-in-react-query) from +the Community Resources. + +[//]: # 'Materials' From 10b4c2fbe57feb773dfb466f8f73c8787c040b74 Mon Sep 17 00:00:00 2001 From: "H. C. Kruse" <6594492+octfx@users.noreply.github.com> Date: Fri, 6 Jun 2025 15:37:37 +0200 Subject: [PATCH 144/432] docs: Remove superfluous text from mutations.md (#9256) Sentence ends in `Add commentMore actions` looking out of place. --- docs/framework/react/guides/mutations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md index e4a309f7ae..09cea2692b 100644 --- a/docs/framework/react/guides/mutations.md +++ b/docs/framework/react/guides/mutations.md @@ -182,7 +182,7 @@ useMutation({ [//]: # 'Example5' -You might find that you want to **trigger additional callbacks** beyond the ones defined on `useMutation` when calling `mutate`. This can be used to trigger component-specific side effects. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported options include: `onSuccess`, `onError` and `onSettled`. Please keep in mind that those additional callbacks won't run if your component unmounts _before_ the mutation finishes.Add commentMore actions +You might find that you want to **trigger additional callbacks** beyond the ones defined on `useMutation` when calling `mutate`. This can be used to trigger component-specific side effects. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported options include: `onSuccess`, `onError` and `onSettled`. Please keep in mind that those additional callbacks won't run if your component unmounts _before_ the mutation finishes. [//]: # 'Example6' From cba46b5d79c5877756aa0745809402131eb59191 Mon Sep 17 00:00:00 2001 From: Collin Stevens Date: Mon, 9 Jun 2025 00:11:45 -0700 Subject: [PATCH 145/432] docs: fix relative links (#9262) * fix relative links * Update mutations.md --- docs/framework/react/guides/mutations.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md index 09cea2692b..22af057a3e 100644 --- a/docs/framework/react/guides/mutations.md +++ b/docs/framework/react/guides/mutations.md @@ -343,7 +343,7 @@ queryClient.resumePausedMutations() ### Persisting Offline mutations -If you persist offline mutations with the [persistQueryClient plugin](../plugins/persistQueryClient.md), mutations cannot be resumed when the page is reloaded unless you provide a default mutation function. +If you persist offline mutations with the [persistQueryClient plugin](../../plugins/persistQueryClient.md), mutations cannot be resumed when the page is reloaded unless you provide a default mutation function. This is a technical limitation. When persisting to an external storage, only the state of mutations is persisted, as functions cannot be serialized. After hydration, the component that triggers the mutation might not be mounted, so calling `resumePausedMutations` might yield an error: `No mutationFn found`. @@ -386,7 +386,7 @@ export default function App() { [//]: # 'Example11' -We also have an extensive [offline example](../examples/offline) that covers both queries and mutations. +We also have an extensive [offline example](../../examples/offline) that covers both queries and mutations. ## Mutation Scopes @@ -408,7 +408,7 @@ const mutation = useMutation({ ## Further reading -For more information about mutations, have a look at [#12: Mastering Mutations in React Query](../community/tkdodos-blog.md#12-mastering-mutations-in-react-query) from +For more information about mutations, have a look at [#12: Mastering Mutations in React Query](../../community/tkdodos-blog.md#12-mastering-mutations-in-react-query) from the Community Resources. [//]: # 'Materials' From 641ec860537416a7d2949548035fa66191762369 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Jun 2025 22:21:24 +1000 Subject: [PATCH 146/432] chore(deps): update autofix-ci/action digest to 635ffb0 (#9263) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/autofix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 107a3ef622..fb1f2ae0ae 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -24,6 +24,6 @@ jobs: - name: Fix formatting run: pnpm prettier:write - name: Apply fixes - uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef + uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 with: commit-message: 'ci: apply automated fixes' From bd3ac49e29ed50aef1ace21d35e8dee8f15a136d Mon Sep 17 00:00:00 2001 From: Wesley LeMahieu Date: Wed, 11 Jun 2025 16:49:17 -0700 Subject: [PATCH 147/432] fix(solid-query-devtools): client-side code instantiating prematurely server-side (#9163) * separate concerns of clientOnly and SolidQueryDevtools * remove unnecessary type change --- .../solid-query-devtools/src/clientOnly.tsx | 43 +++++++++++++++++ .../solid-query-devtools/src/devtools.tsx | 46 +------------------ packages/solid-query-devtools/src/index.tsx | 2 +- 3 files changed, 45 insertions(+), 46 deletions(-) create mode 100644 packages/solid-query-devtools/src/clientOnly.tsx diff --git a/packages/solid-query-devtools/src/clientOnly.tsx b/packages/solid-query-devtools/src/clientOnly.tsx new file mode 100644 index 0000000000..379bd78ad7 --- /dev/null +++ b/packages/solid-query-devtools/src/clientOnly.tsx @@ -0,0 +1,43 @@ +import { + createMemo, + createSignal, + onMount, + sharedConfig, + splitProps, + untrack, +} from 'solid-js' +import { isServer } from 'solid-js/web' +import type { Component, ComponentProps, JSX } from 'solid-js' + +/* + This function has been taken from solid-start's codebase + This allows the devtools to be loaded only on the client and bypasses any server side rendering + https://github.com/solidjs/solid-start/blob/2967fc2db3f0df826f061020231dbdafdfa0746b/packages/start/islands/clientOnly.tsx +*/ +export default function clientOnly>( + fn: () => Promise<{ + default: T + }>, +) { + if (isServer) + return (props: ComponentProps & { fallback?: JSX.Element }) => + props.fallback + + const [comp, setComp] = createSignal() + fn().then((m) => setComp(() => m.default)) + return (props: ComponentProps) => { + let Comp: T | undefined + let m: boolean + const [, rest] = splitProps(props, ['fallback']) + if ((Comp = comp()) && !sharedConfig.context) return Comp(rest) + const [mounted, setMounted] = createSignal(!sharedConfig.context) + onMount(() => setMounted(true)) + return createMemo( + () => ( + (Comp = comp()), + (m = mounted()), + untrack(() => (Comp && m ? Comp(rest) : props.fallback)) + ), + ) + } +} diff --git a/packages/solid-query-devtools/src/devtools.tsx b/packages/solid-query-devtools/src/devtools.tsx index 1b7bc4a698..2557f6613e 100644 --- a/packages/solid-query-devtools/src/devtools.tsx +++ b/packages/solid-query-devtools/src/devtools.tsx @@ -1,15 +1,5 @@ -import { - createEffect, - createMemo, - createSignal, - onCleanup, - onMount, - sharedConfig, - splitProps, - untrack, -} from 'solid-js' +import { createEffect, createMemo, onCleanup, onMount } from 'solid-js' import { onlineManager, useQueryClient } from '@tanstack/solid-query' -import { isServer } from 'solid-js/web' import { TanstackQueryDevtools } from '@tanstack/query-devtools' import type { DevtoolsButtonPosition, @@ -17,7 +7,6 @@ import type { DevtoolsPosition, } from '@tanstack/query-devtools' import type { QueryClient } from '@tanstack/solid-query' -import type { Component, ComponentProps, JSX } from 'solid-js' interface DevtoolsOptions { /** @@ -104,36 +93,3 @@ export default function SolidQueryDevtools(props: DevtoolsOptions) { return
} - -/* - This function has been taken from solid-start's codebase - This allows the devtools to be loaded only on the client and bypasses any server side rendering - https://github.com/solidjs/solid-start/blob/2967fc2db3f0df826f061020231dbdafdfa0746b/packages/start/islands/clientOnly.tsx -*/ -export function clientOnly>( - fn: () => Promise<{ - default: T - }>, -) { - if (isServer) - return (props: ComponentProps & { fallback?: JSX.Element }) => - props.fallback - - const [comp, setComp] = createSignal() - fn().then((m) => setComp(() => m.default)) - return (props: ComponentProps) => { - let Comp: T | undefined - let m: boolean - const [, rest] = splitProps(props, ['fallback']) - if ((Comp = comp()) && !sharedConfig.context) return Comp(rest) - const [mounted, setMounted] = createSignal(!sharedConfig.context) - onMount(() => setMounted(true)) - return createMemo( - () => ( - (Comp = comp()), - (m = mounted()), - untrack(() => (Comp && m ? Comp(rest) : props.fallback)) - ), - ) - } -} diff --git a/packages/solid-query-devtools/src/index.tsx b/packages/solid-query-devtools/src/index.tsx index 63f21620ec..a67e7cede1 100644 --- a/packages/solid-query-devtools/src/index.tsx +++ b/packages/solid-query-devtools/src/index.tsx @@ -1,5 +1,5 @@ import { isDev } from 'solid-js/web' -import { clientOnly } from './devtools' +import clientOnly from './clientOnly' import type SolidQueryDevtoolsComp from './devtools' export const SolidQueryDevtools: typeof SolidQueryDevtoolsComp = isDev From 33d008bbb39f749588ab591d41fefa53f4e18c99 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 11 Jun 2025 23:52:08 +0000 Subject: [PATCH 148/432] release: v5.80.7 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e5cec4f3ad..0ee0b9d1fd 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index c7b8f8862e..176477ebd5 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.80.6", + "@tanstack/query-sync-storage-persister": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 57f12bbb1f..729e793339 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 0f24fb6bfd..34eb792b04 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.6", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-devtools-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index af63f09884..ee4cd5069f 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index c61fc6184c..d55a3880ef 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index ee2db1de4c..1461137430 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 674876cb74..3e7e96c23c 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 993a60b82e..2141ce3a0e 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index cb47928aa3..eba387bbaa 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 9aaaccee11..35d006fc31 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.6", + "@tanstack/angular-query-experimental": "^5.80.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index b585ad7f41..0c703b2040 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index ae9ab84e1a..2546252a0d 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 95d9536f76..c472affb84 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index a3c1462e40..420562b270 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.6", - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", - "@tanstack/react-query-persist-client": "^5.80.6", + "@tanstack/query-sync-storage-persister": "^5.80.7", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query-persist-client": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 400d562398..88e3bc6d89 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 76208f17e7..2d8aa76219 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 5a8d6fd616..f35670bfc1 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 2f8bdd3193..6ed0901d31 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.6", - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", - "@tanstack/react-query-persist-client": "^5.80.6", + "@tanstack/query-sync-storage-persister": "^5.80.7", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query-persist-client": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 9c81135e7a..b200459eda 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 8fa109e857..24f517cb8a 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index d58037ed9e..5e8d8fabd3 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index babb91e70d..2938475aca 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", - "@tanstack/react-query-next-experimental": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query-next-experimental": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 4acbe44a84..692a6be381 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 6fc5dcb70b..365c5357ee 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.6", + "@tanstack/query-sync-storage-persister": "^5.80.7", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", - "@tanstack/react-query-persist-client": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query-persist-client": "^5.80.7", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index bdfb2228d8..34c09012bb 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 0a586b0253..83ad100b64 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 811f15d586..675f7a1691 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 7dab15b27b..1f6a99f9a0 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 1a6550342f..03b92b65f5 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 20741f900a..30c3a4c543 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 1201fd5b0a..5d0091ae0f 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index fdf63d779f..3f7ecb7e04 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index e8642b44f2..a491a59b8c 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index b3e25a8e73..65401df01f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 04e1441d68..6a86a897dc 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 6467a27384..adc09c651f 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.6", - "@tanstack/react-query-devtools": "^5.80.6", + "@tanstack/react-query": "^5.80.7", + "@tanstack/react-query-devtools": "^5.80.7", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 79a8c33d1d..a3f666cde1 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.80.6", - "@tanstack/solid-query-devtools": "^5.80.6", + "@tanstack/solid-query": "^5.80.7", + "@tanstack/solid-query-devtools": "^5.80.7", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index c6d16ed416..35947a7b71 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.6", - "@tanstack/solid-query-devtools": "^5.80.6", + "@tanstack/solid-query": "^5.80.7", + "@tanstack/solid-query-devtools": "^5.80.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 90d653a235..28c31315e6 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.6", - "@tanstack/solid-query-devtools": "^5.80.6", + "@tanstack/solid-query": "^5.80.7", + "@tanstack/solid-query-devtools": "^5.80.7", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index a14c629e72..6375665b3c 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.6", - "@tanstack/solid-query-devtools": "^5.80.6", + "@tanstack/solid-query": "^5.80.7", + "@tanstack/solid-query-devtools": "^5.80.7", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 9cbe947185..d56060baf1 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.6", - "@tanstack/solid-query-devtools": "^5.80.6", + "@tanstack/solid-query": "^5.80.7", + "@tanstack/solid-query-devtools": "^5.80.7", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 7392a365ea..8848e50128 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.80.6", - "@tanstack/solid-query-devtools": "^5.80.6", + "@tanstack/solid-query": "^5.80.7", + "@tanstack/solid-query-devtools": "^5.80.7", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 7529935675..5ffd158e8a 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6" + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 021b84b14c..ac7c81e6c7 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.6", - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6", - "@tanstack/svelte-query-persist-client": "^5.80.6" + "@tanstack/query-sync-storage-persister": "^5.80.7", + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7", + "@tanstack/svelte-query-persist-client": "^5.80.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index b2b779785d..cbe98552ed 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6" + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 3d622b2526..835676bb5a 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6" + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 157005ad3c..2cf81d84e9 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6" + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 32029dd4fc..0e123f7270 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6" + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index bfdf57e702..3c6f4964ff 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6" + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index c5e3993c57..36d85a3b1a 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.6", - "@tanstack/svelte-query-devtools": "^5.80.6" + "@tanstack/svelte-query": "^5.80.7", + "@tanstack/svelte-query-devtools": "^5.80.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 53a76fe258..aa9f470b4b 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.6", + "@tanstack/vue-query": "^5.80.7", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 797418585d..3bdf805e58 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.6", + "@tanstack/vue-query": "^5.80.7", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 636c8386ff..01c416cefa 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.6", - "@tanstack/vue-query-devtools": "^5.80.6", + "@tanstack/vue-query": "^5.80.7", + "@tanstack/vue-query-devtools": "^5.80.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index e30609f4d3..8730f8488e 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.6", + "@tanstack/vue-query": "^5.80.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 7ac0c8fe90..e6838f043c 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.6" + "@tanstack/vue-query": "^5.80.7" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 9de90cc106..aade454816 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.80.6", - "@tanstack/query-persist-client-core": "^5.80.6", - "@tanstack/query-sync-storage-persister": "^5.80.6", - "@tanstack/vue-query": "^5.80.6", + "@tanstack/query-core": "^5.80.7", + "@tanstack/query-persist-client-core": "^5.80.7", + "@tanstack/query-sync-storage-persister": "^5.80.7", + "@tanstack/vue-query": "^5.80.7", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 9feffec5bc..991276058f 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.6", - "@tanstack/vue-query-devtools": "^5.80.6", + "@tanstack/vue-query": "^5.80.7", + "@tanstack/vue-query-devtools": "^5.80.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index bb9d01e5a0..86839ec1f1 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.6", + "version": "5.80.7", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 3d8c81165d..4aca2fd570 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.6", + "version": "5.80.7", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 17e3fc10f6..0106c52cad 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.80.6", + "version": "5.80.7", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 6a3491ef1c..4eaaf4c742 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.80.6", + "version": "5.80.7", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 462b10984b..7b13d9bf68 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.80.6", + "version": "5.80.7", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 61b202de3c..2ee7ee8e70 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.80.6", + "version": "5.80.7", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index ce435ee986..33f22461da 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.80.6", + "version": "5.80.7", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 906f251da4..31c50c90d8 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.6", + "version": "5.80.7", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 7ab44f9bc4..c9021fafd7 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.6", + "version": "5.80.7", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index fba48239d5..9586b5f3e4 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.6", + "version": "5.80.7", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 0866963fef..bea934012d 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.6", + "version": "5.80.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 84b5af03d3..59f34f3106 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.80.6", + "version": "5.80.7", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 46fedfcb88..b095557a7a 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.80.6", + "version": "5.80.7", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index d046e280cb..f16400e6c8 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.80.6", + "version": "5.80.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 735054d99d..ce1bf5678d 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.80.6", + "version": "5.80.7", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index c4f4f4b98b..8399d7ba1f 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.80.6", + "version": "5.80.7", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 47ac38108c..54b4c45ba5 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.80.6", + "version": "5.80.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 41f233879c..4738f2fd9d 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.6", + "version": "5.80.7", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 676681eafa..6dd52657b9 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.6", + "version": "5.80.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 1c7c276a54e1cb940fbe9b9202113d153bedbf0b Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Tue, 17 Jun 2025 20:03:50 +0200 Subject: [PATCH 149/432] refactor(angular-query): migrate from tsup to vite (#9281) * chore(angular-query): migrate from tsup to vite * build fixes --- .../angular-query-experimental/.attw.json | 2 +- .../angular-query-experimental/package.json | 40 +++-- .../scripts/postpack.js | 54 ++++++ .../scripts/prepack.js | 68 ++++++++ .../angular-query-experimental/tsconfig.json | 2 - .../tsconfig.prod.json | 3 +- .../angular-query-experimental/tsup.config.js | 13 -- .../angular-query-experimental/vite.config.ts | 100 ++++++++++- .../angular-query-persist-client/.attw.json | 2 +- pnpm-lock.yaml | 157 +++++++++++++++++- 10 files changed, 404 insertions(+), 37 deletions(-) create mode 100644 packages/angular-query-experimental/scripts/postpack.js create mode 100644 packages/angular-query-experimental/scripts/prepack.js delete mode 100644 packages/angular-query-experimental/tsup.config.js diff --git a/packages/angular-query-experimental/.attw.json b/packages/angular-query-experimental/.attw.json index ce409e67a8..ac2579855e 100644 --- a/packages/angular-query-experimental/.attw.json +++ b/packages/angular-query-experimental/.attw.json @@ -1,3 +1,3 @@ { - "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] + "ignoreRules": ["cjs-resolves-to-esm"] } diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 4aca2fd570..4393d8197e 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -27,7 +27,7 @@ "tanstack" ], "scripts": { - "clean": "premove ./build ./coverage ./dist-ts", + "clean": "premove ./build ./coverage ./dist-ts ./**.d.ts", "compile": "tsc --build", "test:eslint": "eslint ./src", "test:types": "npm-run-all --serial test:types:*", @@ -42,18 +42,19 @@ "test:types:tscurrent": "tsc --build", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", - "test:build": "publint --strict && attw --pack", - "build": "pnpm build:tsup", - "build:tsup": "tsup --tsconfig tsconfig.prod.json" + "test:build": "pnpm pack && publint *.tgz --strict && attw *.tgz; premove *.tgz", + "build": "vite build", + "prepack": "node scripts/prepack.js", + "postpack": "node scripts/postpack.js" }, "type": "module", - "types": "build/index.d.ts", - "module": "build/index.mjs", + "types": "dist/types/index.d.ts", + "module": "dist/index.mjs", "exports": { ".": { + "types": "./dist/types/index.d.ts", "@tanstack/custom-condition": "./src/index.ts", - "types": "./build/index.d.ts", - "default": "./build/index.mjs" + "default": "./dist/index.mjs" }, "./package.json": { "default": "./package.json" @@ -61,9 +62,9 @@ }, "sideEffects": false, "files": [ - "build", - "src", - "!src/__tests__" + "**/*.d.ts", + "dist", + "!dist/types/**" ], "dependencies": { "@tanstack/query-core": "workspace:*", @@ -77,10 +78,25 @@ "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/query-test-utils": "workspace:*", "eslint-plugin-jsdoc": "^50.5.0", - "npm-run-all2": "^5.0.0" + "npm-run-all2": "^5.0.0", + "vite-plugin-dts": "4.2.3", + "vite-plugin-externalize-deps": "^0.9.0", + "vite-tsconfig-paths": "^5.1.4" }, "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0" + }, + "publishConfig": { + "types": "index.d.ts", + "exports": { + ".": { + "types": "./index.d.ts", + "default": "./dist/index.mjs" + }, + "./package.json": { + "default": "./package.json" + } + } } } diff --git a/packages/angular-query-experimental/scripts/postpack.js b/packages/angular-query-experimental/scripts/postpack.js new file mode 100644 index 0000000000..1762b0b474 --- /dev/null +++ b/packages/angular-query-experimental/scripts/postpack.js @@ -0,0 +1,54 @@ +import { unlink, rmdir } from 'fs/promises' +import fg from 'fast-glob' + +const constants = { + IGNORE_FILES_PATTERNS: [ + 'dist/**', + 'node_modules/**', + '.git/**', + 'scripts/**', + ], + CLEANUP_FILES_GLOB: ['**/*.d.ts'], + IGNORE_REMOVE_DIRECTORIES: [ + 'dist/**', + 'node_modules/**', + '.git/**', + 'scripts/**', + 'src/**', + ], +} + +async function postpack() { + console.log( + 'Running postpack script to cleanup type declaration linked files used for publishing', + ) + + const typeFiles = await fg(constants.CLEANUP_FILES_GLOB, { + ignore: constants.IGNORE_FILES_PATTERNS, + }) + + if (typeFiles.length === 0) { + return + } + + await Promise.all(typeFiles.map((file) => unlink(file))) + + const dirs = await fg(['**/'], { + onlyDirectories: true, + ignore: constants.IGNORE_REMOVE_DIRECTORIES, + }) + + // Remove empty directories (deepest first) + const sortedDirs = dirs.sort( + (a, b) => b.split('/').length - a.split('/').length, + ) + await Promise.all( + sortedDirs.map( + (dir) => rmdir(dir).catch(() => {}), // Ignore errors (dir not empty) + ), + ) +} + +postpack().catch((error) => { + console.error('Postpack failed:', error) +}) diff --git a/packages/angular-query-experimental/scripts/prepack.js b/packages/angular-query-experimental/scripts/prepack.js new file mode 100644 index 0000000000..26ca98a1ce --- /dev/null +++ b/packages/angular-query-experimental/scripts/prepack.js @@ -0,0 +1,68 @@ +import { link, mkdir } from 'fs/promises' +import { dirname, relative } from 'path' +import fg from 'fast-glob' + +const constants = { + DIST_TYPES_DIRECTORY: 'dist/types', + OUTPUT_DIRECTORY: '.', + DIST_TYPE_FILES_GLOB: 'dist/types/**/*.d.ts', +} + +/* +`prepack` lifecycle script which links type declaration files from the dist folder to the package root. +allows using types in package exports as such: + +`"types": "./index.d.ts"` + +and subpath exports + +```json + "./some-subpath": { + "types": "./some-subpath/index.d.ts", // โœ… works with `"modeResolution": "node"` + "default": "./build/some-subpath/index.mjs" + }, +``` + +When TypeScript is configured with `moduleResolution: node`, type declaration file directory structures are expected +to exactly match the subpath export as in the example above. + +```json + "./some-subpath": { + "types": "./build/dist/some-subpath/index.d.ts", // โŒ does not work with `"moduleResolution": "node"` + "default": "./build/some-subpath/index.mjs" + }, +``` + +It's important to support `"moduleResolution": "node"` as many Angular applications are still configured this way. + +In the `postpack` lifecycle script these links are removed to keep a clean development environment + */ +async function prepack() { + console.log('Running prepack script to prepare types for publishing') + + const typeFiles = await fg([constants.DIST_TYPE_FILES_GLOB]) + if (typeFiles.length === 0) return + + const destDirs = [ + ...new Set( + typeFiles + .map((file) => { + const dest = relative(constants.DIST_TYPES_DIRECTORY, file) + return dirname(dest) + }) + .filter((dir) => dir !== constants.OUTPUT_DIRECTORY), + ), + ] + + await Promise.all(destDirs.map((dir) => mkdir(dir, { recursive: true }))) + await Promise.all( + typeFiles.map((file) => { + const dest = relative(constants.DIST_TYPES_DIRECTORY, file) + return link(file, dest) + }), + ) + + console.log(`Linked ${typeFiles.length} type files`) +} + +prepack().catch(console.error) diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 68fb75ea2e..9837ca7051 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -3,8 +3,6 @@ "compilerOptions": { "outDir": "./dist-ts", "rootDir": ".", - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, "noFallthroughCasesInSwitch": true, "useDefineForClassFields": false, "target": "ES2022" diff --git a/packages/angular-query-experimental/tsconfig.prod.json b/packages/angular-query-experimental/tsconfig.prod.json index 0f4c92da06..b470042ddc 100644 --- a/packages/angular-query-experimental/tsconfig.prod.json +++ b/packages/angular-query-experimental/tsconfig.prod.json @@ -3,6 +3,7 @@ "compilerOptions": { "incremental": false, "composite": false, - "rootDir": "../../" + "rootDir": "../../", + "customConditions": null } } diff --git a/packages/angular-query-experimental/tsup.config.js b/packages/angular-query-experimental/tsup.config.js deleted file mode 100644 index a1e9d23c1c..0000000000 --- a/packages/angular-query-experimental/tsup.config.js +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig } from 'tsup' - -export default defineConfig({ - entry: ['src/index.ts'], - sourcemap: true, - clean: true, - format: ['esm'], - dts: true, - outDir: 'build', - outExtension({ format }) { - return format === 'esm' ? { js: '.mjs' } : { js: '.js' } - }, -}) diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts index 25fdba1056..25eb7d8c68 100644 --- a/packages/angular-query-experimental/vite.config.ts +++ b/packages/angular-query-experimental/vite.config.ts @@ -1,8 +1,32 @@ -import { defineConfig } from 'vitest/config' - +import { defineConfig, mergeConfig } from 'vitest/config' +import { externalizeDeps } from 'vite-plugin-externalize-deps' +import tsconfigPaths from 'vite-tsconfig-paths' +import dts from 'vite-plugin-dts' import packageJson from './package.json' +import type { Options } from '@tanstack/config/vite' + +function ensureImportFileExtension({ + content, + extension, +}: { + content: string + extension: string +}) { + // replace e.g. `import { foo } from './foo'` with `import { foo } from './foo.js'` + content = content.replace( + /(im|ex)port\s[\w{}/*\s,]+from\s['"](?:\.\.?\/)+?[^.'"]+(?=['"];?)/gm, + `$&.${extension}`, + ) + + // replace e.g. `import('./foo')` with `import('./foo.js')` + content = content.replace( + /import\(['"](?:\.\.?\/)+?[^.'"]+(?=['"];?)/gm, + `$&.${extension}`, + ) + return content +} -export default defineConfig({ +const config = defineConfig({ // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { conditions: ['@tanstack/custom-condition'], @@ -26,3 +50,73 @@ export default defineConfig({ restoreMocks: true, }, }) + +// copy from @tanstack/config/vite with changes: +// - dts outDir: dist/types +// - build - lib - fileName: [name.mjs] +// - rollup - output - preserveModulesRoot: src +export const tanstackViteConfig = (options: Options) => { + const outDir = options.outDir ?? 'dist' + const cjs = options.cjs ?? true + + return defineConfig({ + plugins: [ + externalizeDeps({ include: options.externalDeps ?? [] }), + tsconfigPaths({ + projects: options.tsconfigPath ? [options.tsconfigPath] : undefined, + }), + dts({ + outDir: `dist/types`, + entryRoot: options.srcDir, + include: options.srcDir, + exclude: options.exclude, + tsconfigPath: options.tsconfigPath, + compilerOptions: { + module: 99, // ESNext + declarationMap: false, + }, + beforeWriteFile: (filePath, content) => { + // content = + // options.beforeWriteDeclarationFile?.(filePath, content) || content + return { + filePath, + content: ensureImportFileExtension({ content, extension: 'js' }), + } + }, + afterDiagnostic: (diagnostics) => { + if (diagnostics.length > 0) { + console.error('Please fix the above type errors') + process.exit(1) + } + }, + }), + ], + build: { + outDir, + minify: false, + sourcemap: true, + lib: { + entry: options.entry, + formats: cjs ? ['es', 'cjs'] : ['es'], + fileName: () => '[name].mjs', + }, + rollupOptions: { + output: { + preserveModules: true, + preserveModulesRoot: 'src', + }, + }, + }, + }) +} + +export default mergeConfig( + config, + tanstackViteConfig({ + cjs: false, + entry: ['./src/index.ts'], + exclude: ['src/__tests__'], + srcDir: './src', + tsconfigPath: 'tsconfig.prod.json', + }), +) diff --git a/packages/angular-query-persist-client/.attw.json b/packages/angular-query-persist-client/.attw.json index ce409e67a8..ac2579855e 100644 --- a/packages/angular-query-persist-client/.attw.json +++ b/packages/angular-query-persist-client/.attw.json @@ -1,3 +1,3 @@ { - "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] + "ignoreRules": ["cjs-resolves-to-esm"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff70b200c4..dc378b6c3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1231,7 +1231,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(cgoxobftzx7q2rxvco2fw2mfyq) + version: 6.4.1(1f29909f8de70b3aa674884b982ac755) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -2334,6 +2334,15 @@ importers: npm-run-all2: specifier: ^5.0.0 version: 5.0.2 + vite-plugin-dts: + specifier: 4.2.3 + version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite-plugin-externalize-deps: + specifier: ^0.9.0 + version: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) packages/angular-query-persist-client: dependencies: @@ -2367,7 +2376,7 @@ importers: version: link:../query-test-utils '@testing-library/angular': specifier: ^17.3.7 - version: 17.3.7(5fchvpeatqbl65tde2d3342iqq) + version: 17.3.7(44e06ac0fb247039d3919c909462d711) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -6085,6 +6094,9 @@ packages: '@microsoft/api-extractor-model@7.29.4': resolution: {integrity: sha512-LHOMxmT8/tU1IiiiHOdHFF83Qsi+V8d0kLfscG4EvQE9cafiR8blOYr8SfkQKWB1wgEilQgXJX3MIA4vetDLZw==} + '@microsoft/api-extractor-model@7.29.6': + resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} + '@microsoft/api-extractor-model@7.30.1': resolution: {integrity: sha512-CTS2PlASJHxVY8hqHORVb1HdECWOEMcMnM6/kDkPr0RZapAFSIHhg9D4jxuE8g+OWYHtPc10LCpmde5pylTRlA==} @@ -6092,6 +6104,10 @@ packages: resolution: {integrity: sha512-HKm+P4VNzWwvq1Ey+Jfhhj/3MjsD+ka2hbt8L5AcRM95lu1MFOYnz3XlU7Gr79Q/ZhOb7W/imAKeYrOI0bFydg==} hasBin: true + '@microsoft/api-extractor@7.47.7': + resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} + hasBin: true + '@microsoft/api-extractor@7.48.1': resolution: {integrity: sha512-HN9Osa1WxqLM66RaqB5nPAadx+nTIQmY/XtkFdaJvusjG8Tus++QqZtD7KPZDSkhEMGHsYeSyeU8qUzCDUXPjg==} hasBin: true @@ -7104,6 +7120,14 @@ packages: '@types/node': optional: true + '@rushstack/node-core-library@5.7.0': + resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} @@ -7115,6 +7139,14 @@ packages: '@types/node': optional: true + '@rushstack/terminal@0.14.0': + resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + '@rushstack/terminal@0.14.4': resolution: {integrity: sha512-NxACqERW0PHq8Rpq1V6v5iTHEwkRGxenjEW+VWqRYQ8T9puUzgmGHmEZUaUEDHAe9Qyvp0/Ew04sAiQw9XjhJg==} peerDependencies: @@ -7126,6 +7158,9 @@ packages: '@rushstack/ts-command-line@4.22.3': resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} + '@rushstack/ts-command-line@4.22.6': + resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} + '@rushstack/ts-command-line@4.23.2': resolution: {integrity: sha512-JJ7XZX5K3ThBBva38aomgsPv1L7FV6XmSOcR6HtM7HDFZJkepqT65imw26h9ggGqMjsY0R9jcl30tzKcVj9aOQ==} @@ -7964,6 +7999,14 @@ packages: typescript: optional: true + '@vue/language-core@2.1.6': + resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@vue/language-core@2.2.8': resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==} peerDependencies: @@ -15646,11 +15689,26 @@ packages: vite: optional: true + vite-plugin-dts@4.2.3: + resolution: {integrity: sha512-O5NalzHANQRwVw1xj8KQun3Bv8OSDAlNJXrnqoAz10BOuW8FVvY5g4ygj+DlJZL5mtSPuMu9vd3OfrdW5d4k6w==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + vite-plugin-externalize-deps@0.8.0: resolution: {integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==} peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-plugin-externalize-deps@0.9.0: + resolution: {integrity: sha512-wg3qb5gCy2d1KpPKyD9wkXMcYJ84yjgziHrStq9/8R7chhUC73mhQz+tVtvhFiICQHsBn1pnkY4IBbPqF9JHNw==} + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vite-plugin-solid@2.11.6: resolution: {integrity: sha512-Sl5CTqJTGyEeOsmdH6BOgalIZlwH3t4/y0RQuFLMGnvWMBvxb4+lq7x3BSiAw6etf0QexfNJW7HSOO/Qf7pigg==} peerDependencies: @@ -20235,6 +20293,14 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor-model@7.29.6(@types/node@22.15.3)': + dependencies: + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) + transitivePeerDependencies: + - '@types/node' + '@microsoft/api-extractor-model@7.30.1(@types/node@22.15.3)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -20262,6 +20328,24 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor@7.47.7(@types/node@22.15.3)': + dependencies: + '@microsoft/api-extractor-model': 7.29.6(@types/node@22.15.3) + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.14.0(@types/node@22.15.3) + '@rushstack/ts-command-line': 4.22.6(@types/node@22.15.3) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.10 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + '@microsoft/api-extractor@7.48.1(@types/node@22.15.3)': dependencies: '@microsoft/api-extractor-model': 7.30.1(@types/node@22.15.3) @@ -20997,7 +21081,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(cgoxobftzx7q2rxvco2fw2mfyq)': + '@react-navigation/stack@6.4.1(1f29909f8de70b3aa674884b982ac755)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) @@ -21229,6 +21313,19 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 + '@rushstack/node-core-library@5.7.0(@types/node@22.15.3)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.10 + semver: 7.5.4 + optionalDependencies: + '@types/node': 22.15.3 + '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 @@ -21241,6 +21338,13 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 + '@rushstack/terminal@0.14.0(@types/node@22.15.3)': + dependencies: + '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 22.15.3 + '@rushstack/terminal@0.14.4(@types/node@22.15.3)': dependencies: '@rushstack/node-core-library': 5.10.1(@types/node@22.15.3) @@ -21258,6 +21362,15 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@rushstack/ts-command-line@4.22.6(@types/node@22.15.3)': + dependencies: + '@rushstack/terminal': 0.14.0(@types/node@22.15.3) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + '@rushstack/ts-command-line@4.23.2(@types/node@22.15.3)': dependencies: '@rushstack/terminal': 0.14.4(@types/node@22.15.3) @@ -21786,7 +21899,7 @@ snapshots: - tsx - yaml - '@testing-library/angular@17.3.7(5fchvpeatqbl65tde2d3342iqq)': + '@testing-library/angular@17.3.7(44e06ac0fb247039d3919c909462d711)': dependencies: '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) @@ -22475,6 +22588,19 @@ snapshots: optionalDependencies: typescript: 5.8.3 + '@vue/language-core@2.1.6(typescript@5.8.3)': + dependencies: + '@volar/language-core': 2.4.12 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.8.3 + '@vue/language-core@2.2.8(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.12 @@ -32109,10 +32235,33 @@ snapshots: - rollup - supports-color + vite-plugin-dts@4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + dependencies: + '@microsoft/api-extractor': 7.47.7(@types/node@22.15.3) + '@rollup/pluginutils': 5.1.4(rollup@4.40.2) + '@volar/typescript': 2.4.12 + '@vue/language-core': 2.1.6(typescript@5.8.3) + compare-versions: 6.1.1 + debug: 4.4.0 + kolorist: 1.8.0 + local-pkg: 0.5.1 + magic-string: 0.30.17 + typescript: 5.8.3 + optionalDependencies: + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + vite-plugin-externalize-deps@0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): dependencies: vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite-plugin-externalize-deps@0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + dependencies: + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.10 From 6f519975d666b6cfb28c3eb0b9e332d928207a36 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 17 Jun 2025 18:14:33 +0000 Subject: [PATCH 150/432] release: v5.80.8 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 0ee0b9d1fd..26e28d2e7c 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 176477ebd5..990c1e91d5 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-sync-storage-persister": "^5.80.7", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 729e793339..1535f69918 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 34eb792b04..9cb9f4195f 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.7", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-devtools-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index ee4cd5069f..2d94dfd481 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index d55a3880ef..a0b6686ae8 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 1461137430..4a9a2e434c 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 3e7e96c23c..834c2c1b1a 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 2141ce3a0e..4c31abe6ad 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index eba387bbaa..3902c9df45 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 35d006fc31..bf14cf5024 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.7", + "@tanstack/angular-query-experimental": "^5.80.8", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 86839ec1f1..b8ab89a07d 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.7", + "version": "5.80.8", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 4393d8197e..bafbea5bf2 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.7", + "version": "5.80.8", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", From c251358624c0a104236cb583f08e6e460934e3a6 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Tue, 17 Jun 2025 23:37:10 +0200 Subject: [PATCH 151/432] Revert "refactor(angular-query): migrate from tsup to vite (#9281)" (#9282) This reverts commit 1c7c276a54e1cb940fbe9b9202113d153bedbf0b. --- .../angular-query-experimental/.attw.json | 2 +- .../angular-query-experimental/package.json | 40 ++--- .../scripts/postpack.js | 54 ------ .../scripts/prepack.js | 68 -------- .../angular-query-experimental/tsconfig.json | 2 + .../tsconfig.prod.json | 3 +- .../angular-query-experimental/tsup.config.js | 13 ++ .../angular-query-experimental/vite.config.ts | 100 +---------- .../angular-query-persist-client/.attw.json | 2 +- pnpm-lock.yaml | 157 +----------------- 10 files changed, 37 insertions(+), 404 deletions(-) delete mode 100644 packages/angular-query-experimental/scripts/postpack.js delete mode 100644 packages/angular-query-experimental/scripts/prepack.js create mode 100644 packages/angular-query-experimental/tsup.config.js diff --git a/packages/angular-query-experimental/.attw.json b/packages/angular-query-experimental/.attw.json index ac2579855e..ce409e67a8 100644 --- a/packages/angular-query-experimental/.attw.json +++ b/packages/angular-query-experimental/.attw.json @@ -1,3 +1,3 @@ { - "ignoreRules": ["cjs-resolves-to-esm"] + "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] } diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index bafbea5bf2..3257af5c78 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -27,7 +27,7 @@ "tanstack" ], "scripts": { - "clean": "premove ./build ./coverage ./dist-ts ./**.d.ts", + "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", "test:eslint": "eslint ./src", "test:types": "npm-run-all --serial test:types:*", @@ -42,19 +42,18 @@ "test:types:tscurrent": "tsc --build", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", - "test:build": "pnpm pack && publint *.tgz --strict && attw *.tgz; premove *.tgz", - "build": "vite build", - "prepack": "node scripts/prepack.js", - "postpack": "node scripts/postpack.js" + "test:build": "publint --strict && attw --pack", + "build": "pnpm build:tsup", + "build:tsup": "tsup --tsconfig tsconfig.prod.json" }, "type": "module", - "types": "dist/types/index.d.ts", - "module": "dist/index.mjs", + "types": "build/index.d.ts", + "module": "build/index.mjs", "exports": { ".": { - "types": "./dist/types/index.d.ts", "@tanstack/custom-condition": "./src/index.ts", - "default": "./dist/index.mjs" + "types": "./build/index.d.ts", + "default": "./build/index.mjs" }, "./package.json": { "default": "./package.json" @@ -62,9 +61,9 @@ }, "sideEffects": false, "files": [ - "**/*.d.ts", - "dist", - "!dist/types/**" + "build", + "src", + "!src/__tests__" ], "dependencies": { "@tanstack/query-core": "workspace:*", @@ -78,25 +77,10 @@ "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/query-test-utils": "workspace:*", "eslint-plugin-jsdoc": "^50.5.0", - "npm-run-all2": "^5.0.0", - "vite-plugin-dts": "4.2.3", - "vite-plugin-externalize-deps": "^0.9.0", - "vite-tsconfig-paths": "^5.1.4" + "npm-run-all2": "^5.0.0" }, "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0" - }, - "publishConfig": { - "types": "index.d.ts", - "exports": { - ".": { - "types": "./index.d.ts", - "default": "./dist/index.mjs" - }, - "./package.json": { - "default": "./package.json" - } - } } } diff --git a/packages/angular-query-experimental/scripts/postpack.js b/packages/angular-query-experimental/scripts/postpack.js deleted file mode 100644 index 1762b0b474..0000000000 --- a/packages/angular-query-experimental/scripts/postpack.js +++ /dev/null @@ -1,54 +0,0 @@ -import { unlink, rmdir } from 'fs/promises' -import fg from 'fast-glob' - -const constants = { - IGNORE_FILES_PATTERNS: [ - 'dist/**', - 'node_modules/**', - '.git/**', - 'scripts/**', - ], - CLEANUP_FILES_GLOB: ['**/*.d.ts'], - IGNORE_REMOVE_DIRECTORIES: [ - 'dist/**', - 'node_modules/**', - '.git/**', - 'scripts/**', - 'src/**', - ], -} - -async function postpack() { - console.log( - 'Running postpack script to cleanup type declaration linked files used for publishing', - ) - - const typeFiles = await fg(constants.CLEANUP_FILES_GLOB, { - ignore: constants.IGNORE_FILES_PATTERNS, - }) - - if (typeFiles.length === 0) { - return - } - - await Promise.all(typeFiles.map((file) => unlink(file))) - - const dirs = await fg(['**/'], { - onlyDirectories: true, - ignore: constants.IGNORE_REMOVE_DIRECTORIES, - }) - - // Remove empty directories (deepest first) - const sortedDirs = dirs.sort( - (a, b) => b.split('/').length - a.split('/').length, - ) - await Promise.all( - sortedDirs.map( - (dir) => rmdir(dir).catch(() => {}), // Ignore errors (dir not empty) - ), - ) -} - -postpack().catch((error) => { - console.error('Postpack failed:', error) -}) diff --git a/packages/angular-query-experimental/scripts/prepack.js b/packages/angular-query-experimental/scripts/prepack.js deleted file mode 100644 index 26ca98a1ce..0000000000 --- a/packages/angular-query-experimental/scripts/prepack.js +++ /dev/null @@ -1,68 +0,0 @@ -import { link, mkdir } from 'fs/promises' -import { dirname, relative } from 'path' -import fg from 'fast-glob' - -const constants = { - DIST_TYPES_DIRECTORY: 'dist/types', - OUTPUT_DIRECTORY: '.', - DIST_TYPE_FILES_GLOB: 'dist/types/**/*.d.ts', -} - -/* -`prepack` lifecycle script which links type declaration files from the dist folder to the package root. -allows using types in package exports as such: - -`"types": "./index.d.ts"` - -and subpath exports - -```json - "./some-subpath": { - "types": "./some-subpath/index.d.ts", // โœ… works with `"modeResolution": "node"` - "default": "./build/some-subpath/index.mjs" - }, -``` - -When TypeScript is configured with `moduleResolution: node`, type declaration file directory structures are expected -to exactly match the subpath export as in the example above. - -```json - "./some-subpath": { - "types": "./build/dist/some-subpath/index.d.ts", // โŒ does not work with `"moduleResolution": "node"` - "default": "./build/some-subpath/index.mjs" - }, -``` - -It's important to support `"moduleResolution": "node"` as many Angular applications are still configured this way. - -In the `postpack` lifecycle script these links are removed to keep a clean development environment - */ -async function prepack() { - console.log('Running prepack script to prepare types for publishing') - - const typeFiles = await fg([constants.DIST_TYPE_FILES_GLOB]) - if (typeFiles.length === 0) return - - const destDirs = [ - ...new Set( - typeFiles - .map((file) => { - const dest = relative(constants.DIST_TYPES_DIRECTORY, file) - return dirname(dest) - }) - .filter((dir) => dir !== constants.OUTPUT_DIRECTORY), - ), - ] - - await Promise.all(destDirs.map((dir) => mkdir(dir, { recursive: true }))) - await Promise.all( - typeFiles.map((file) => { - const dest = relative(constants.DIST_TYPES_DIRECTORY, file) - return link(file, dest) - }), - ) - - console.log(`Linked ${typeFiles.length} type files`) -} - -prepack().catch(console.error) diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 9837ca7051..68fb75ea2e 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -3,6 +3,8 @@ "compilerOptions": { "outDir": "./dist-ts", "rootDir": ".", + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, "noFallthroughCasesInSwitch": true, "useDefineForClassFields": false, "target": "ES2022" diff --git a/packages/angular-query-experimental/tsconfig.prod.json b/packages/angular-query-experimental/tsconfig.prod.json index b470042ddc..0f4c92da06 100644 --- a/packages/angular-query-experimental/tsconfig.prod.json +++ b/packages/angular-query-experimental/tsconfig.prod.json @@ -3,7 +3,6 @@ "compilerOptions": { "incremental": false, "composite": false, - "rootDir": "../../", - "customConditions": null + "rootDir": "../../" } } diff --git a/packages/angular-query-experimental/tsup.config.js b/packages/angular-query-experimental/tsup.config.js new file mode 100644 index 0000000000..a1e9d23c1c --- /dev/null +++ b/packages/angular-query-experimental/tsup.config.js @@ -0,0 +1,13 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + entry: ['src/index.ts'], + sourcemap: true, + clean: true, + format: ['esm'], + dts: true, + outDir: 'build', + outExtension({ format }) { + return format === 'esm' ? { js: '.mjs' } : { js: '.js' } + }, +}) diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts index 25eb7d8c68..25fdba1056 100644 --- a/packages/angular-query-experimental/vite.config.ts +++ b/packages/angular-query-experimental/vite.config.ts @@ -1,32 +1,8 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { externalizeDeps } from 'vite-plugin-externalize-deps' -import tsconfigPaths from 'vite-tsconfig-paths' -import dts from 'vite-plugin-dts' -import packageJson from './package.json' -import type { Options } from '@tanstack/config/vite' - -function ensureImportFileExtension({ - content, - extension, -}: { - content: string - extension: string -}) { - // replace e.g. `import { foo } from './foo'` with `import { foo } from './foo.js'` - content = content.replace( - /(im|ex)port\s[\w{}/*\s,]+from\s['"](?:\.\.?\/)+?[^.'"]+(?=['"];?)/gm, - `$&.${extension}`, - ) +import { defineConfig } from 'vitest/config' - // replace e.g. `import('./foo')` with `import('./foo.js')` - content = content.replace( - /import\(['"](?:\.\.?\/)+?[^.'"]+(?=['"];?)/gm, - `$&.${extension}`, - ) - return content -} +import packageJson from './package.json' -const config = defineConfig({ +export default defineConfig({ // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { conditions: ['@tanstack/custom-condition'], @@ -50,73 +26,3 @@ const config = defineConfig({ restoreMocks: true, }, }) - -// copy from @tanstack/config/vite with changes: -// - dts outDir: dist/types -// - build - lib - fileName: [name.mjs] -// - rollup - output - preserveModulesRoot: src -export const tanstackViteConfig = (options: Options) => { - const outDir = options.outDir ?? 'dist' - const cjs = options.cjs ?? true - - return defineConfig({ - plugins: [ - externalizeDeps({ include: options.externalDeps ?? [] }), - tsconfigPaths({ - projects: options.tsconfigPath ? [options.tsconfigPath] : undefined, - }), - dts({ - outDir: `dist/types`, - entryRoot: options.srcDir, - include: options.srcDir, - exclude: options.exclude, - tsconfigPath: options.tsconfigPath, - compilerOptions: { - module: 99, // ESNext - declarationMap: false, - }, - beforeWriteFile: (filePath, content) => { - // content = - // options.beforeWriteDeclarationFile?.(filePath, content) || content - return { - filePath, - content: ensureImportFileExtension({ content, extension: 'js' }), - } - }, - afterDiagnostic: (diagnostics) => { - if (diagnostics.length > 0) { - console.error('Please fix the above type errors') - process.exit(1) - } - }, - }), - ], - build: { - outDir, - minify: false, - sourcemap: true, - lib: { - entry: options.entry, - formats: cjs ? ['es', 'cjs'] : ['es'], - fileName: () => '[name].mjs', - }, - rollupOptions: { - output: { - preserveModules: true, - preserveModulesRoot: 'src', - }, - }, - }, - }) -} - -export default mergeConfig( - config, - tanstackViteConfig({ - cjs: false, - entry: ['./src/index.ts'], - exclude: ['src/__tests__'], - srcDir: './src', - tsconfigPath: 'tsconfig.prod.json', - }), -) diff --git a/packages/angular-query-persist-client/.attw.json b/packages/angular-query-persist-client/.attw.json index ac2579855e..ce409e67a8 100644 --- a/packages/angular-query-persist-client/.attw.json +++ b/packages/angular-query-persist-client/.attw.json @@ -1,3 +1,3 @@ { - "ignoreRules": ["cjs-resolves-to-esm"] + "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc378b6c3d..ff70b200c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1231,7 +1231,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(1f29909f8de70b3aa674884b982ac755) + version: 6.4.1(cgoxobftzx7q2rxvco2fw2mfyq) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -2334,15 +2334,6 @@ importers: npm-run-all2: specifier: ^5.0.0 version: 5.0.2 - vite-plugin-dts: - specifier: 4.2.3 - version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - vite-plugin-externalize-deps: - specifier: ^0.9.0 - version: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - vite-tsconfig-paths: - specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) packages/angular-query-persist-client: dependencies: @@ -2376,7 +2367,7 @@ importers: version: link:../query-test-utils '@testing-library/angular': specifier: ^17.3.7 - version: 17.3.7(44e06ac0fb247039d3919c909462d711) + version: 17.3.7(5fchvpeatqbl65tde2d3342iqq) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -6094,9 +6085,6 @@ packages: '@microsoft/api-extractor-model@7.29.4': resolution: {integrity: sha512-LHOMxmT8/tU1IiiiHOdHFF83Qsi+V8d0kLfscG4EvQE9cafiR8blOYr8SfkQKWB1wgEilQgXJX3MIA4vetDLZw==} - '@microsoft/api-extractor-model@7.29.6': - resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} - '@microsoft/api-extractor-model@7.30.1': resolution: {integrity: sha512-CTS2PlASJHxVY8hqHORVb1HdECWOEMcMnM6/kDkPr0RZapAFSIHhg9D4jxuE8g+OWYHtPc10LCpmde5pylTRlA==} @@ -6104,10 +6092,6 @@ packages: resolution: {integrity: sha512-HKm+P4VNzWwvq1Ey+Jfhhj/3MjsD+ka2hbt8L5AcRM95lu1MFOYnz3XlU7Gr79Q/ZhOb7W/imAKeYrOI0bFydg==} hasBin: true - '@microsoft/api-extractor@7.47.7': - resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} - hasBin: true - '@microsoft/api-extractor@7.48.1': resolution: {integrity: sha512-HN9Osa1WxqLM66RaqB5nPAadx+nTIQmY/XtkFdaJvusjG8Tus++QqZtD7KPZDSkhEMGHsYeSyeU8qUzCDUXPjg==} hasBin: true @@ -7120,14 +7104,6 @@ packages: '@types/node': optional: true - '@rushstack/node-core-library@5.7.0': - resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} @@ -7139,14 +7115,6 @@ packages: '@types/node': optional: true - '@rushstack/terminal@0.14.0': - resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - '@rushstack/terminal@0.14.4': resolution: {integrity: sha512-NxACqERW0PHq8Rpq1V6v5iTHEwkRGxenjEW+VWqRYQ8T9puUzgmGHmEZUaUEDHAe9Qyvp0/Ew04sAiQw9XjhJg==} peerDependencies: @@ -7158,9 +7126,6 @@ packages: '@rushstack/ts-command-line@4.22.3': resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} - '@rushstack/ts-command-line@4.22.6': - resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} - '@rushstack/ts-command-line@4.23.2': resolution: {integrity: sha512-JJ7XZX5K3ThBBva38aomgsPv1L7FV6XmSOcR6HtM7HDFZJkepqT65imw26h9ggGqMjsY0R9jcl30tzKcVj9aOQ==} @@ -7999,14 +7964,6 @@ packages: typescript: optional: true - '@vue/language-core@2.1.6': - resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@vue/language-core@2.2.8': resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==} peerDependencies: @@ -15689,26 +15646,11 @@ packages: vite: optional: true - vite-plugin-dts@4.2.3: - resolution: {integrity: sha512-O5NalzHANQRwVw1xj8KQun3Bv8OSDAlNJXrnqoAz10BOuW8FVvY5g4ygj+DlJZL5mtSPuMu9vd3OfrdW5d4k6w==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - vite-plugin-externalize-deps@0.8.0: resolution: {integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==} peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vite-plugin-externalize-deps@0.9.0: - resolution: {integrity: sha512-wg3qb5gCy2d1KpPKyD9wkXMcYJ84yjgziHrStq9/8R7chhUC73mhQz+tVtvhFiICQHsBn1pnkY4IBbPqF9JHNw==} - peerDependencies: - vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 - vite-plugin-solid@2.11.6: resolution: {integrity: sha512-Sl5CTqJTGyEeOsmdH6BOgalIZlwH3t4/y0RQuFLMGnvWMBvxb4+lq7x3BSiAw6etf0QexfNJW7HSOO/Qf7pigg==} peerDependencies: @@ -20293,14 +20235,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.29.6(@types/node@22.15.3)': - dependencies: - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor-model@7.30.1(@types/node@22.15.3)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -20328,24 +20262,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.7(@types/node@22.15.3)': - dependencies: - '@microsoft/api-extractor-model': 7.29.6(@types/node@22.15.3) - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.0(@types/node@22.15.3) - '@rushstack/ts-command-line': 4.22.6(@types/node@22.15.3) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.10 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor@7.48.1(@types/node@22.15.3)': dependencies: '@microsoft/api-extractor-model': 7.30.1(@types/node@22.15.3) @@ -21081,7 +20997,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(1f29909f8de70b3aa674884b982ac755)': + '@react-navigation/stack@6.4.1(cgoxobftzx7q2rxvco2fw2mfyq)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) @@ -21313,19 +21229,6 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 - '@rushstack/node-core-library@5.7.0(@types/node@22.15.3)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.10 - semver: 7.5.4 - optionalDependencies: - '@types/node': 22.15.3 - '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 @@ -21338,13 +21241,6 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 - '@rushstack/terminal@0.14.0(@types/node@22.15.3)': - dependencies: - '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 22.15.3 - '@rushstack/terminal@0.14.4(@types/node@22.15.3)': dependencies: '@rushstack/node-core-library': 5.10.1(@types/node@22.15.3) @@ -21362,15 +21258,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@4.22.6(@types/node@22.15.3)': - dependencies: - '@rushstack/terminal': 0.14.0(@types/node@22.15.3) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@rushstack/ts-command-line@4.23.2(@types/node@22.15.3)': dependencies: '@rushstack/terminal': 0.14.4(@types/node@22.15.3) @@ -21899,7 +21786,7 @@ snapshots: - tsx - yaml - '@testing-library/angular@17.3.7(44e06ac0fb247039d3919c909462d711)': + '@testing-library/angular@17.3.7(5fchvpeatqbl65tde2d3342iqq)': dependencies: '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) @@ -22588,19 +22475,6 @@ snapshots: optionalDependencies: typescript: 5.8.3 - '@vue/language-core@2.1.6(typescript@5.8.3)': - dependencies: - '@volar/language-core': 2.4.12 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.8.3 - '@vue/language-core@2.2.8(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.12 @@ -32235,33 +32109,10 @@ snapshots: - rollup - supports-color - vite-plugin-dts@4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): - dependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.15.3) - '@rollup/pluginutils': 5.1.4(rollup@4.40.2) - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.1.6(typescript@5.8.3) - compare-versions: 6.1.1 - debug: 4.4.0 - kolorist: 1.8.0 - local-pkg: 0.5.1 - magic-string: 0.30.17 - typescript: 5.8.3 - optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-externalize-deps@0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): dependencies: vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vite-plugin-externalize-deps@0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): - dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.10 From e292e3e5cf1632fc9f55dc73ceb59d2913a7bc2b Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Tue, 17 Jun 2025 23:55:23 +0200 Subject: [PATCH 152/432] fix(angular-query): fix types missing in published package (#9283) --- packages/angular-query-experimental/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/angular-query-experimental/README.md b/packages/angular-query-experimental/README.md index 10a919cb70..6ed2dfa05a 100644 --- a/packages/angular-query-experimental/README.md +++ b/packages/angular-query-experimental/README.md @@ -131,3 +131,5 @@ export interface Post { body: string } ``` + + From ddc15f7efabef588bde9ab525e11918f46811034 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 17 Jun 2025 21:57:31 +0000 Subject: [PATCH 153/432] release: v5.80.9 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 26e28d2e7c..9765185933 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 990c1e91d5..e82f7cab25 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-sync-storage-persister": "^5.80.7", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 1535f69918..c5fec2dd72 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 9cb9f4195f..ad309d4044 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.8", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-devtools-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 2d94dfd481..026aa1fb32 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index a0b6686ae8..3b05688400 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 4a9a2e434c..24a2260a22 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 834c2c1b1a..7d4113d112 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 4c31abe6ad..2fdaa3bf9b 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 3902c9df45..18c5744101 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index bf14cf5024..57a16bcdda 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.8", + "@tanstack/angular-query-experimental": "^5.80.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index b8ab89a07d..8c3008db3c 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.8", + "version": "5.80.9", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 3257af5c78..9aab83934a 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.8", + "version": "5.80.9", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", From 5b017d1a68b407f83171ef727ec3af03b3e39586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konrad=20Lisiczy=C5=84ski?= Date: Wed, 18 Jun 2025 18:05:29 +0200 Subject: [PATCH 154/432] docs: Update community-projects.md (#9285) I just added `@normy/vue-query` addon to normy. Also, I added `@normy/query-core` addon and refactored `@normy/react-query` to use it, so it would be very easy to add more addons, like to angular, solid and so on --- docs/framework/vue/community/community-projects.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/framework/vue/community/community-projects.md b/docs/framework/vue/community/community-projects.md index dd3dfa2306..ac0d647e3a 100644 --- a/docs/framework/vue/community/community-projects.md +++ b/docs/framework/vue/community/community-projects.md @@ -20,6 +20,12 @@ Zova provides the Model mechanism based on Vue Query in the MVC architecture, en Link: https://github.com/cabloy/zova Docs: https://zova.js.org/guide/techniques/model/introduction.html +## Normy + +Automatic normalization and data updates for data fetching libraries + +Link: https://github.com/klis87/normy + ## Query Rewind Time travel and visualize state during development From cdab6e2b2b6e4ef6ced94df7fee61c665363f634 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Thu, 19 Jun 2025 01:28:16 +0900 Subject: [PATCH 155/432] ci: add link verification step to PR workflow (#9267) --- .github/workflows/pr.yml | 2 + .../react/guides/important-defaults.md | 6 +- knip.json | 5 +- package.json | 3 +- pnpm-lock.yaml | 595 ++++++++++-------- scripts/verify-links.ts | 19 +- 6 files changed, 366 insertions(+), 264 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 5ef53b56ce..45ad4e3f1e 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -35,6 +35,8 @@ jobs: main-branch-name: main - name: Run Checks run: pnpm run test:pr --parallel=3 + - name: Verify Links + run: pnpm run verify-links - name: Stop Nx Agents if: ${{ always() }} run: npx nx-cloud stop-all-agents diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md index 8fddf5365d..034944197a 100644 --- a/docs/framework/react/guides/important-defaults.md +++ b/docs/framework/react/guides/important-defaults.md @@ -11,9 +11,9 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul - A Query that has a `staleTime` set is considered **fresh** until that `staleTime` has elapsed. - - set `staleTime` to e.g. `2 * 60 * 1000` to make sure data is read from the cache, without triggering any kinds of refetches, for 2 minutes, or until the Query is [invalidated manually](./query-invalidation.md). - - set `staleTime` to `Infinity` to never trigger a refetch until the Query is [invalidated manually](./query-invalidation.md). - - set `staleTime` to `'static'` to **never** trigger a refetch, even if the Query is [invalidated manually](./query-invalidation.md). + - set `staleTime` to e.g. `2 * 60 * 1000` to make sure data is read from the cache, without triggering any kinds of refetches, for 2 minutes, or until the Query is [invalidated manually](../query-invalidation.md). + - set `staleTime` to `Infinity` to never trigger a refetch until the Query is [invalidated manually](../query-invalidation.md). + - set `staleTime` to `'static'` to **never** trigger a refetch, even if the Query is [invalidated manually](../query-invalidation.md). - Stale queries are refetched automatically in the background when: - New instances of the query mount diff --git a/knip.json b/knip.json index c36c891ce7..490e31c190 100644 --- a/knip.json +++ b/knip.json @@ -2,7 +2,7 @@ "$schema": "https://unpkg.com/knip@5/schema.json", "ignore": [ ".pnpmfile.cjs", - "scripts/*.js", + "scripts/*.{j,t}s", "**/root.*.config.*", "**/ts-fixture/file.ts" ], @@ -10,7 +10,8 @@ "@types/react", "@types/react-dom", "react", - "react-dom" + "react-dom", + "markdown-link-extractor" ], "ignoreWorkspaces": ["examples/**", "integrations/**"], "workspaces": { diff --git a/package.json b/package.json index c8896ea94c..841f974e5d 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "prettier:write": "pnpm run prettier --write", "docs:generate": "node scripts/generateDocs.js", "cipublish": "node scripts/publish.js", - "verify-links": "node scripts/verify-links.ts" + "verify-links": "pnpm tsx scripts/verify-links.ts" }, "nx": { "includedScripts": [ @@ -65,6 +65,7 @@ "react-dom": "^19.0.0", "sherif": "^1.0.0", "tsup": "^8.4.0", + "tsx": "^4.20.1", "typescript": "5.8.3", "typescript50": "npm:typescript@5.0", "typescript51": "npm:typescript@5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff70b200c4..bd2a33c8e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,7 +46,7 @@ importers: version: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) '@tanstack/config': specifier: ^0.14.2 - version: 0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 @@ -61,10 +61,10 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitest/coverage-istanbul': specifier: ^3.1.1 - version: 3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@vitest/eslint-plugin': specifier: ^1.1.36 - version: 1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -115,7 +115,10 @@ importers: version: 1.0.0 tsup: specifier: ^8.4.0 - version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) + version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) + tsx: + specifier: ^4.20.1 + version: 4.20.1 typescript: specifier: 5.8.3 version: 5.8.3 @@ -145,10 +148,10 @@ importers: version: typescript@5.7.2 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vitest: specifier: ^3.1.3 - version: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/angular/auto-refetching: dependencies: @@ -182,7 +185,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -225,7 +228,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -274,7 +277,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -323,7 +326,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -366,7 +369,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -412,7 +415,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -455,7 +458,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -501,7 +504,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -547,7 +550,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -593,7 +596,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -636,7 +639,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -676,13 +679,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/auto-refetching: dependencies: @@ -744,13 +747,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/basic-graphql-request: dependencies: @@ -775,10 +778,10 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/chat: dependencies: @@ -797,10 +800,10 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.0.14 - version: 4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) tailwindcss: specifier: ^4.0.14 version: 4.0.14 @@ -809,7 +812,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/default-query-function: dependencies: @@ -828,13 +831,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/devtools-panel: dependencies: @@ -853,13 +856,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/eslint-legacy: dependencies: @@ -893,13 +896,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/infinite-query-with-max-pages: dependencies: @@ -1076,13 +1079,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/optimistic-updates-cache: dependencies: @@ -1185,13 +1188,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/prefetching: dependencies: @@ -1231,7 +1234,7 @@ importers: version: 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/stack': specifier: ^6.4.1 - version: 6.4.1(cgoxobftzx7q2rxvco2fw2mfyq) + version: 6.4.1(1f29909f8de70b3aa674884b982ac755) '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -1326,13 +1329,13 @@ importers: version: 1.2.3 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/rick-morty: dependencies: @@ -1369,13 +1372,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/shadow-dom: dependencies: @@ -1400,13 +1403,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/simple: dependencies: @@ -1425,13 +1428,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/star-wars: dependencies: @@ -1468,13 +1471,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/react/suspense: dependencies: @@ -1499,13 +1502,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/solid/astro: dependencies: @@ -1514,16 +1517,16 @@ importers: version: 0.9.4(prettier@3.5.3)(typescript@5.8.3) '@astrojs/node': specifier: ^9.1.3 - version: 9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1)) + version: 9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) '@astrojs/solid-js': specifier: ^5.0.7 - version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(yaml@2.6.1) + version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1532,7 +1535,7 @@ importers: version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 - version: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1) + version: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) solid-js: specifier: ^1.9.5 version: 1.9.5 @@ -1560,10 +1563,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) examples/solid/basic-graphql-request: dependencies: @@ -1588,10 +1591,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) examples/solid/default-query-function: dependencies: @@ -1610,10 +1613,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) examples/solid/simple: dependencies: @@ -1635,10 +1638,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) examples/solid/solid-start-streaming: dependencies: @@ -1650,7 +1653,7 @@ importers: version: 0.15.3(solid-js@1.9.5) '@solidjs/start': specifier: ^1.1.3 - version: 1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(yaml@2.6.1) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1662,7 +1665,7 @@ importers: version: 1.9.5 vinxi: specifier: ^0.5.3 - version: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/auto-refetching: dependencies: @@ -1675,13 +1678,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1693,7 +1696,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/basic: dependencies: @@ -1712,13 +1715,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1730,7 +1733,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/load-more-infinite-scroll: dependencies: @@ -1743,13 +1746,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1761,7 +1764,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/optimistic-updates: dependencies: @@ -1774,13 +1777,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1792,7 +1795,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/playground: dependencies: @@ -1805,13 +1808,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1823,7 +1826,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/simple: dependencies: @@ -1836,7 +1839,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@tsconfig/svelte': specifier: ^5.0.4 version: 5.0.4 @@ -1851,7 +1854,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/ssr: dependencies: @@ -1864,13 +1867,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1882,7 +1885,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/svelte/star-wars: dependencies: @@ -1895,13 +1898,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) autoprefixer: specifier: ^10.4.20 version: 10.4.21(postcss@8.5.3) @@ -1922,7 +1925,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/vue/basic: dependencies: @@ -1938,13 +1941,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/vue/dependent-queries: dependencies: @@ -1957,13 +1960,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/vue/persister: dependencies: @@ -1988,13 +1991,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) examples/vue/simple: dependencies: @@ -2010,13 +2013,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) integrations/angular-cli-20: dependencies: @@ -2053,7 +2056,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1) + version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -2130,7 +2133,7 @@ importers: version: link:../../packages/react-query-devtools '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) react: specifier: ^19.0.0 version: 19.0.0 @@ -2139,7 +2142,7 @@ importers: version: 19.0.0(react@19.0.0) vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) integrations/react-webpack-4: dependencies: @@ -2231,16 +2234,16 @@ importers: version: 1.9.5 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) integrations/svelte-vite: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@tanstack/svelte-query': specifier: workspace:* version: link:../../packages/svelte-query @@ -2252,7 +2255,7 @@ importers: version: 5.26.1 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) integrations/vue-vite: dependencies: @@ -2265,13 +2268,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vue-tsc: specifier: ^2.2.8 version: 2.2.8(typescript@5.8.3) @@ -2367,7 +2370,7 @@ importers: version: link:../query-test-utils '@testing-library/angular': specifier: ^17.3.7 - version: 17.3.7(5fchvpeatqbl65tde2d3342iqq) + version: 17.3.7(44e06ac0fb247039d3919c909462d711) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -2427,7 +2430,7 @@ importers: version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2490,10 +2493,10 @@ importers: version: 2.2.1 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) packages/query-persist-client-core: dependencies: @@ -2556,7 +2559,7 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2587,7 +2590,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2605,7 +2608,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) next: specifier: ^15.3.1 version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) @@ -2636,7 +2639,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2664,10 +2667,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) packages/solid-query-devtools: dependencies: @@ -2686,10 +2689,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) packages/solid-query-persist-client: dependencies: @@ -2714,10 +2717,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) packages/svelte-query: dependencies: @@ -2730,13 +2733,13 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils '@testing-library/svelte': specifier: ^5.2.6 - version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) @@ -2761,7 +2764,7 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query @@ -2786,7 +2789,7 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2795,7 +2798,7 @@ importers: version: link:../svelte-query '@testing-library/svelte': specifier: ^5.2.6 - version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.0 version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) @@ -2826,7 +2829,7 @@ importers: version: link:../query-test-utils '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) '@vue/composition-api': specifier: 1.7.2 version: 1.7.2(vue@3.4.35(typescript@5.8.3)) @@ -2854,7 +2857,7 @@ importers: version: link:../vue-query '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^9.27.0 version: 9.27.0(eslint@9.15.0(jiti@2.4.2)) @@ -2863,7 +2866,7 @@ importers: version: 5.8.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vue: specifier: ^3.4.27 version: 3.4.35(typescript@5.8.3) @@ -5604,138 +5607,163 @@ packages: resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm64@1.1.0': resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.1.0': resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.1.0': resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.1.0': resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.1.0': resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-arm64@1.1.0': resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.1.0': resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm64@0.34.1': resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.1': resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.1': resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.1': resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-arm64@0.34.1': resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.1': resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} @@ -6268,42 +6296,49 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-arm64-musl@1.0.1': resolution: {integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/nice-linux-ppc64-gnu@1.0.1': resolution: {integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-riscv64-gnu@1.0.1': resolution: {integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-s390x-gnu@1.0.1': resolution: {integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-gnu@1.0.1': resolution: {integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/nice-linux-x64-musl@1.0.1': resolution: {integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/nice-win32-arm64-msvc@1.0.1': resolution: {integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==} @@ -6373,48 +6408,56 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-gnu@15.3.1': resolution: {integrity: sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@14.2.28': resolution: {integrity: sha512-p6gvatI1nX41KCizEe6JkF0FS/cEEF0u23vKDpl+WhPe/fCTBeGkEBh7iW2cUM0rvquPVwPWdiUR6Ebr/kQWxQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-arm64-musl@15.3.1': resolution: {integrity: sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@14.2.28': resolution: {integrity: sha512-nsiSnz2wO6GwMAX2o0iucONlVL7dNgKUqt/mDTATGO2NY59EO/ZKnKEr80BJFhuA5UC1KZOMblJHWZoqIJddpA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-gnu@15.3.1': resolution: {integrity: sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@14.2.28': resolution: {integrity: sha512-+IuGQKoI3abrXFqx7GtlvNOpeExUH1mTIqCrh1LGFf8DnlUcTmOOCApEnPJUSLrSbzOdsF2ho2KhnQoO0I1RDw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-linux-x64-musl@15.3.1': resolution: {integrity: sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@14.2.28': resolution: {integrity: sha512-l61WZ3nevt4BAnGksUVFKy2uJP5DPz2E0Ma/Oklvo3sGj9sw3q7vBWONFRgz+ICiHpW5mV+mBrkB3XEubMrKaA==} @@ -6532,24 +6575,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@nx/nx-linux-arm64-musl@20.7.2': resolution: {integrity: sha512-/r4TNzyjhic7DZei6DXfbsfONDp40LbHjn/XcrJ53yI1UHGFunUUQYEDeBbgOcqs0IkRitNSgTDgpkG9UvJ65Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@nx/nx-linux-x64-gnu@20.7.2': resolution: {integrity: sha512-s/cMSJlJeF+Io+3bWy+wJSemBwKL/IAcXUxLXRSDuaPXv7AoDWctmbfcyLqQJ7Ufcioivvil0XTtD/vkJI0x3A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@nx/nx-linux-x64-musl@20.7.2': resolution: {integrity: sha512-9ZdPQwD4LDhwMOQ1NyYRDNr+6FVOdFeibkO+nN4nhkNBFxK6w2iprebrUKeOvQ1yHttt2YSC5p9bqxP7DVtE7w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@nx/nx-win32-arm64-msvc@20.7.2': resolution: {integrity: sha512-fSd44rmECiw/HZD9f0mNPRF8zwtx3N3TNU7CRohZtRBVotUgOuQU1XONi1J0V117g8q4VQmmaAO9eMdVxM2ZuQ==} @@ -6604,36 +6651,42 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-wasm@2.3.0': resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} @@ -6952,111 +7005,133 @@ packages: resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-gnueabihf@4.40.2': resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.40.1': resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm-musleabihf@4.40.2': resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.40.1': resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.40.2': resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.40.1': resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-musl@4.40.2': resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.40.1': resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loongarch64-gnu@4.40.2': resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.40.1': resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.40.2': resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.40.1': resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-musl@4.40.2': resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.40.1': resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.40.2': resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.40.1': resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.40.2': resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.40.1': resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-linux-x64-musl@4.40.2': resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.40.1': resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==} @@ -7410,24 +7485,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.0.14': resolution: {integrity: sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.0.14': resolution: {integrity: sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.0.14': resolution: {integrity: sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-win32-arm64-msvc@4.0.14': resolution: {integrity: sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==} @@ -11786,48 +11865,56 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-gnu@1.29.2: resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.27.0: resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-arm64-musl@1.29.2: resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.27.0: resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-gnu@1.29.2: resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.27.0: resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-linux-x64-musl@1.29.2: resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.27.0: resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} @@ -15132,6 +15219,11 @@ packages: typescript: optional: true + tsx@4.20.1: + resolution: {integrity: sha512-JsFUnMHIE+g8KllOvWTrSOwCKM10xLcsesvUQR61znsbrcwZ4U/QaqdymmvTqG5GMD7k2VFv9UG35C4dRy34Ag==} + engines: {node: '>=18.0.0'} + hasBin: true + tty-browserify@0.0.0: resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} @@ -16486,7 +16578,7 @@ snapshots: '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.0.0(@angular/compiler-cli@20.0.0(@angular/compiler@20.0.0)(typescript@5.8.3))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@types/node@22.15.3)(chokidar@4.0.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(postcss@8.5.3)(tailwindcss@4.0.14)(terser@5.39.1)(tslib@2.8.1)(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1)': + '@angular/build@20.0.0(841ce0d66534d5fe468cf43db50ee74f)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2000.0(chokidar@4.0.3) @@ -16496,7 +16588,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.10(@types/node@22.15.3) - '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) beasties: 0.3.4 browserslist: 4.24.4 esbuild: 0.25.5 @@ -16516,7 +16608,7 @@ snapshots: tinyglobby: 0.2.13 tslib: 2.8.1 typescript: 5.8.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) @@ -16525,7 +16617,7 @@ snapshots: lmdb: 3.3.0 postcss: 8.5.3 tailwindcss: 4.0.14 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - chokidar @@ -16736,10 +16828,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))': + '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))': dependencies: '@astrojs/internal-helpers': 0.6.1 - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) send: 1.2.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -16749,11 +16841,11 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(yaml@2.6.1)': + '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)': dependencies: solid-js: 1.9.5 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -16769,9 +16861,9 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': + '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': dependencies: - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) autoprefixer: 10.4.21(postcss@8.5.3) postcss: 8.5.3 postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) @@ -16791,14 +16883,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@vercel/edge': 1.2.1 '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.2) '@vercel/routing-utils': 5.0.4 - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) esbuild: 0.25.3 tinyglobby: 0.2.13 transitivePeerDependencies: @@ -20997,7 +21089,7 @@ snapshots: dependencies: nanoid: 3.3.8 - '@react-navigation/stack@6.4.1(cgoxobftzx7q2rxvco2fw2mfyq)': + '@react-navigation/stack@6.4.1(1f29909f8de70b3aa674884b982ac755)': dependencies: '@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@4.12.0(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0))(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) '@react-navigation/native': 6.1.18(react-native@0.76.3(@babel/core@7.26.10)(@babel/preset-env@7.27.2(@babel/core@7.26.10))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@19.0.1)(encoding@0.1.13)(react@19.0.0))(react@19.0.0) @@ -21473,11 +21565,11 @@ snapshots: dependencies: solid-js: 1.9.5 - '@solidjs/start@1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(yaml@2.6.1)': + '@solidjs/start@1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(yaml@2.6.1)': dependencies: - '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.11 @@ -21488,8 +21580,8 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.0.5(solid-js@1.9.5) tinyglobby: 0.2.13 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -21527,14 +21619,14 @@ snapshots: dependencies: acorn: 8.14.1 - '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))': + '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))': dependencies: - '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -21547,7 +21639,7 @@ snapshots: set-cookie-parser: 2.7.1 sirv: 3.0.0 svelte: 5.26.1 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) '@sveltejs/package@2.3.10(svelte@5.26.1)(typescript@5.8.3)': dependencies: @@ -21560,47 +21652,47 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) debug: 4.4.0 svelte: 5.26.1 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) debug: 4.4.0 svelte: 5.26.1 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.26.1 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.26.1 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) transitivePeerDependencies: - supports-color @@ -21668,15 +21760,15 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.0.14 '@tailwindcss/oxide-win32-x64-msvc': 4.0.14 - '@tailwindcss/vite@4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@tailwindcss/vite@4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@tailwindcss/node': 4.0.14 '@tailwindcss/oxide': 4.0.14 lightningcss: 1.29.2 tailwindcss: 4.0.14 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - '@tanstack/config@0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@tanstack/config@0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@commitlint/parse': 19.5.0 '@eslint/js': 9.17.0 @@ -21699,9 +21791,9 @@ snapshots: typedoc-plugin-markdown: 4.3.3(typedoc@0.27.5(typescript@5.8.3)) typescript-eslint: 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) v8flags: 4.0.1 - vite-plugin-dts: 4.0.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - vite-plugin-externalize-deps: 0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) - vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite-plugin-dts: 4.0.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite-plugin-externalize-deps: 0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) transitivePeerDependencies: - '@types/node' - esbuild @@ -21711,7 +21803,7 @@ snapshots: - typescript - vite - '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)': + '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.1 @@ -21724,7 +21816,7 @@ snapshots: babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 - vite: 6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -21758,7 +21850,7 @@ snapshots: ansis: 3.17.0 diff: 7.0.0 - '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)': + '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.1 @@ -21767,7 +21859,7 @@ snapshots: '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 - '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 @@ -21786,7 +21878,7 @@ snapshots: - tsx - yaml - '@testing-library/angular@17.3.7(5fchvpeatqbl65tde2d3342iqq)': + '@testing-library/angular@17.3.7(44e06ac0fb247039d3919c909462d711)': dependencies: '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) @@ -21845,13 +21937,13 @@ snapshots: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@testing-library/svelte@5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@testing-library/svelte@5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@testing-library/dom': 10.4.0 svelte: 5.26.1 optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) '@tsconfig/node10@1.0.11': optional: true @@ -22150,9 +22242,9 @@ snapshots: '@urql/core': 5.0.8(graphql@16.9.0) wonka: 6.3.4 - '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': optionalDependencies: - '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) next: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: 19.0.0 svelte: 5.26.1 @@ -22225,7 +22317,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@babel/parser': 7.27.1 acorn: 8.14.1 @@ -22236,56 +22328,56 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) acorn: 8.14.1 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.14.1) astring: 1.8.6 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - '@vitejs/plugin-basic-ssl@2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - '@vitejs/plugin-react@4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': dependencies: - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vue: 3.4.35(typescript@5.8.3) - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) vue: 3.4.35(typescript@5.8.3) - '@vitest/coverage-istanbul@3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vitest/coverage-istanbul@3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.0 @@ -22297,17 +22389,17 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.15.0(jiti@2.4.2) optionalDependencies: typescript: 5.8.3 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) '@vitest/expect@3.1.3': dependencies: @@ -22316,14 +22408,14 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1))': + '@vitest/mocker@3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': dependencies: '@vitest/spy': 3.1.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.6.6(@types/node@22.15.3)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) '@vitest/pretty-format@3.1.3': dependencies: @@ -23021,7 +23113,7 @@ snapshots: astring@1.8.6: {} - astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(typescript@5.8.3)(yaml@2.6.1): + astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.11.0 '@astrojs/internal-helpers': 0.6.1 @@ -23072,8 +23164,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) vfile: 6.0.3 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.1 @@ -28524,7 +28616,7 @@ snapshots: defu: 6.1.4 destr: 2.0.3 dot-prop: 9.0.0 - esbuild: 0.25.3 + esbuild: 0.25.5 escape-string-regexp: 5.0.0 etag: 1.8.1 exsolve: 1.0.4 @@ -29417,12 +29509,13 @@ snapshots: postcss: 8.5.3 ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.6.1): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(yaml@2.6.1): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 2.4.2 postcss: 8.5.3 + tsx: 4.20.1 yaml: 2.6.1 postcss-media-query-parser@0.2.3: {} @@ -31493,16 +31586,16 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1)): + tsup-preset-solid@2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)): dependencies: esbuild-plugin-solid: 0.5.0(esbuild@0.25.5)(solid-js@1.9.5) - tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1) + tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) transitivePeerDependencies: - esbuild - solid-js - supports-color - tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(typescript@5.8.3)(yaml@2.6.1): + tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1): dependencies: bundle-require: 5.1.0(esbuild@0.25.3) cac: 6.7.14 @@ -31512,7 +31605,7 @@ snapshots: esbuild: 0.25.3 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.6.1) + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(yaml@2.6.1) resolve-from: 5.0.0 rollup: 4.40.1 source-map: 0.8.0-beta.0 @@ -31530,6 +31623,13 @@ snapshots: - tsx - yaml + tsx@4.20.1: + dependencies: + esbuild: 0.25.5 + get-tsconfig: 4.8.1 + optionalDependencies: + fsevents: 2.3.3 + tty-browserify@0.0.0: {} tuf-js@3.0.1: @@ -31990,7 +32090,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1): + vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): dependencies: '@babel/core': 7.26.10 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) @@ -32024,7 +32124,7 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) zod: 3.24.2 transitivePeerDependencies: - '@azure/app-configuration' @@ -32068,13 +32168,13 @@ snapshots: - xml2js - yaml - vite-node@3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1): + vite-node@3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - jiti @@ -32089,7 +32189,7 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.0.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + vite-plugin-dts@4.0.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): dependencies: '@microsoft/api-extractor': 7.47.4(@types/node@22.15.3) '@rollup/pluginutils': 5.1.4(rollup@4.40.2) @@ -32103,17 +32203,17 @@ snapshots: typescript: 5.8.3 vue-tsc: 2.0.29(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + vite-plugin-externalize-deps@0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -32121,14 +32221,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -32136,25 +32236,25 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) transitivePeerDependencies: - supports-color - typescript - vite@6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1): + vite@6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): dependencies: esbuild: 0.24.2 postcss: 8.5.3 @@ -32167,9 +32267,10 @@ snapshots: lightningcss: 1.29.2 sass: 1.88.0 terser: 5.39.1 + tsx: 4.20.1 yaml: 2.6.1 - vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1): + vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): dependencies: esbuild: 0.25.3 fdir: 6.4.4(picomatch@4.0.2) @@ -32185,9 +32286,10 @@ snapshots: lightningcss: 1.29.2 sass: 1.88.0 terser: 5.39.1 + tsx: 4.20.1 yaml: 2.6.1 - vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1): + vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) @@ -32203,20 +32305,21 @@ snapshots: lightningcss: 1.29.2 sass: 1.88.0 terser: 5.39.1 + tsx: 4.20.1 yaml: 2.6.1 - vitefu@1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + vitefu@1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): optionalDependencies: - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitefu@1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)): + vitefu@1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1): + vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): dependencies: '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1)) + '@vitest/mocker': 3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) '@vitest/pretty-format': 3.1.3 '@vitest/runner': 3.1.3 '@vitest/snapshot': 3.1.3 @@ -32233,8 +32336,8 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) - vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 diff --git a/scripts/verify-links.ts b/scripts/verify-links.ts index e173d663bb..081382ecae 100644 --- a/scripts/verify-links.ts +++ b/scripts/verify-links.ts @@ -1,13 +1,8 @@ +import { existsSync, readFileSync, statSync } from 'node:fs' +import path, { resolve } from 'node:path' import fg from 'fast-glob' -import { readFileSync, existsSync, statSync } from 'node:fs' -// @ts-ignore +// @ts-ignore Could not find a declaration file for module 'markdown-link-extractor'. import markdownLinkExtractor from 'markdown-link-extractor' -import path, { join, dirname, resolve } from 'node:path' - -interface MarkdownLink { - href: string - text: string -} function isRelativeLink(link: string) { return ( @@ -29,7 +24,7 @@ function normalizePath(p: string): string { function fileExistsForLink( link: string, markdownFile: string, - errors: any[], + errors: Array, ): boolean { // Remove hash if present const filePart = link.split('#')[0] @@ -97,12 +92,12 @@ async function findMarkdownLinks() { console.log(`Found ${markdownFiles.length} markdown files\n`) - const errors: any[] = [] + const errors: Array = [] // Process each file for (const file of markdownFiles) { const content = readFileSync(file, 'utf-8') - const links: any[] = markdownLinkExtractor(content) + const links: Array = markdownLinkExtractor(content) const filteredLinks = links.filter((link: any) => { if (typeof link === 'string') { @@ -114,7 +109,7 @@ async function findMarkdownLinks() { }) if (filteredLinks.length > 0) { - filteredLinks.forEach((link: any) => { + filteredLinks.forEach((link) => { const href = typeof link === 'string' ? link : link.href fileExistsForLink(href, file, errors) }) From 786beac4b18877858826a061357885fd374d82a9 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Thu, 19 Jun 2025 02:52:28 +0900 Subject: [PATCH 156/432] chore: update Node version and modify script commands (#9286) - Updated Node version in .nvmrc from 22.12.0 to 24.2.0. - Changed the "verify-links" script in package.json to use "node" instead of "pnpm tsx". - Removed tsx dependency from package.json and pnpm-lock.yaml. --- .nvmrc | 2 +- package.json | 3 +-- pnpm-lock.yaml | 4 +--- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.nvmrc b/.nvmrc index 1d9b7831ba..5003ba8fd9 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.12.0 +24.2.0 diff --git a/package.json b/package.json index 841f974e5d..c8896ea94c 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "prettier:write": "pnpm run prettier --write", "docs:generate": "node scripts/generateDocs.js", "cipublish": "node scripts/publish.js", - "verify-links": "pnpm tsx scripts/verify-links.ts" + "verify-links": "node scripts/verify-links.ts" }, "nx": { "includedScripts": [ @@ -65,7 +65,6 @@ "react-dom": "^19.0.0", "sherif": "^1.0.0", "tsup": "^8.4.0", - "tsx": "^4.20.1", "typescript": "5.8.3", "typescript50": "npm:typescript@5.0", "typescript51": "npm:typescript@5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd2a33c8e9..bca2103e44 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -116,9 +116,6 @@ importers: tsup: specifier: ^8.4.0 version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) - tsx: - specifier: ^4.20.1 - version: 4.20.1 typescript: specifier: 5.8.3 version: 5.8.3 @@ -31629,6 +31626,7 @@ snapshots: get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 + optional: true tty-browserify@0.0.0: {} From af1de4ddb76ff78280a69d064c932e8bf2818f74 Mon Sep 17 00:00:00 2001 From: Anders Madsen <28491857+Axedyson@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:26:51 +0200 Subject: [PATCH 157/432] docs: Change the word 'Vue' to 'Solid' (#9287) --- docs/framework/solid/guides/suspense.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/solid/guides/suspense.md b/docs/framework/solid/guides/suspense.md index 7b08220701..31924d1924 100644 --- a/docs/framework/solid/guides/suspense.md +++ b/docs/framework/solid/guides/suspense.md @@ -5,7 +5,7 @@ title: Suspense Solid Query can also be used with Solid's [Suspense](https://docs.solidjs.com/reference/components/suspense) API's. -To do that you need to wrap your suspendable component with `Suspense` component provided by Vue +To do that you need to wrap your suspendable component with `Suspense` component provided by Solid ```tsx import { Suspense } from 'solid-js' From fa4867377633f099b92440c2b7a94956b2f25c2b Mon Sep 17 00:00:00 2001 From: LoicDavid <36003052+LoicDavid@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:48:26 +0200 Subject: [PATCH 158/432] perf(query-core): clear query's revertState once fetching ends successfully (#9265) revertState is used as a fallback for fetching failure. Clearing it once fetching ends successfully improve memory usage, particularly with queries returning large amount of data. Co-authored-by: Dominik Dorfmeister --- packages/query-core/src/query.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 8d6de1419d..0987564694 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -604,6 +604,8 @@ export class Query< fetchMeta: action.meta ?? null, } case 'success': + // If fetching ends successfully, we don't need revertState as a fallback anymore. + this.#revertState = undefined return { ...state, data: action.data, From 6f3d93c2bfc65442936afaa97aa159f77ceffe50 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 19 Jun 2025 08:52:26 +0000 Subject: [PATCH 159/432] release: v5.80.10 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 9765185933..0693f210a3 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index e82f7cab25..b88fb4f4e3 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.80.7", + "@tanstack/query-sync-storage-persister": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index c5fec2dd72..553980c7d9 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index ad309d4044..a9168e91c4 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.9", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-devtools-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 026aa1fb32..f4ffa49a09 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 3b05688400..e1aeef327e 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 24a2260a22..e6d0ad43b0 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 7d4113d112..1647e2694b 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 2fdaa3bf9b..0603533169 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 18c5744101..2dfcabef1b 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 57a16bcdda..f8d60e8a2e 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.9", + "@tanstack/angular-query-experimental": "^5.80.10", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 0c703b2040..cb81307937 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 2546252a0d..c36894dca6 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index c472affb84..c9b4217cc7 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 420562b270..476d9a9e2e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.7", - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", - "@tanstack/react-query-persist-client": "^5.80.7", + "@tanstack/query-sync-storage-persister": "^5.80.10", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query-persist-client": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 88e3bc6d89..04d73de41a 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 2d8aa76219..0ab7b4de07 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index f35670bfc1..66734a95f5 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6ed0901d31..b7f84192ef 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.7", - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", - "@tanstack/react-query-persist-client": "^5.80.7", + "@tanstack/query-sync-storage-persister": "^5.80.10", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query-persist-client": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b200459eda..8352b6744f 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 24f517cb8a..f41b42cd61 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 5e8d8fabd3..9b96d3d329 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 2938475aca..fccb778c01 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", - "@tanstack/react-query-next-experimental": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query-next-experimental": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 692a6be381..e80bc56f73 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 365c5357ee..84f744c48c 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.7", + "@tanstack/query-sync-storage-persister": "^5.80.10", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", - "@tanstack/react-query-persist-client": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query-persist-client": "^5.80.10", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 34c09012bb..6984ba30ec 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 83ad100b64..ac7e871f6a 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 675f7a1691..022e5c772d 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 1f6a99f9a0..ca170f4b3d 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 03b92b65f5..d3b5fcae71 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 30c3a4c543..7f2b281cf0 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 5d0091ae0f..db0ec7b0af 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 3f7ecb7e04..2ceded6120 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index a491a59b8c..703124625d 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 65401df01f..1c6ac56b8f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 6a86a897dc..87886ccb1e 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index adc09c651f..5867d5a773 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.7", - "@tanstack/react-query-devtools": "^5.80.7", + "@tanstack/react-query": "^5.80.10", + "@tanstack/react-query-devtools": "^5.80.10", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a3f666cde1..ec25d41111 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.80.7", - "@tanstack/solid-query-devtools": "^5.80.7", + "@tanstack/solid-query": "^5.80.10", + "@tanstack/solid-query-devtools": "^5.80.10", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 35947a7b71..b6ff923b66 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.7", - "@tanstack/solid-query-devtools": "^5.80.7", + "@tanstack/solid-query": "^5.80.10", + "@tanstack/solid-query-devtools": "^5.80.10", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 28c31315e6..0f92a8a355 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.7", - "@tanstack/solid-query-devtools": "^5.80.7", + "@tanstack/solid-query": "^5.80.10", + "@tanstack/solid-query-devtools": "^5.80.10", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 6375665b3c..8a3e208278 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.7", - "@tanstack/solid-query-devtools": "^5.80.7", + "@tanstack/solid-query": "^5.80.10", + "@tanstack/solid-query-devtools": "^5.80.10", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index d56060baf1..fc79382df3 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.7", - "@tanstack/solid-query-devtools": "^5.80.7", + "@tanstack/solid-query": "^5.80.10", + "@tanstack/solid-query-devtools": "^5.80.10", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 8848e50128..671379a8f2 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.80.7", - "@tanstack/solid-query-devtools": "^5.80.7", + "@tanstack/solid-query": "^5.80.10", + "@tanstack/solid-query-devtools": "^5.80.10", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 5ffd158e8a..39ce358f20 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7" + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index ac7c81e6c7..dd64418ca6 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.7", - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7", - "@tanstack/svelte-query-persist-client": "^5.80.7" + "@tanstack/query-sync-storage-persister": "^5.80.10", + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10", + "@tanstack/svelte-query-persist-client": "^5.80.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index cbe98552ed..b15928e986 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7" + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 835676bb5a..837cc9e85e 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7" + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 2cf81d84e9..4a43319201 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7" + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 0e123f7270..e2e6f1c8b6 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7" + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 3c6f4964ff..0d1b18643a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7" + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 36d85a3b1a..4fd0ff8be5 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.7", - "@tanstack/svelte-query-devtools": "^5.80.7" + "@tanstack/svelte-query": "^5.80.10", + "@tanstack/svelte-query-devtools": "^5.80.10" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index aa9f470b4b..f10a6fc00d 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.7", + "@tanstack/vue-query": "^5.80.10", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 3bdf805e58..e4e3e392a5 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.7", + "@tanstack/vue-query": "^5.80.10", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 01c416cefa..406f7841df 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.7", - "@tanstack/vue-query-devtools": "^5.80.7", + "@tanstack/vue-query": "^5.80.10", + "@tanstack/vue-query-devtools": "^5.80.10", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 8730f8488e..2434bfa41b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.7", + "@tanstack/vue-query": "^5.80.10", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index e6838f043c..2c19dc9391 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.7" + "@tanstack/vue-query": "^5.80.10" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index aade454816..fd5acc2e76 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.80.7", - "@tanstack/query-persist-client-core": "^5.80.7", - "@tanstack/query-sync-storage-persister": "^5.80.7", - "@tanstack/vue-query": "^5.80.7", + "@tanstack/query-core": "^5.80.10", + "@tanstack/query-persist-client-core": "^5.80.10", + "@tanstack/query-sync-storage-persister": "^5.80.10", + "@tanstack/vue-query": "^5.80.10", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 991276058f..d2a94a00af 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.7", - "@tanstack/vue-query-devtools": "^5.80.7", + "@tanstack/vue-query": "^5.80.10", + "@tanstack/vue-query-devtools": "^5.80.10", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 8c3008db3c..f6d5081405 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.9", + "version": "5.80.10", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 9aab83934a..b4955b82e7 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.9", + "version": "5.80.10", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 0106c52cad..b41f0e5a00 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.80.7", + "version": "5.80.10", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 4eaaf4c742..db21180107 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.80.7", + "version": "5.80.10", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 7b13d9bf68..82c2cd82bc 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.80.7", + "version": "5.80.10", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 2ee7ee8e70..f5bc6b79f5 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.80.7", + "version": "5.80.10", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 33f22461da..8adfe05bcc 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.80.7", + "version": "5.80.10", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 31c50c90d8..ea28b992ef 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.7", + "version": "5.80.10", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index c9021fafd7..11af2f94c7 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.7", + "version": "5.80.10", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 9586b5f3e4..afdd78deed 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.7", + "version": "5.80.10", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index bea934012d..57fb3ef9a0 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.7", + "version": "5.80.10", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 59f34f3106..3fa707e634 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.80.7", + "version": "5.80.10", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index b095557a7a..200287dd6a 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.80.7", + "version": "5.80.10", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index f16400e6c8..bbcbda554b 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.80.7", + "version": "5.80.10", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index ce1bf5678d..6e8b370c9f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.80.7", + "version": "5.80.10", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 8399d7ba1f..480d0b8f15 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.80.7", + "version": "5.80.10", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 54b4c45ba5..88858e72f1 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.80.7", + "version": "5.80.10", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 4738f2fd9d..5085d89c39 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.7", + "version": "5.80.10", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 6dd52657b9..3236212575 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.7", + "version": "5.80.10", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 22368e03cf405b4776fd81dc3d805b132c94e850 Mon Sep 17 00:00:00 2001 From: Ali Helmi Date: Thu, 19 Jun 2025 12:40:42 +0300 Subject: [PATCH 160/432] docs: clarify comment regarding userIds in dependent queries example (#9288) * docs: clarify comment in dependent queries example for userIds * docs: clarify comment regarding userIds in dependent queries example --- docs/framework/react/guides/dependent-queries.md | 2 +- docs/framework/vue/guides/dependent-queries.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/framework/react/guides/dependent-queries.md b/docs/framework/react/guides/dependent-queries.md index d93288c5fc..2fdf147177 100644 --- a/docs/framework/react/guides/dependent-queries.md +++ b/docs/framework/react/guides/dependent-queries.md @@ -80,7 +80,7 @@ const usersMessages = useQueries({ queryFn: () => getMessagesByUsers(id), } }) - : [], // if users is undefined, an empty array will be returned + : [], // if userIds is undefined, an empty array will be returned }) ``` diff --git a/docs/framework/vue/guides/dependent-queries.md b/docs/framework/vue/guides/dependent-queries.md index 9d112cc9cf..db536073e4 100644 --- a/docs/framework/vue/guides/dependent-queries.md +++ b/docs/framework/vue/guides/dependent-queries.md @@ -48,7 +48,7 @@ const queries = computed(() => { // Then get the users messages const usersMessages = useQueries({ - queries, // if users is undefined, an empty array will be returned + queries, // if userIds.value is undefined or has no items, an empty array will be returned }) ``` From 1a0ab999430dab9c98e0dc75cd6f120187d10284 Mon Sep 17 00:00:00 2001 From: Dmytro Borysov <4720760+dborysov@users.noreply.github.com> Date: Thu, 19 Jun 2025 20:51:01 +0200 Subject: [PATCH 161/432] docs: add Chrome extension information for TanStack Query devtools across multiple frameworks (#9275) --- docs/framework/angular/devtools.md | 2 ++ docs/framework/react/community/community-projects.md | 6 ++++++ docs/framework/react/devtools.md | 2 ++ docs/framework/solid/devtools.md | 2 ++ docs/framework/svelte/devtools.md | 2 ++ docs/framework/vue/community/community-projects.md | 6 ++++++ docs/framework/vue/devtools.md | 2 ++ 7 files changed, 22 insertions(+) diff --git a/docs/framework/angular/devtools.md b/docs/framework/angular/devtools.md index 1787544ca1..f3d73b6987 100644 --- a/docs/framework/angular/devtools.md +++ b/docs/framework/angular/devtools.md @@ -3,6 +3,8 @@ id: devtools title: Devtools --- +> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) + ## Enable devtools The devtools help you debug and inspect your queries and mutations. You can enable the devtools by adding `withDevtools` to `provideTanStackQuery`. diff --git a/docs/framework/react/community/community-projects.md b/docs/framework/react/community/community-projects.md index fbe8292b1c..5d71d6a3b7 100644 --- a/docs/framework/react/community/community-projects.md +++ b/docs/framework/react/community/community-projects.md @@ -31,6 +31,12 @@ A family of libraries for building building browser and gRPC-compatible HTTP API Link: https://connectrpc.com/docs +## DevTools Chrome Extension + +A Chrome browser extension that provides devtools for TanStack Query, allowing you to inspect and debug queries, mutations, and cache state directly in Chrome DevTools. + +Link: https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai + ## GraphQL Code Generator Generate React Query hooks from your GraphQL schema diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md index 0208442911..6e0004293b 100644 --- a/docs/framework/react/devtools.md +++ b/docs/framework/react/devtools.md @@ -7,6 +7,8 @@ Wave your hands in the air and shout hooray because React Query comes with dedic When you begin your React Query journey, you'll want these devtools by your side. They help visualize all the inner workings of React Query and will likely save you hours of debugging if you find yourself in a pinch! +> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) + > For React Native users: A third-party native macOS app is available for debugging React Query in ANY js-based application. Monitor queries across devices in real-time. Check it out here: [rn-better-dev-tools](https://github.com/LovesWorking/rn-better-dev-tools) > Note that since version 5, the dev tools support observing mutations as well. diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index 9c0caf6537..4fe752a385 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -7,6 +7,8 @@ Wave your hands in the air and shout hooray because Solid Query comes with dedic When you begin your Solid Query journey, you'll want these devtools by your side. They help visualize all of the inner workings of Solid Query and will likely save you hours of debugging if you find yourself in a pinch! +> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) + ## Install and Import the Devtools The devtools are a separate package that you need to install: diff --git a/docs/framework/svelte/devtools.md b/docs/framework/svelte/devtools.md index db495f2c0e..56d2260344 100644 --- a/docs/framework/svelte/devtools.md +++ b/docs/framework/svelte/devtools.md @@ -3,6 +3,8 @@ id: devtools title: Devtools --- +> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) + ## Install and Import the Devtools The devtools are a separate package that you need to install: diff --git a/docs/framework/vue/community/community-projects.md b/docs/framework/vue/community/community-projects.md index ac0d647e3a..3c294feb1e 100644 --- a/docs/framework/vue/community/community-projects.md +++ b/docs/framework/vue/community/community-projects.md @@ -7,6 +7,12 @@ There are lots of community projects that build on top of Vue Query and use it t > Please note that these projects are entirely community maintained. If you have questions about these projects, please reach out to the project maintainers. +## DevTools Chrome Extension + +A Chrome browser extension that provides devtools for TanStack Query, allowing you to inspect and debug queries, mutations, and cache state directly in Chrome DevTools. + +Link: https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai + ## Query Key factory A library for creating typesafe standardized query keys, useful for cache management in `@tanstack/query` diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index f242c033aa..3180fab8e4 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -7,6 +7,8 @@ Wave your hands in the air and shout hooray because Vue Query comes with dedicat When you begin your Vue Query journey, you'll want these devtools by your side. They help visualize all of the inner workings of Vue Query and will likely save you hours of debugging if you find yourself in a pinch! +> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) + ## Component based Devtools (Vue 3) You can directly integrate the devtools component into your page using a dedicated package. From 658d5fa21d6c9d1cc5e2a04e62609e1e80b31b48 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Sat, 21 Jun 2025 00:02:17 +0200 Subject: [PATCH 162/432] refactor(angular-query): build with vite, publish d.ts files to package root (#9292) --- .../angular-query-experimental/.attw.json | 2 +- .../angular-query-experimental/package.json | 39 +-- .../scripts/prepack.js | 92 +++++++ .../src/test-setup.ts | 13 +- .../angular-query-experimental/tsconfig.json | 2 - .../tsconfig.prod.json | 3 +- .../angular-query-experimental/tsup.config.js | 13 - .../angular-query-experimental/vite.config.ts | 97 ++++++- .../angular-query-persist-client/.attw.json | 2 +- .../angular-query-persist-client/package.json | 3 +- .../src/test-setup.ts | 13 +- .../tsconfig.json | 3 - pnpm-lock.yaml | 240 +++++++++++------- 13 files changed, 372 insertions(+), 150 deletions(-) create mode 100644 packages/angular-query-experimental/scripts/prepack.js delete mode 100644 packages/angular-query-experimental/tsup.config.js diff --git a/packages/angular-query-experimental/.attw.json b/packages/angular-query-experimental/.attw.json index ce409e67a8..ac2579855e 100644 --- a/packages/angular-query-experimental/.attw.json +++ b/packages/angular-query-experimental/.attw.json @@ -1,3 +1,3 @@ { - "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] + "ignoreRules": ["cjs-resolves-to-esm"] } diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index b4955b82e7..189cc044c9 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -27,7 +27,7 @@ "tanstack" ], "scripts": { - "clean": "premove ./build ./coverage ./dist-ts", + "clean": "premove ./dist ./coverage ./dist-ts", "compile": "tsc --build", "test:eslint": "eslint ./src", "test:types": "npm-run-all --serial test:types:*", @@ -37,33 +37,30 @@ "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js --build", "test:types:ts54": "node ../../node_modules/typescript54/lib/tsc.js --build", "test:types:ts55": "node ../../node_modules/typescript55/lib/tsc.js --build", - "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js --build", - "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js --build", + "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js --build", + "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js --build", "test:types:tscurrent": "tsc --build", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", - "test:build": "publint --strict && attw --pack", - "build": "pnpm build:tsup", - "build:tsup": "tsup --tsconfig tsconfig.prod.json" + "test:build": "pnpm pack && publint ./dist/*.tgz --strict && attw ./dist/*.tgz; premove ./dist/*.tgz", + "build": "vite build", + "prepack": "node ./scripts/prepack.js" }, "type": "module", - "types": "build/index.d.ts", - "module": "build/index.mjs", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", "exports": { ".": { "@tanstack/custom-condition": "./src/index.ts", - "types": "./build/index.d.ts", - "default": "./build/index.mjs" + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" }, - "./package.json": { - "default": "./package.json" - } + "./package.json": "./package.json" }, "sideEffects": false, "files": [ - "build", - "src", - "!src/__tests__" + "**/*.d.ts", + "**/*.mjs.*" ], "dependencies": { "@tanstack/query-core": "workspace:*", @@ -74,13 +71,19 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/query-test-utils": "workspace:*", "eslint-plugin-jsdoc": "^50.5.0", - "npm-run-all2": "^5.0.0" + "npm-run-all2": "^5.0.0", + "vite-plugin-dts": "4.2.3", + "vite-plugin-externalize-deps": "^0.9.0", + "vite-tsconfig-paths": "^5.1.4" }, "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0" + }, + "publishConfig": { + "directory": "dist", + "linkDirectory": false } } diff --git a/packages/angular-query-experimental/scripts/prepack.js b/packages/angular-query-experimental/scripts/prepack.js new file mode 100644 index 0000000000..32593d1d2e --- /dev/null +++ b/packages/angular-query-experimental/scripts/prepack.js @@ -0,0 +1,92 @@ +import fs from 'node:fs' +import path from 'node:path' + +console.log('Running prepack script') + +/** + * Files to copy to the dist directory + * @type {string[]} + */ +const FILES_TO_COPY = ['README.md'] + +/** + * Fields to remove from the package.json copy + * @type {string[]} + */ +const FIELDS_TO_REMOVE = [ + 'devDependencies', + 'files', + 'publishConfig', + 'scripts', +] + +/** + * Replaces 'dist/' or './dist/' prefix from a file path with './' + * @param {string} filePath - The file path to process + * @returns {string} The path without dist prefix + */ +function removeDist(filePath) { + return filePath.replace(/^(\.\/)?dist\//, './') +} + +/** + * Recursively processes exports object to remove dist prefixes + * @param {Record} exports - The exports object to process + * @returns {Record} The processed exports object + */ +function processExports(exports) { + return Object.fromEntries( + Object.entries(exports).map(([key, value]) => [ + key, + typeof value === 'string' + ? removeDist(value) + : typeof value === 'object' && value !== null + ? processExports(value) + : value, + ]), + ) +} + +console.log('Copying modified package.json') + +/** @type {Record} */ +const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')) + +const distPackageJson = { ...packageJson } + +if (distPackageJson.types) { + distPackageJson.types = removeDist(distPackageJson.types) +} + +if (distPackageJson.module) { + distPackageJson.module = removeDist(distPackageJson.module) +} + +if (distPackageJson.exports) { + distPackageJson.exports = processExports(distPackageJson.exports) +} + +for (const field of FIELDS_TO_REMOVE) { + delete distPackageJson[field] +} + +if (!fs.existsSync('dist')) { + fs.mkdirSync('dist', { recursive: true }) +} + +fs.writeFileSync( + path.join('dist', 'package.json'), + JSON.stringify(distPackageJson, null, 2), +) + +console.log('Copying other files') +for (const fileName of FILES_TO_COPY) { + if (fs.existsSync(fileName)) { + fs.copyFileSync(fileName, path.join('dist', fileName)) + console.log(`${fileName}`) + } else { + console.log(`${fileName} not found, skipping`) + } +} + +console.log('prepack complete') diff --git a/packages/angular-query-experimental/src/test-setup.ts b/packages/angular-query-experimental/src/test-setup.ts index 30c962a8e6..ef53141bdc 100644 --- a/packages/angular-query-experimental/src/test-setup.ts +++ b/packages/angular-query-experimental/src/test-setup.ts @@ -1,10 +1,7 @@ -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing' import { getTestBed } from '@angular/core/testing' +import { + BrowserTestingModule, + platformBrowserTesting, +} from '@angular/platform-browser/testing' -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), -) +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()) diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 68fb75ea2e..9837ca7051 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -3,8 +3,6 @@ "compilerOptions": { "outDir": "./dist-ts", "rootDir": ".", - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, "noFallthroughCasesInSwitch": true, "useDefineForClassFields": false, "target": "ES2022" diff --git a/packages/angular-query-experimental/tsconfig.prod.json b/packages/angular-query-experimental/tsconfig.prod.json index 0f4c92da06..b470042ddc 100644 --- a/packages/angular-query-experimental/tsconfig.prod.json +++ b/packages/angular-query-experimental/tsconfig.prod.json @@ -3,6 +3,7 @@ "compilerOptions": { "incremental": false, "composite": false, - "rootDir": "../../" + "rootDir": "../../", + "customConditions": null } } diff --git a/packages/angular-query-experimental/tsup.config.js b/packages/angular-query-experimental/tsup.config.js deleted file mode 100644 index a1e9d23c1c..0000000000 --- a/packages/angular-query-experimental/tsup.config.js +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig } from 'tsup' - -export default defineConfig({ - entry: ['src/index.ts'], - sourcemap: true, - clean: true, - format: ['esm'], - dts: true, - outDir: 'build', - outExtension({ format }) { - return format === 'esm' ? { js: '.mjs' } : { js: '.js' } - }, -}) diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts index 25fdba1056..5c0413f3de 100644 --- a/packages/angular-query-experimental/vite.config.ts +++ b/packages/angular-query-experimental/vite.config.ts @@ -1,8 +1,32 @@ -import { defineConfig } from 'vitest/config' - +import { defineConfig, mergeConfig } from 'vitest/config' +import { externalizeDeps } from 'vite-plugin-externalize-deps' +import tsconfigPaths from 'vite-tsconfig-paths' +import dts from 'vite-plugin-dts' import packageJson from './package.json' +import type { Options } from '@tanstack/config/vite' + +function ensureImportFileExtension({ + content, + extension, +}: { + content: string + extension: string +}) { + // replace e.g. `import { foo } from './foo'` with `import { foo } from './foo.js'` + content = content.replace( + /(im|ex)port\s[\w{}/*\s,]+from\s['"](?:\.\.?\/)+?[^.'"]+(?=['"];?)/gm, + `$&.${extension}`, + ) + + // replace e.g. `import('./foo')` with `import('./foo.js')` + content = content.replace( + /import\(['"](?:\.\.?\/)+?[^.'"]+(?=['"];?)/gm, + `$&.${extension}`, + ) + return content +} -export default defineConfig({ +const config = defineConfig({ // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 resolve: { conditions: ['@tanstack/custom-condition'], @@ -26,3 +50,70 @@ export default defineConfig({ restoreMocks: true, }, }) + +// copy from @tanstack/config/vite with changes: +// - build - lib - fileName: [name.mjs] +// - rollup - output - preserveModulesRoot: src +export const tanstackViteConfig = (options: Options) => { + const outDir = options.outDir ?? 'dist' + const cjs = options.cjs ?? true + + return defineConfig({ + plugins: [ + externalizeDeps({ include: options.externalDeps ?? [] }), + tsconfigPaths({ + projects: options.tsconfigPath ? [options.tsconfigPath] : undefined, + }), + dts({ + outDir, + entryRoot: options.srcDir, + include: options.srcDir, + exclude: options.exclude, + tsconfigPath: options.tsconfigPath, + compilerOptions: { + module: 99, // ESNext + declarationMap: false, + }, + beforeWriteFile: (filePath, content) => { + return { + filePath, + content: ensureImportFileExtension({ content, extension: 'js' }), + } + }, + afterDiagnostic: (diagnostics) => { + if (diagnostics.length > 0) { + console.error('Please fix the above type errors') + process.exit(1) + } + }, + }), + ], + build: { + outDir, + minify: false, + sourcemap: true, + lib: { + entry: options.entry, + formats: cjs ? ['es', 'cjs'] : ['es'], + fileName: () => '[name].mjs', + }, + rollupOptions: { + output: { + preserveModules: true, + preserveModulesRoot: 'src', + }, + }, + }, + }) +} + +export default mergeConfig( + config, + tanstackViteConfig({ + cjs: false, + entry: ['./src/index.ts'], + exclude: ['./src/__tests__'], + srcDir: './src', + tsconfigPath: './tsconfig.prod.json', + }), +) diff --git a/packages/angular-query-persist-client/.attw.json b/packages/angular-query-persist-client/.attw.json index ce409e67a8..ac2579855e 100644 --- a/packages/angular-query-persist-client/.attw.json +++ b/packages/angular-query-persist-client/.attw.json @@ -1,3 +1,3 @@ { - "ignoreRules": ["cjs-resolves-to-esm", "no-resolution"] + "ignoreRules": ["cjs-resolves-to-esm"] } diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index ad231460b9..69650e4f90 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -62,7 +62,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "workspace:*", "@tanstack/query-test-utils": "workspace:*", "@testing-library/angular": "^17.3.7", @@ -73,6 +72,6 @@ "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0", - "@tanstack/angular-query-experimental": "workspace:*" + "@tanstack/angular-query-experimental": "workspace:^" } } diff --git a/packages/angular-query-persist-client/src/test-setup.ts b/packages/angular-query-persist-client/src/test-setup.ts index 30c962a8e6..ef53141bdc 100644 --- a/packages/angular-query-persist-client/src/test-setup.ts +++ b/packages/angular-query-persist-client/src/test-setup.ts @@ -1,10 +1,7 @@ -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing' import { getTestBed } from '@angular/core/testing' +import { + BrowserTestingModule, + platformBrowserTesting, +} from '@angular/platform-browser/testing' -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), -) +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()) diff --git a/packages/angular-query-persist-client/tsconfig.json b/packages/angular-query-persist-client/tsconfig.json index d1859097b6..ec37b81b27 100644 --- a/packages/angular-query-persist-client/tsconfig.json +++ b/packages/angular-query-persist-client/tsconfig.json @@ -3,9 +3,6 @@ "compilerOptions": { "outDir": "./dist-ts", "rootDir": ".", - "moduleResolution": "Bundler", - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, "noFallthroughCasesInSwitch": true, "useDefineForClassFields": false, "target": "ES2022" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bca2103e44..5c2a02d3e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2322,9 +2322,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2334,6 +2331,16 @@ importers: npm-run-all2: specifier: ^5.0.0 version: 5.0.2 + vite-plugin-dts: + specifier: 4.2.3 + version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite-plugin-externalize-deps: + specifier: ^0.9.0 + version: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + publishDirectory: dist packages/angular-query-persist-client: dependencies: @@ -2356,9 +2363,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../angular-query-experimental @@ -5604,163 +5608,138 @@ packages: resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm64@1.1.0': resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-arm@1.1.0': resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.1.0': resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} cpu: [ppc64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-s390x@1.1.0': resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linux-x64@1.1.0': resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-arm64@1.1.0': resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.1.0': resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-linux-arm64@0.34.1': resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [glibc] '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-linux-arm@0.34.1': resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - libc: [glibc] '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-linux-s390x@0.34.1': resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - libc: [glibc] '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-linux-x64@0.34.1': resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-arm64@0.34.1': resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-linuxmusl-x64@0.34.1': resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - libc: [musl] '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} @@ -6110,6 +6089,9 @@ packages: '@microsoft/api-extractor-model@7.29.4': resolution: {integrity: sha512-LHOMxmT8/tU1IiiiHOdHFF83Qsi+V8d0kLfscG4EvQE9cafiR8blOYr8SfkQKWB1wgEilQgXJX3MIA4vetDLZw==} + '@microsoft/api-extractor-model@7.29.6': + resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} + '@microsoft/api-extractor-model@7.30.1': resolution: {integrity: sha512-CTS2PlASJHxVY8hqHORVb1HdECWOEMcMnM6/kDkPr0RZapAFSIHhg9D4jxuE8g+OWYHtPc10LCpmde5pylTRlA==} @@ -6117,6 +6099,10 @@ packages: resolution: {integrity: sha512-HKm+P4VNzWwvq1Ey+Jfhhj/3MjsD+ka2hbt8L5AcRM95lu1MFOYnz3XlU7Gr79Q/ZhOb7W/imAKeYrOI0bFydg==} hasBin: true + '@microsoft/api-extractor@7.47.7': + resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} + hasBin: true + '@microsoft/api-extractor@7.48.1': resolution: {integrity: sha512-HN9Osa1WxqLM66RaqB5nPAadx+nTIQmY/XtkFdaJvusjG8Tus++QqZtD7KPZDSkhEMGHsYeSyeU8qUzCDUXPjg==} hasBin: true @@ -6293,49 +6279,42 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-arm64-musl@1.0.1': resolution: {integrity: sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@napi-rs/nice-linux-ppc64-gnu@1.0.1': resolution: {integrity: sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-riscv64-gnu@1.0.1': resolution: {integrity: sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-s390x-gnu@1.0.1': resolution: {integrity: sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-x64-gnu@1.0.1': resolution: {integrity: sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@napi-rs/nice-linux-x64-musl@1.0.1': resolution: {integrity: sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@napi-rs/nice-win32-arm64-msvc@1.0.1': resolution: {integrity: sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==} @@ -6405,56 +6384,48 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@next/swc-linux-arm64-gnu@15.3.1': resolution: {integrity: sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@next/swc-linux-arm64-musl@14.2.28': resolution: {integrity: sha512-p6gvatI1nX41KCizEe6JkF0FS/cEEF0u23vKDpl+WhPe/fCTBeGkEBh7iW2cUM0rvquPVwPWdiUR6Ebr/kQWxQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@next/swc-linux-arm64-musl@15.3.1': resolution: {integrity: sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@next/swc-linux-x64-gnu@14.2.28': resolution: {integrity: sha512-nsiSnz2wO6GwMAX2o0iucONlVL7dNgKUqt/mDTATGO2NY59EO/ZKnKEr80BJFhuA5UC1KZOMblJHWZoqIJddpA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@next/swc-linux-x64-gnu@15.3.1': resolution: {integrity: sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@next/swc-linux-x64-musl@14.2.28': resolution: {integrity: sha512-+IuGQKoI3abrXFqx7GtlvNOpeExUH1mTIqCrh1LGFf8DnlUcTmOOCApEnPJUSLrSbzOdsF2ho2KhnQoO0I1RDw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@next/swc-linux-x64-musl@15.3.1': resolution: {integrity: sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@next/swc-win32-arm64-msvc@14.2.28': resolution: {integrity: sha512-l61WZ3nevt4BAnGksUVFKy2uJP5DPz2E0Ma/Oklvo3sGj9sw3q7vBWONFRgz+ICiHpW5mV+mBrkB3XEubMrKaA==} @@ -6572,28 +6543,24 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@nx/nx-linux-arm64-musl@20.7.2': resolution: {integrity: sha512-/r4TNzyjhic7DZei6DXfbsfONDp40LbHjn/XcrJ53yI1UHGFunUUQYEDeBbgOcqs0IkRitNSgTDgpkG9UvJ65Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@nx/nx-linux-x64-gnu@20.7.2': resolution: {integrity: sha512-s/cMSJlJeF+Io+3bWy+wJSemBwKL/IAcXUxLXRSDuaPXv7AoDWctmbfcyLqQJ7Ufcioivvil0XTtD/vkJI0x3A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@nx/nx-linux-x64-musl@20.7.2': resolution: {integrity: sha512-9ZdPQwD4LDhwMOQ1NyYRDNr+6FVOdFeibkO+nN4nhkNBFxK6w2iprebrUKeOvQ1yHttt2YSC5p9bqxP7DVtE7w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@nx/nx-win32-arm64-msvc@20.7.2': resolution: {integrity: sha512-fSd44rmECiw/HZD9f0mNPRF8zwtx3N3TNU7CRohZtRBVotUgOuQU1XONi1J0V117g8q4VQmmaAO9eMdVxM2ZuQ==} @@ -6648,42 +6615,36 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - libc: [musl] '@parcel/watcher-wasm@2.3.0': resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} @@ -7002,133 +6963,111 @@ packages: resolution: {integrity: sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-gnueabihf@4.40.2': resolution: {integrity: sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.40.1': resolution: {integrity: sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm-musleabihf@4.40.2': resolution: {integrity: sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.40.1': resolution: {integrity: sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.40.2': resolution: {integrity: sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.40.1': resolution: {integrity: sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-musl@4.40.2': resolution: {integrity: sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.40.1': resolution: {integrity: sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-loongarch64-gnu@4.40.2': resolution: {integrity: sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.40.1': resolution: {integrity: sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.40.2': resolution: {integrity: sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.40.1': resolution: {integrity: sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.40.2': resolution: {integrity: sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.40.1': resolution: {integrity: sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==} cpu: [riscv64] os: [linux] - libc: [musl] '@rollup/rollup-linux-riscv64-musl@4.40.2': resolution: {integrity: sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==} cpu: [riscv64] os: [linux] - libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.40.1': resolution: {integrity: sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.40.2': resolution: {integrity: sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.40.1': resolution: {integrity: sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.40.2': resolution: {integrity: sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.40.1': resolution: {integrity: sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-linux-x64-musl@4.40.2': resolution: {integrity: sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.40.1': resolution: {integrity: sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==} @@ -7176,6 +7115,14 @@ packages: '@types/node': optional: true + '@rushstack/node-core-library@5.7.0': + resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} @@ -7187,6 +7134,14 @@ packages: '@types/node': optional: true + '@rushstack/terminal@0.14.0': + resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + '@rushstack/terminal@0.14.4': resolution: {integrity: sha512-NxACqERW0PHq8Rpq1V6v5iTHEwkRGxenjEW+VWqRYQ8T9puUzgmGHmEZUaUEDHAe9Qyvp0/Ew04sAiQw9XjhJg==} peerDependencies: @@ -7198,6 +7153,9 @@ packages: '@rushstack/ts-command-line@4.22.3': resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} + '@rushstack/ts-command-line@4.22.6': + resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} + '@rushstack/ts-command-line@4.23.2': resolution: {integrity: sha512-JJ7XZX5K3ThBBva38aomgsPv1L7FV6XmSOcR6HtM7HDFZJkepqT65imw26h9ggGqMjsY0R9jcl30tzKcVj9aOQ==} @@ -7482,28 +7440,24 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.0.14': resolution: {integrity: sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.0.14': resolution: {integrity: sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.0.14': resolution: {integrity: sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - libc: [musl] '@tailwindcss/oxide-win32-arm64-msvc@4.0.14': resolution: {integrity: sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==} @@ -8040,6 +7994,14 @@ packages: typescript: optional: true + '@vue/language-core@2.1.6': + resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@vue/language-core@2.2.8': resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==} peerDependencies: @@ -11862,56 +11824,48 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] lightningcss-linux-arm64-gnu@1.29.2: resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [glibc] lightningcss-linux-arm64-musl@1.27.0: resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [musl] lightningcss-linux-arm64-musl@1.29.2: resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - libc: [musl] lightningcss-linux-x64-gnu@1.27.0: resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [glibc] lightningcss-linux-x64-gnu@1.29.2: resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [glibc] lightningcss-linux-x64-musl@1.27.0: resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [musl] lightningcss-linux-x64-musl@1.29.2: resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - libc: [musl] lightningcss-win32-arm64-msvc@1.27.0: resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} @@ -15735,11 +15689,26 @@ packages: vite: optional: true + vite-plugin-dts@4.2.3: + resolution: {integrity: sha512-O5NalzHANQRwVw1xj8KQun3Bv8OSDAlNJXrnqoAz10BOuW8FVvY5g4ygj+DlJZL5mtSPuMu9vd3OfrdW5d4k6w==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + vite-plugin-externalize-deps@0.8.0: resolution: {integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==} peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-plugin-externalize-deps@0.9.0: + resolution: {integrity: sha512-wg3qb5gCy2d1KpPKyD9wkXMcYJ84yjgziHrStq9/8R7chhUC73mhQz+tVtvhFiICQHsBn1pnkY4IBbPqF9JHNw==} + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vite-plugin-solid@2.11.6: resolution: {integrity: sha512-Sl5CTqJTGyEeOsmdH6BOgalIZlwH3t4/y0RQuFLMGnvWMBvxb4+lq7x3BSiAw6etf0QexfNJW7HSOO/Qf7pigg==} peerDependencies: @@ -20324,6 +20293,14 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor-model@7.29.6(@types/node@22.15.3)': + dependencies: + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) + transitivePeerDependencies: + - '@types/node' + '@microsoft/api-extractor-model@7.30.1(@types/node@22.15.3)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -20351,6 +20328,24 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@microsoft/api-extractor@7.47.7(@types/node@22.15.3)': + dependencies: + '@microsoft/api-extractor-model': 7.29.6(@types/node@22.15.3) + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.14.0(@types/node@22.15.3) + '@rushstack/ts-command-line': 4.22.6(@types/node@22.15.3) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.10 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + '@microsoft/api-extractor@7.48.1(@types/node@22.15.3)': dependencies: '@microsoft/api-extractor-model': 7.30.1(@types/node@22.15.3) @@ -21318,6 +21313,19 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 + '@rushstack/node-core-library@5.7.0(@types/node@22.15.3)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.10 + semver: 7.5.4 + optionalDependencies: + '@types/node': 22.15.3 + '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 @@ -21330,6 +21338,13 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 + '@rushstack/terminal@0.14.0(@types/node@22.15.3)': + dependencies: + '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 22.15.3 + '@rushstack/terminal@0.14.4(@types/node@22.15.3)': dependencies: '@rushstack/node-core-library': 5.10.1(@types/node@22.15.3) @@ -21347,6 +21362,15 @@ snapshots: transitivePeerDependencies: - '@types/node' + '@rushstack/ts-command-line@4.22.6(@types/node@22.15.3)': + dependencies: + '@rushstack/terminal': 0.14.0(@types/node@22.15.3) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + '@rushstack/ts-command-line@4.23.2(@types/node@22.15.3)': dependencies: '@rushstack/terminal': 0.14.4(@types/node@22.15.3) @@ -22564,6 +22588,19 @@ snapshots: optionalDependencies: typescript: 5.8.3 + '@vue/language-core@2.1.6(typescript@5.8.3)': + dependencies: + '@volar/language-core': 2.4.12 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.8.3 + '@vue/language-core@2.2.8(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.12 @@ -32207,10 +32244,33 @@ snapshots: - rollup - supports-color + vite-plugin-dts@4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + dependencies: + '@microsoft/api-extractor': 7.47.7(@types/node@22.15.3) + '@rollup/pluginutils': 5.1.4(rollup@4.40.2) + '@volar/typescript': 2.4.12 + '@vue/language-core': 2.1.6(typescript@5.8.3) + compare-versions: 6.1.1 + debug: 4.4.0 + kolorist: 1.8.0 + local-pkg: 0.5.1 + magic-string: 0.30.17 + typescript: 5.8.3 + optionalDependencies: + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + vite-plugin-externalize-deps@0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): dependencies: vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite-plugin-externalize-deps@0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + dependencies: + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.10 From 93caca1ea289446273ac5e62699252c4f07315e1 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Sat, 21 Jun 2025 01:01:20 +0200 Subject: [PATCH 163/432] chore(angular-query): run prepack after build (#9294) --- packages/angular-query-experimental/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 189cc044c9..cf0442eb82 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -43,7 +43,7 @@ "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "pnpm pack && publint ./dist/*.tgz --strict && attw ./dist/*.tgz; premove ./dist/*.tgz", - "build": "vite build", + "build": "vite build && pnpm run prepack", "prepack": "node ./scripts/prepack.js" }, "type": "module", From 51cc9e704eda06c9b12ed5c958a364263171ad5f Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sat, 21 Jun 2025 14:22:59 +0900 Subject: [PATCH 164/432] chore: add .cursor/rules to .gitignore (#9295) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 454b506599..99b76c669f 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ stats-hydration.json stats.json stats.html .vscode/settings.json +.cursor/rules *.log *.tsbuildinfo From b766d07963e59f98c44e7d8598b66c43e18dde6f Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sat, 21 Jun 2025 20:48:19 +0900 Subject: [PATCH 165/432] chore: update documentation generation and publishing scripts (#9296) - Changed documentation generation script from JavaScript to TypeScript. - Added new TypeScript script for publishing packages with configuration for different branches. --- package.json | 4 +- scripts/{generateDocs.js => generateDocs.ts} | 57 ++++++++++---------- scripts/{publish.js => publish.ts} | 2 - 3 files changed, 32 insertions(+), 31 deletions(-) rename scripts/{generateDocs.js => generateDocs.ts} (60%) rename scripts/{publish.js => publish.ts} (99%) diff --git a/package.json b/package.json index c8896ea94c..caae97bd5e 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ "dev": "pnpm run watch", "prettier": "prettier --ignore-unknown '**/*'", "prettier:write": "pnpm run prettier --write", - "docs:generate": "node scripts/generateDocs.js", - "cipublish": "node scripts/publish.js", + "docs:generate": "node scripts/generateDocs.ts", + "cipublish": "node scripts/publish.ts", "verify-links": "node scripts/verify-links.ts" }, "nx": { diff --git a/scripts/generateDocs.js b/scripts/generateDocs.ts similarity index 60% rename from scripts/generateDocs.js rename to scripts/generateDocs.ts index 86fb8c68c1..06f0fc5bfc 100644 --- a/scripts/generateDocs.js +++ b/scripts/generateDocs.ts @@ -1,36 +1,39 @@ import { resolve } from 'node:path' import { fileURLToPath } from 'node:url' +import { readFileSync, writeFileSync } from 'node:fs' import { generateReferenceDocs } from '@tanstack/config/typedoc' +import fg from 'fast-glob' const __dirname = fileURLToPath(new URL('.', import.meta.url)) -/** @type {import('@tanstack/config/typedoc').Package[]} */ -const packages = [ - { - name: 'angular-query-experimental', - entryPoints: [ - resolve(__dirname, '../packages/angular-query-experimental/src/index.ts'), - ], - tsconfig: resolve( - __dirname, - '../packages/angular-query-experimental/tsconfig.json', - ), - outputDir: resolve(__dirname, '../docs/framework/angular/reference'), - exclude: ['./packages/query-core/**/*'], - }, - { - name: 'svelte-query', - entryPoints: [resolve(__dirname, '../packages/svelte-query/src/index.ts')], - tsconfig: resolve(__dirname, '../packages/svelte-query/tsconfig.json'), - outputDir: resolve(__dirname, '../docs/framework/svelte/reference'), - exclude: ['./packages/query-core/**/*'], - }, -] - -await generateReferenceDocs({ packages }) - -import fg from 'fast-glob' -import { readFileSync, writeFileSync } from 'node:fs' +await generateReferenceDocs({ + packages: [ + { + name: 'angular-query-experimental', + entryPoints: [ + resolve( + __dirname, + '../packages/angular-query-experimental/src/index.ts', + ), + ], + tsconfig: resolve( + __dirname, + '../packages/angular-query-experimental/tsconfig.json', + ), + outputDir: resolve(__dirname, '../docs/framework/angular/reference'), + exclude: ['./packages/query-core/**/*'], + }, + { + name: 'svelte-query', + entryPoints: [ + resolve(__dirname, '../packages/svelte-query/src/index.ts'), + ], + tsconfig: resolve(__dirname, '../packages/svelte-query/tsconfig.json'), + outputDir: resolve(__dirname, '../docs/framework/svelte/reference'), + exclude: ['./packages/query-core/**/*'], + }, + ], +}) // Define the pattern to match all generated markdown files const markdownFilesPattern = 'docs/framework/{angular,svelte}/reference/**/*.md' diff --git a/scripts/publish.js b/scripts/publish.ts similarity index 99% rename from scripts/publish.js rename to scripts/publish.ts index 953763b569..a643bdf266 100644 --- a/scripts/publish.js +++ b/scripts/publish.ts @@ -1,5 +1,3 @@ -// @ts-check - import { resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { publish } from '@tanstack/config/publish' From 76c91d8d7b8649a2c2c222bda6b5a11a6f4654ae Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 21 Jun 2025 14:03:08 +0200 Subject: [PATCH 166/432] fix: trigger release --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f4fa2bd4f..2e348c7f1f 100644 --- a/README.md +++ b/README.md @@ -71,4 +71,4 @@ View the contributing guidelines [here](/CONTRIBUTING.md) ### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) - + From 0e44a7445db8102f751455886a0b4f1204ccb6c1 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 21 Jun 2025 14:04:03 +0200 Subject: [PATCH 167/432] fix: trigger release RELEASE_ALL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e348c7f1f..3f4fa2bd4f 100644 --- a/README.md +++ b/README.md @@ -71,4 +71,4 @@ View the contributing guidelines [here](/CONTRIBUTING.md) ### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) - + From 5b0d320b35139937d1908fd24b6cc6fe5a572780 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Sat, 21 Jun 2025 16:02:03 +0200 Subject: [PATCH 168/432] fix(angular-query): fix package publishing (#9297) --- knip.json | 3 +++ .../angular-query-experimental/package.json | 18 ++++++++++--- .../scripts/prepack.js | 2 ++ .../scripts/prepare-package.js | 26 +++++++++++++++++++ 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 packages/angular-query-experimental/scripts/prepare-package.js diff --git a/knip.json b/knip.json index 490e31c190..c1e8be98bb 100644 --- a/knip.json +++ b/knip.json @@ -22,6 +22,9 @@ "packages/vue-query": { "ignore": ["**/__mocks__/**"], "ignoreDependencies": ["vue2", "vue2.7"] + }, + "packages/angular-query-experimental": { + "ignore": ["scripts/prepack.js"] } } } diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index cf0442eb82..55cd169530 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -43,8 +43,8 @@ "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "pnpm pack && publint ./dist/*.tgz --strict && attw ./dist/*.tgz; premove ./dist/*.tgz", - "build": "vite build && pnpm run prepack", - "prepack": "node ./scripts/prepack.js" + "build": "vite build && pnpm run prepare-package", + "prepare-package": "node ./scripts/prepare-package.js" }, "type": "module", "types": "dist/index.d.ts", @@ -60,7 +60,8 @@ "sideEffects": false, "files": [ "**/*.d.ts", - "**/*.mjs.*" + "**/*.mjs", + "**/*.mjs.map" ], "dependencies": { "@tanstack/query-core": "workspace:*", @@ -84,6 +85,15 @@ }, "publishConfig": { "directory": "dist", - "linkDirectory": false + "linkDirectory": false, + "types": "index.d.ts", + "module": "index.mjs", + "exports": { + ".": { + "types": "./index.d.ts", + "default": "./index.mjs" + }, + "./package.json": "./package.json" + } } } diff --git a/packages/angular-query-experimental/scripts/prepack.js b/packages/angular-query-experimental/scripts/prepack.js index 32593d1d2e..9b6f734a74 100644 --- a/packages/angular-query-experimental/scripts/prepack.js +++ b/packages/angular-query-experimental/scripts/prepack.js @@ -1,6 +1,8 @@ import fs from 'node:fs' import path from 'node:path' +// Currently unused as life-cycle scripts do not run on CI + console.log('Running prepack script') /** diff --git a/packages/angular-query-experimental/scripts/prepare-package.js b/packages/angular-query-experimental/scripts/prepare-package.js new file mode 100644 index 0000000000..2d97c08eb1 --- /dev/null +++ b/packages/angular-query-experimental/scripts/prepare-package.js @@ -0,0 +1,26 @@ +import fs from 'node:fs' +import path from 'node:path' + +console.log('Running prepare package script') + +/** + * Files to link from the dist directory + * @type {string[]} + */ +const FILES_TO_LINK = ['README.md', 'package.json'] + +if (!fs.existsSync('dist')) { + fs.mkdirSync('dist', { recursive: true }) +} + +console.log('Linking files') +for (const fileName of FILES_TO_LINK) { + if (fs.existsSync(fileName)) { + fs.linkSync(fileName, path.join('dist', fileName)) + console.log(`${fileName}`) + } else { + console.log(`${fileName} not found, skipping`) + } +} + +console.log('prepare package complete') From 48f116c72b50b25ef03b362dbfd3686d1abf4999 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:15:55 +0200 Subject: [PATCH 169/432] chore(angular-query): revert to tsup to build package (#9298) --- knip.json | 2 +- .../angular-query-experimental/package.json | 35 ++++++------------- .../angular-query-experimental/tsup.config.ts | 13 +++++++ pnpm-lock.yaml | 1 - 4 files changed, 25 insertions(+), 26 deletions(-) create mode 100644 packages/angular-query-experimental/tsup.config.ts diff --git a/knip.json b/knip.json index c1e8be98bb..d316a99894 100644 --- a/knip.json +++ b/knip.json @@ -24,7 +24,7 @@ "ignoreDependencies": ["vue2", "vue2.7"] }, "packages/angular-query-experimental": { - "ignore": ["scripts/prepack.js"] + "ignore": ["scripts/prepack.js", "scripts/prepare-package.js"] } } } diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 55cd169530..680525b8e6 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -27,7 +27,7 @@ "tanstack" ], "scripts": { - "clean": "premove ./dist ./coverage ./dist-ts", + "clean": "premove ./build ./dist ./coverage ./dist-ts", "compile": "tsc --build", "test:eslint": "eslint ./src", "test:types": "npm-run-all --serial test:types:*", @@ -42,26 +42,26 @@ "test:types:tscurrent": "tsc --build", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", - "test:build": "pnpm pack && publint ./dist/*.tgz --strict && attw ./dist/*.tgz; premove ./dist/*.tgz", - "build": "vite build && pnpm run prepare-package", - "prepare-package": "node ./scripts/prepare-package.js" + "test:build": "publint --strict && attw --pack", + "build": "pnpm build:tsup", + "build:tsup": "tsup --tsconfig tsconfig.prod.json" }, "type": "module", - "types": "dist/index.d.ts", - "module": "dist/index.mjs", + "types": "build/index.d.ts", + "module": "build/index.mjs", "exports": { ".": { "@tanstack/custom-condition": "./src/index.ts", - "types": "./dist/index.d.ts", - "default": "./dist/index.mjs" + "types": "./build/index.d.ts", + "default": "./build/index.mjs" }, "./package.json": "./package.json" }, "sideEffects": false, "files": [ - "**/*.d.ts", - "**/*.mjs", - "**/*.mjs.map" + "build", + "src", + "!src/__tests__" ], "dependencies": { "@tanstack/query-core": "workspace:*", @@ -82,18 +82,5 @@ "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0" - }, - "publishConfig": { - "directory": "dist", - "linkDirectory": false, - "types": "index.d.ts", - "module": "index.mjs", - "exports": { - ".": { - "types": "./index.d.ts", - "default": "./index.mjs" - }, - "./package.json": "./package.json" - } } } diff --git a/packages/angular-query-experimental/tsup.config.ts b/packages/angular-query-experimental/tsup.config.ts new file mode 100644 index 0000000000..a1e9d23c1c --- /dev/null +++ b/packages/angular-query-experimental/tsup.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + entry: ['src/index.ts'], + sourcemap: true, + clean: true, + format: ['esm'], + dts: true, + outDir: 'build', + outExtension({ format }) { + return format === 'esm' ? { js: '.mjs' } : { js: '.js' } + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5c2a02d3e6..839f124ba0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2340,7 +2340,6 @@ importers: vite-tsconfig-paths: specifier: ^5.1.4 version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) - publishDirectory: dist packages/angular-query-persist-client: dependencies: From cd87a42a310cb34eb6d6efaff11f8bf27ae0b51e Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sat, 21 Jun 2025 22:28:38 +0000 Subject: [PATCH 170/432] release: v5.81.2 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +++--- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 10 +++++----- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 10 +++++----- .../react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 6 +++--- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- .../angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/eslint-plugin-query/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- .../query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 79 files changed, 139 insertions(+), 139 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 0693f210a3..043ef43550 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index b88fb4f4e3..1e2f6b1a3c 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -14,9 +14,9 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.80.10", + "@tanstack/query-sync-storage-persister": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 553980c7d9..43fd7f4132 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index a9168e91c4..fbfb9e7a50 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.80.10", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-devtools-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index f4ffa49a09..dff22464e1 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index e1aeef327e..6a6a67673e 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index e6d0ad43b0..5db8f32491 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 1647e2694b..bb81501226 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 0603533169..a945bd9061 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 2dfcabef1b..d520a8f387 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -15,7 +15,7 @@ "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index f8d60e8a2e..f8d9fca5cd 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.80.10", + "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index cb81307937..8ac7a10c36 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.78.0", + "@tanstack/eslint-plugin-query": "^5.81.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index c36894dca6..aef151b326 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index c9b4217cc7..e1365fb4be 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 476d9a9e2e..3c1f167d30 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.10", - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", - "@tanstack/react-query-persist-client": "^5.80.10", + "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query-persist-client": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.78.0", + "@tanstack/eslint-plugin-query": "^5.81.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 04d73de41a..ce9d0b1b42 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 0ab7b4de07..f6dd36c309 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 66734a95f5..3ba9cc8fd9 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index b7f84192ef..cd6cdfb5fb 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.10", - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", - "@tanstack/react-query-persist-client": "^5.80.10", + "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query-persist-client": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.78.0", + "@tanstack/eslint-plugin-query": "^5.81.2", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 8352b6744f..33a9c085c2 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index f41b42cd61..32266e5849 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 9b96d3d329..1576648214 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index fccb778c01..a8f143a89c 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", - "@tanstack/react-query-next-experimental": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query-next-experimental": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index e80bc56f73..77f6ea4596 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 84f744c48c..021d127aa6 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.10", + "@tanstack/query-sync-storage-persister": "^5.81.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", - "@tanstack/react-query-persist-client": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query-persist-client": "^5.81.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 6984ba30ec..367ede80ae 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index ac7e871f6a..fee33b345d 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 022e5c772d..84a21f3e18 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index ca170f4b3d..f1c6bc56d1 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index d3b5fcae71..5c66600dcd 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 7f2b281cf0..46c48d449c 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index db0ec7b0af..00d93fbde1 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 2ceded6120..6663790f41 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 703124625d..3ab701d181 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 1c6ac56b8f..e6458e70a2 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 87886ccb1e..354aa6d475 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 5867d5a773..bfb78fb163 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.80.10", - "@tanstack/react-query-devtools": "^5.80.10", + "@tanstack/react-query": "^5.81.2", + "@tanstack/react-query-devtools": "^5.81.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index ec25d41111..ec0f97e7f2 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.80.10", - "@tanstack/solid-query-devtools": "^5.80.10", + "@tanstack/solid-query": "^5.81.2", + "@tanstack/solid-query-devtools": "^5.81.2", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index b6ff923b66..1d5034cf0d 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.10", - "@tanstack/solid-query-devtools": "^5.80.10", + "@tanstack/solid-query": "^5.81.2", + "@tanstack/solid-query-devtools": "^5.81.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 0f92a8a355..0e5fdef017 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.10", - "@tanstack/solid-query-devtools": "^5.80.10", + "@tanstack/solid-query": "^5.81.2", + "@tanstack/solid-query-devtools": "^5.81.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 8a3e208278..1619033f69 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.10", - "@tanstack/solid-query-devtools": "^5.80.10", + "@tanstack/solid-query": "^5.81.2", + "@tanstack/solid-query-devtools": "^5.81.2", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index fc79382df3..7a3343649e 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.80.10", - "@tanstack/solid-query-devtools": "^5.80.10", + "@tanstack/solid-query": "^5.81.2", + "@tanstack/solid-query-devtools": "^5.81.2", "solid-js": "^1.9.5" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.78.0", + "@tanstack/eslint-plugin-query": "^5.81.2", "typescript": "5.8.3", "vite": "^6.2.4", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 671379a8f2..d18e56f223 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.80.10", - "@tanstack/solid-query-devtools": "^5.80.10", + "@tanstack/solid-query": "^5.81.2", + "@tanstack/solid-query-devtools": "^5.81.2", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 39ce358f20..266eb630d4 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10" + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index dd64418ca6..b7a1ffef5b 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.80.10", - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10", - "@tanstack/svelte-query-persist-client": "^5.80.10" + "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2", + "@tanstack/svelte-query-persist-client": "^5.81.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index b15928e986..be0f91327a 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10" + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 837cc9e85e..bd291fd9c9 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10" + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 4a43319201..c45839e28a 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10" + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index e2e6f1c8b6..798c949ad4 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10" + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 0d1b18643a..9e5b596ede 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10" + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 4fd0ff8be5..526b279917 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.80.10", - "@tanstack/svelte-query-devtools": "^5.80.10" + "@tanstack/svelte-query": "^5.81.2", + "@tanstack/svelte-query-devtools": "^5.81.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index f10a6fc00d..21584a2714 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.10", + "@tanstack/vue-query": "^5.81.2", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index e4e3e392a5..afe0bf4ae1 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.10", + "@tanstack/vue-query": "^5.81.2", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 406f7841df..2cacedaacd 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.10", - "@tanstack/vue-query-devtools": "^5.80.10", + "@tanstack/vue-query": "^5.81.2", + "@tanstack/vue-query-devtools": "^5.81.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 2434bfa41b..914b9e8973 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.10", + "@tanstack/vue-query": "^5.81.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 2c19dc9391..9e6759cc4e 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.80.10" + "@tanstack/vue-query": "^5.81.2" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index fd5acc2e76..57adc17b4b 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.80.10", - "@tanstack/query-persist-client-core": "^5.80.10", - "@tanstack/query-sync-storage-persister": "^5.80.10", - "@tanstack/vue-query": "^5.80.10", + "@tanstack/query-core": "^5.81.2", + "@tanstack/query-persist-client-core": "^5.81.2", + "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/vue-query": "^5.81.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index d2a94a00af..aa6e9e9897 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.80.10", - "@tanstack/vue-query-devtools": "^5.80.10", + "@tanstack/vue-query": "^5.81.2", + "@tanstack/vue-query-devtools": "^5.81.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index f6d5081405..df44fa7e1b 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.80.10", + "version": "5.81.2", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 680525b8e6..9d3487982c 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.80.10", + "version": "5.81.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index dd37cdc7ca..2ddd45f1b0 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.78.0", + "version": "5.81.2", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index b41f0e5a00..96e840e768 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.80.10", + "version": "5.81.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index db21180107..bd497b10c8 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.80.10", + "version": "5.81.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 82c2cd82bc..0a588ee9ac 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.80.10", + "version": "5.81.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 0db06289ff..28d1c4e993 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.80.0", + "version": "5.81.2", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index f5bc6b79f5..109de7c44e 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.80.10", + "version": "5.81.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 8adfe05bcc..39bb609dd3 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.80.10", + "version": "5.81.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index ea28b992ef..6645720c09 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.80.10", + "version": "5.81.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 11af2f94c7..724791b049 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.80.10", + "version": "5.81.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index afdd78deed..3fc6c791f8 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.80.10", + "version": "5.81.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 57fb3ef9a0..a1a60be83c 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.80.10", + "version": "5.81.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 3fa707e634..ad85c3bc4a 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.80.10", + "version": "5.81.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 200287dd6a..15eebb01a4 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.80.10", + "version": "5.81.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index bbcbda554b..ecdc3cfec9 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.80.10", + "version": "5.81.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 6e8b370c9f..4b9acb477e 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.80.10", + "version": "5.81.2", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 480d0b8f15..28776a083b 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.80.10", + "version": "5.81.2", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 88858e72f1..3c3ef35505 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.80.10", + "version": "5.81.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 5085d89c39..1003838f6e 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.80.10", + "version": "5.81.2", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 3236212575..e8b8ba0872 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.80.10", + "version": "5.81.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 13d775bcce7c8e175cf627699dad6efcbe9ab03d Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sun, 22 Jun 2025 20:43:24 +0900 Subject: [PATCH 171/432] test(vue-query): use fakeTimers for flaky useMutation.test.tsx (#9300) --- .../src/__tests__/useMutation.test.ts | 89 ++++++++++--------- 1 file changed, 49 insertions(+), 40 deletions(-) diff --git a/packages/vue-query/src/__tests__/useMutation.test.ts b/packages/vue-query/src/__tests__/useMutation.test.ts index cfab0054fc..55ba96fecf 100644 --- a/packages/vue-query/src/__tests__/useMutation.test.ts +++ b/packages/vue-query/src/__tests__/useMutation.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { reactive, ref } from 'vue-demi' import { sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' @@ -7,6 +7,13 @@ import { useQueryClient } from '../useQueryClient' vi.mock('../useQueryClient') describe('useMutation', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + afterEach(() => { + vi.useRealTimers() + }) + test('should be in idle state initially', () => { const mutation = useMutation({ mutationFn: (params) => sleep(0).then(() => params), @@ -41,10 +48,10 @@ describe('useMutation', () => { test('should return error when request fails', async () => { const mutation = useMutation({ mutationFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), }) mutation.mutate() - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(mutation).toMatchObject({ isIdle: { value: false }, isPending: { value: false }, @@ -58,12 +65,12 @@ describe('useMutation', () => { test('should return data when request succeeds', async () => { const result = 'Mock data' const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) mutation.mutate(result) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(mutation).toMatchObject({ isIdle: { value: false }, @@ -80,15 +87,15 @@ describe('useMutation', () => { const mutationCache = queryClient.getMutationCache() const options = reactive({ mutationKey: ['foo'], - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) const mutation = useMutation(options) options.mutationKey = ['bar'] - await sleep(0) + await vi.advanceTimersByTimeAsync(10) mutation.mutate('xyz') - await sleep(0) + await vi.advanceTimersByTimeAsync(10) const mutations = mutationCache.find({ mutationKey: ['bar'] }) @@ -112,15 +119,15 @@ describe('useMutation', () => { const mutationCache = queryClient.getMutationCache() const options = reactive({ mutationKey, - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) const mutation = useMutation(options) mutationKey.value[0]!.otherObject.name = 'someOtherObjectName' - await sleep(0) + await vi.advanceTimersByTimeAsync(10) mutation.mutate('xyz') - await sleep(0) + await vi.advanceTimersByTimeAsync(10) const mutations = mutationCache.getAll() const relevantMutation = mutations.find((m) => { @@ -147,12 +154,12 @@ describe('useMutation', () => { let proof = false mutationFn.value = (params: string) => { proof = true - return sleep(0).then(() => params) + return sleep(10).then(() => params) } - await sleep(0) + await vi.advanceTimersByTimeAsync(10) mutation.mutate('xyz') - await sleep(0) + await vi.advanceTimersByTimeAsync(10) const mutations = mutationCache.find({ mutationKey: ['bar2'] }) expect(mutations?.options.mutationKey).toEqual(['bar2']) @@ -162,12 +169,12 @@ describe('useMutation', () => { test('should reset state after invoking mutation.reset', async () => { const mutation = useMutation({ mutationFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), }) mutation.mutate() - await sleep(10) + await vi.advanceTimersByTimeAsync(10) mutation.reset() @@ -189,13 +196,13 @@ describe('useMutation', () => { test('should call onMutate when passed as an option', async () => { const onMutate = vi.fn() const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onMutate, }) mutation.mutate('') - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onMutate).toHaveBeenCalledTimes(1) }) @@ -204,13 +211,13 @@ describe('useMutation', () => { const onError = vi.fn() const mutation = useMutation({ mutationFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), onError, }) mutation.mutate('') - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onError).toHaveBeenCalledTimes(1) }) @@ -218,13 +225,13 @@ describe('useMutation', () => { test('should call onSuccess when passed as an option', async () => { const onSuccess = vi.fn() const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onSuccess, }) mutation.mutate('') - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onSuccess).toHaveBeenCalledTimes(1) }) @@ -232,13 +239,13 @@ describe('useMutation', () => { test('should call onSettled when passed as an option', async () => { const onSettled = vi.fn() const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onSettled, }) mutation.mutate('') - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onSettled).toHaveBeenCalledTimes(1) }) @@ -247,12 +254,12 @@ describe('useMutation', () => { const onError = vi.fn() const mutation = useMutation({ mutationFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), }) mutation.mutate(undefined, { onError }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onError).toHaveBeenCalledTimes(1) }) @@ -260,12 +267,12 @@ describe('useMutation', () => { test('should call onSuccess when passed as an argument of mutate function', async () => { const onSuccess = vi.fn() const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) mutation.mutate('', { onSuccess }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onSuccess).toHaveBeenCalledTimes(1) }) @@ -273,12 +280,12 @@ describe('useMutation', () => { test('should call onSettled when passed as an argument of mutate function', async () => { const onSettled = vi.fn() const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) mutation.mutate('', { onSettled }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onSettled).toHaveBeenCalledTimes(1) }) @@ -287,13 +294,13 @@ describe('useMutation', () => { const onSettled = vi.fn() const onSettledOnFunction = vi.fn() const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onSettled, }) mutation.mutate('', { onSettled: onSettledOnFunction }) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(onSettled).toHaveBeenCalledTimes(1) expect(onSettledOnFunction).toHaveBeenCalledTimes(1) @@ -308,10 +315,12 @@ describe('useMutation', () => { test('should resolve properly', async () => { const result = 'Mock data' const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) - await expect(mutation.mutateAsync(result)).resolves.toBe(result) + await vi.waitFor(() => + expect(mutation.mutateAsync(result)).resolves.toBe(result), + ) expect(mutation).toMatchObject({ isIdle: { value: false }, @@ -326,10 +335,12 @@ describe('useMutation', () => { test('should throw on error', async () => { const mutation = useMutation({ mutationFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), }) - await expect(mutation.mutateAsync()).rejects.toThrowError('Some error') + await vi.waitFor(() => + expect(mutation.mutateAsync()).rejects.toThrowError('Some error'), + ) expect(mutation).toMatchObject({ isIdle: { value: false }, @@ -347,15 +358,13 @@ describe('useMutation', () => { const err = new Error('Expected mock error. All is well!') const boundaryFn = vi.fn() const { mutate } = useMutation({ - mutationFn: () => { - return Promise.reject(err) - }, + mutationFn: () => sleep(10).then(() => Promise.reject(err)), throwOnError: boundaryFn, }) mutate() - await sleep(0) + await vi.advanceTimersByTimeAsync(10) expect(boundaryFn).toHaveBeenCalledTimes(1) expect(boundaryFn).toHaveBeenCalledWith(err) From f7cf1b521069fe81d3cd96394b366030d9453aa1 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Wed, 25 Jun 2025 12:45:48 +0200 Subject: [PATCH 172/432] chore: update @tanstack/config (#9302) --- eslint.config.js | 1 - package.json | 2 +- .../svelte-query-devtools/eslint.config.js | 10 + packages/svelte-query-devtools/package.json | 2 +- .../eslint.config.js | 10 + .../svelte-query-persist-client/package.json | 2 +- packages/svelte-query/eslint.config.js | 10 + packages/svelte-query/package.json | 2 +- pnpm-lock.yaml | 2220 +++++++++-------- 9 files changed, 1263 insertions(+), 996 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 3b5cd36f26..f156cd2e9c 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -39,7 +39,6 @@ export default [ ], '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-unsafe-function-type': 'off', - '@typescript-eslint/require-await': 'error', 'no-case-declarations': 'off', }, }, diff --git a/package.json b/package.json index caae97bd5e..354e0b2cf4 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@arethetypeswrong/cli": "^0.15.3", "@cspell/eslint-plugin": "^8.17.1", "@eslint-react/eslint-plugin": "^1.19.0", - "@tanstack/config": "^0.14.2", + "@tanstack/config": "^0.19.0", "@testing-library/jest-dom": "^6.6.3", "@types/node": "^22.15.3", "@types/react": "^19.0.1", diff --git a/packages/svelte-query-devtools/eslint.config.js b/packages/svelte-query-devtools/eslint.config.js index f31c5e878b..b657d69d66 100644 --- a/packages/svelte-query-devtools/eslint.config.js +++ b/packages/svelte-query-devtools/eslint.config.js @@ -2,10 +2,20 @@ import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' +import svelteConfig from './svelte.config.js' export default [ ...rootConfig, ...pluginSvelte.configs['flat/recommended'], + { + files: ['**/*.svelte'], + languageOptions: { + parserOptions: { + parser: '@typescript-eslint/parser', + svelteConfig, + }, + }, + }, { rules: { 'svelte/block-lang': ['error', { script: ['ts'] }], diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 4b9acb477e..ec255a402f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -48,7 +48,7 @@ "@sveltejs/package": "^2.3.10", "@sveltejs/vite-plugin-svelte": "^5.0.3", "@tanstack/svelte-query": "workspace:*", - "eslint-plugin-svelte": "^2.46.0", + "eslint-plugin-svelte": "^3.9.3", "svelte": "^5.26.1", "svelte-check": "^4.1.5" }, diff --git a/packages/svelte-query-persist-client/eslint.config.js b/packages/svelte-query-persist-client/eslint.config.js index f31c5e878b..b657d69d66 100644 --- a/packages/svelte-query-persist-client/eslint.config.js +++ b/packages/svelte-query-persist-client/eslint.config.js @@ -2,10 +2,20 @@ import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' +import svelteConfig from './svelte.config.js' export default [ ...rootConfig, ...pluginSvelte.configs['flat/recommended'], + { + files: ['**/*.svelte'], + languageOptions: { + parserOptions: { + parser: '@typescript-eslint/parser', + svelteConfig, + }, + }, + }, { rules: { 'svelte/block-lang': ['error', { script: ['ts'] }], diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 28776a083b..75e9545f09 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -52,7 +52,7 @@ "@tanstack/query-test-utils": "workspace:*", "@tanstack/svelte-query": "workspace:*", "@testing-library/svelte": "^5.2.6", - "eslint-plugin-svelte": "^2.46.0", + "eslint-plugin-svelte": "^3.9.3", "svelte": "^5.26.1", "svelte-check": "^4.1.5" }, diff --git a/packages/svelte-query/eslint.config.js b/packages/svelte-query/eslint.config.js index f31c5e878b..b657d69d66 100644 --- a/packages/svelte-query/eslint.config.js +++ b/packages/svelte-query/eslint.config.js @@ -2,10 +2,20 @@ import pluginSvelte from 'eslint-plugin-svelte' import rootConfig from './root.eslint.config.js' +import svelteConfig from './svelte.config.js' export default [ ...rootConfig, ...pluginSvelte.configs['flat/recommended'], + { + files: ['**/*.svelte'], + languageOptions: { + parserOptions: { + parser: '@typescript-eslint/parser', + svelteConfig, + }, + }, + }, { rules: { 'svelte/block-lang': ['error', { script: ['ts'] }], diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 3c3ef35505..4bb3870ea0 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -51,7 +51,7 @@ "@sveltejs/vite-plugin-svelte": "^5.0.3", "@tanstack/query-test-utils": "workspace:*", "@testing-library/svelte": "^5.2.6", - "eslint-plugin-svelte": "^2.46.0", + "eslint-plugin-svelte": "^3.9.3", "svelte": "^5.26.1", "svelte-check": "^4.1.5" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 839f124ba0..26c72af33d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,13 +40,13 @@ importers: version: 0.15.3 '@cspell/eslint-plugin': specifier: ^8.17.1 - version: 8.17.1(eslint@9.15.0(jiti@2.4.2)) + version: 8.17.1(eslint@9.29.0(jiti@2.4.2)) '@eslint-react/eslint-plugin': specifier: ^1.19.0 - version: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + version: 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@tanstack/config': - specifier: ^0.14.2 - version: 0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + specifier: ^0.19.0 + version: 0.19.0(@types/node@22.15.3)(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 @@ -61,10 +61,10 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitest/coverage-istanbul': specifier: ^3.1.1 - version: 3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@vitest/eslint-plugin': specifier: ^1.1.36 - version: 1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 1.1.36(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) cpy-cli: specifier: ^5.0.0 version: 5.0.0 @@ -73,10 +73,10 @@ importers: version: 2.1.4 eslint: specifier: ^9.15.0 - version: 9.15.0(jiti@2.4.2) + version: 9.29.0(jiti@2.4.2) eslint-plugin-react-hooks: specifier: ^6.0.0-rc.1 - version: 6.0.0-rc.1(eslint@9.15.0(jiti@2.4.2)) + version: 6.0.0-rc.1(eslint@9.29.0(jiti@2.4.2)) fast-glob: specifier: ^3.3.3 version: 3.3.3 @@ -115,7 +115,7 @@ importers: version: 1.0.0 tsup: specifier: ^8.4.0 - version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) + version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) typescript: specifier: 5.8.3 version: 5.8.3 @@ -145,10 +145,10 @@ importers: version: typescript@5.7.2 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vitest: specifier: ^3.1.3 - version: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/angular/auto-refetching: dependencies: @@ -182,7 +182,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -225,7 +225,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -274,7 +274,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -323,7 +323,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -366,7 +366,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -412,7 +412,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -455,7 +455,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -501,7 +501,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -547,7 +547,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -593,7 +593,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -636,7 +636,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -676,13 +676,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/auto-refetching: dependencies: @@ -744,13 +744,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/basic-graphql-request: dependencies: @@ -775,10 +775,10 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/chat: dependencies: @@ -797,10 +797,10 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.0.14 - version: 4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) tailwindcss: specifier: ^4.0.14 version: 4.0.14 @@ -809,7 +809,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/default-query-function: dependencies: @@ -828,13 +828,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/devtools-panel: dependencies: @@ -853,13 +853,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/eslint-legacy: dependencies: @@ -893,13 +893,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/infinite-query-with-max-pages: dependencies: @@ -1076,13 +1076,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/optimistic-updates-cache: dependencies: @@ -1185,13 +1185,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/prefetching: dependencies: @@ -1326,13 +1326,13 @@ importers: version: 1.2.3 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/rick-morty: dependencies: @@ -1369,13 +1369,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/shadow-dom: dependencies: @@ -1400,13 +1400,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/simple: dependencies: @@ -1425,13 +1425,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/star-wars: dependencies: @@ -1468,13 +1468,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/react/suspense: dependencies: @@ -1499,13 +1499,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/solid/astro: dependencies: @@ -1514,16 +1514,16 @@ importers: version: 0.9.4(prettier@3.5.3)(typescript@5.8.3) '@astrojs/node': specifier: ^9.1.3 - version: 9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) + version: 9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) '@astrojs/solid-js': specifier: ^5.0.7 - version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + version: 8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1532,7 +1532,7 @@ importers: version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 - version: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) + version: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) solid-js: specifier: ^1.9.5 version: 1.9.5 @@ -1560,10 +1560,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) examples/solid/basic-graphql-request: dependencies: @@ -1588,10 +1588,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) examples/solid/default-query-function: dependencies: @@ -1610,10 +1610,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) examples/solid/simple: dependencies: @@ -1635,10 +1635,10 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) examples/solid/solid-start-streaming: dependencies: @@ -1650,7 +1650,7 @@ importers: version: 0.15.3(solid-js@1.9.5) '@solidjs/start': specifier: ^1.1.3 - version: 1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(yaml@2.6.1) + version: 1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(yaml@2.8.0) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1662,7 +1662,7 @@ importers: version: 1.9.5 vinxi: specifier: ^0.5.3 - version: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/auto-refetching: dependencies: @@ -1675,13 +1675,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1693,7 +1693,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/basic: dependencies: @@ -1712,13 +1712,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1730,7 +1730,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/load-more-infinite-scroll: dependencies: @@ -1743,13 +1743,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1761,7 +1761,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/optimistic-updates: dependencies: @@ -1774,13 +1774,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1792,7 +1792,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/playground: dependencies: @@ -1805,13 +1805,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1823,7 +1823,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/simple: dependencies: @@ -1836,7 +1836,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@tsconfig/svelte': specifier: ^5.0.4 version: 5.0.4 @@ -1851,7 +1851,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/ssr: dependencies: @@ -1864,13 +1864,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -1882,7 +1882,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/svelte/star-wars: dependencies: @@ -1895,13 +1895,13 @@ importers: devDependencies: '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))) + version: 6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) '@sveltejs/kit': specifier: ^2.20.5 - version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) autoprefixer: specifier: ^10.4.20 version: 10.4.21(postcss@8.5.3) @@ -1922,7 +1922,7 @@ importers: version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/vue/basic: dependencies: @@ -1938,13 +1938,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/vue/dependent-queries: dependencies: @@ -1957,13 +1957,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/vue/persister: dependencies: @@ -1988,13 +1988,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) examples/vue/simple: dependencies: @@ -2010,13 +2010,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) integrations/angular-cli-20: dependencies: @@ -2053,7 +2053,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(841ce0d66534d5fe468cf43db50ee74f) + version: 20.0.0(1b255dd5e391bfe34df112e839c233f2) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -2130,7 +2130,7 @@ importers: version: link:../../packages/react-query-devtools '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) react: specifier: ^19.0.0 version: 19.0.0 @@ -2139,7 +2139,7 @@ importers: version: 19.0.0(react@19.0.0) vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) integrations/react-webpack-4: dependencies: @@ -2231,16 +2231,16 @@ importers: version: 1.9.5 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) integrations/svelte-vite: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@tanstack/svelte-query': specifier: workspace:* version: link:../../packages/svelte-query @@ -2252,7 +2252,7 @@ importers: version: 5.26.1 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) integrations/vue-vite: dependencies: @@ -2265,13 +2265,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.2.4 - version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vue-tsc: specifier: ^2.2.8 version: 2.2.8(typescript@5.8.3) @@ -2296,7 +2296,7 @@ importers: version: link:../angular-query-experimental eslint-plugin-jsdoc: specifier: ^50.5.0 - version: 50.5.0(eslint@9.15.0(jiti@2.4.2)) + version: 50.5.0(eslint@9.29.0(jiti@2.4.2)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2327,19 +2327,19 @@ importers: version: link:../query-test-utils eslint-plugin-jsdoc: specifier: ^50.5.0 - version: 50.5.0(eslint@9.15.0(jiti@2.4.2)) + version: 50.5.0(eslint@9.29.0(jiti@2.4.2)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) vite-plugin-externalize-deps: specifier: ^0.9.0 - version: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) packages/angular-query-persist-client: dependencies: @@ -2376,7 +2376,7 @@ importers: version: 10.4.0 eslint-plugin-jsdoc: specifier: ^50.5.0 - version: 50.5.0(eslint@9.15.0(jiti@2.4.2)) + version: 50.5.0(eslint@9.29.0(jiti@2.4.2)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2430,7 +2430,7 @@ importers: version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2493,10 +2493,10 @@ importers: version: 2.2.1 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) packages/query-persist-client-core: dependencies: @@ -2559,7 +2559,7 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2590,7 +2590,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2608,7 +2608,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) next: specifier: ^15.3.1 version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) @@ -2639,7 +2639,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2667,10 +2667,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) packages/solid-query-devtools: dependencies: @@ -2689,10 +2689,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) packages/solid-query-persist-client: dependencies: @@ -2717,10 +2717,10 @@ importers: version: 1.9.5 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) packages/svelte-query: dependencies: @@ -2733,16 +2733,16 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils '@testing-library/svelte': specifier: ^5.2.6 - version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) eslint-plugin-svelte: - specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + specifier: ^3.9.3 + version: 3.9.3(eslint@9.29.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -2764,13 +2764,13 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query eslint-plugin-svelte: - specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + specifier: ^3.9.3 + version: 3.9.3(eslint@9.29.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -2789,7 +2789,7 @@ importers: version: 2.3.10(svelte@5.26.1)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2798,10 +2798,10 @@ importers: version: link:../svelte-query '@testing-library/svelte': specifier: ^5.2.6 - version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + version: 5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) eslint-plugin-svelte: - specifier: ^2.46.0 - version: 2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + specifier: ^3.9.3 + version: 3.9.3(eslint@9.29.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: specifier: ^5.26.1 version: 5.26.1 @@ -2829,13 +2829,13 @@ importers: version: link:../query-test-utils '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) '@vue/composition-api': specifier: 1.7.2 version: 1.7.2(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^9.27.0 - version: 9.27.0(eslint@9.15.0(jiti@2.4.2)) + version: 9.27.0(eslint@9.29.0(jiti@2.4.2)) vue: specifier: ^3.4.27 version: 3.4.35(typescript@5.8.3) @@ -2857,16 +2857,16 @@ importers: version: link:../vue-query '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^9.27.0 - version: 9.27.0(eslint@9.15.0(jiti@2.4.2)) + version: 9.27.0(eslint@9.29.0(jiti@2.4.2)) typescript: specifier: 5.8.3 version: 5.8.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vue: specifier: ^3.4.27 version: 3.4.35(typescript@5.8.3) @@ -4305,12 +4305,12 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@commitlint/parse@19.5.0': - resolution: {integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==} + '@commitlint/parse@19.8.1': + resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==} engines: {node: '>=v18'} - '@commitlint/types@19.5.0': - resolution: {integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==} + '@commitlint/types@19.8.1': + resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==} engines: {node: '>=v18'} '@corvu/utils@0.3.2': @@ -4575,6 +4575,9 @@ packages: '@emnapi/core@1.2.0': resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} + '@emnapi/core@1.4.3': + resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/runtime@1.2.0': resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} @@ -4584,6 +4587,9 @@ packages: '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + '@emnapi/wasi-threads@1.0.2': + resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} @@ -5386,6 +5392,12 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -5425,6 +5437,22 @@ packages: resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.20.1': + resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.2.3': + resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.14.0': + resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.15.0': + resolution: {integrity: sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.9.0': resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5433,22 +5461,34 @@ packages: resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.15.0': resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.17.0': - resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==} + '@eslint/js@9.29.0': + resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.2.3': resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.3.2': + resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@expo/bunyan@4.0.0': resolution: {integrity: sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==} engines: {'0': node >=0.10.0} @@ -5559,6 +5599,10 @@ packages: resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} engines: {node: '>=18.18'} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -6085,19 +6129,12 @@ packages: engines: {node: '>=18'} hasBin: true - '@microsoft/api-extractor-model@7.29.4': - resolution: {integrity: sha512-LHOMxmT8/tU1IiiiHOdHFF83Qsi+V8d0kLfscG4EvQE9cafiR8blOYr8SfkQKWB1wgEilQgXJX3MIA4vetDLZw==} - '@microsoft/api-extractor-model@7.29.6': resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==} '@microsoft/api-extractor-model@7.30.1': resolution: {integrity: sha512-CTS2PlASJHxVY8hqHORVb1HdECWOEMcMnM6/kDkPr0RZapAFSIHhg9D4jxuE8g+OWYHtPc10LCpmde5pylTRlA==} - '@microsoft/api-extractor@7.47.4': - resolution: {integrity: sha512-HKm+P4VNzWwvq1Ey+Jfhhj/3MjsD+ka2hbt8L5AcRM95lu1MFOYnz3XlU7Gr79Q/ZhOb7W/imAKeYrOI0bFydg==} - hasBin: true - '@microsoft/api-extractor@7.47.7': resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==} hasBin: true @@ -6337,6 +6374,9 @@ packages: resolution: {integrity: sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==} engines: {node: '>= 10'} + '@napi-rs/wasm-runtime@0.2.11': + resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} @@ -7106,14 +7146,6 @@ packages: '@types/node': optional: true - '@rushstack/node-core-library@5.5.1': - resolution: {integrity: sha512-ZutW56qIzH8xIOlfyaLQJFx+8IBqdbVCZdnj+XT1MorQ1JqqxHse8vbCpEM+2MjsrqcbxcgDIbfggB1ZSQ2A3g==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - '@rushstack/node-core-library@5.7.0': resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==} peerDependencies: @@ -7125,14 +7157,6 @@ packages: '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - '@rushstack/terminal@0.13.3': - resolution: {integrity: sha512-fc3zjXOw8E0pXS5t9vTiIPx9gHA0fIdTXsu9mT4WbH+P3mYvnrX0iAQ5a6NvyK1+CqYWBTw/wVNx7SDJkI+WYQ==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - '@rushstack/terminal@0.14.0': resolution: {integrity: sha512-juTKMAMpTIJKudeFkG5slD8Z/LHwNwGZLtU441l/u82XdTBfsP+LbGKJLCNwP5se+DMCT55GB8x9p6+C4UL7jw==} peerDependencies: @@ -7149,9 +7173,6 @@ packages: '@types/node': optional: true - '@rushstack/ts-command-line@4.22.3': - resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} - '@rushstack/ts-command-line@4.22.6': resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==} @@ -7345,11 +7366,11 @@ packages: '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} - '@stylistic/eslint-plugin-js@2.11.0': - resolution: {integrity: sha512-btchD0P3iij6cIk5RR5QMdEhtCCV0+L6cNheGhGCd//jaHILZMTi/EOqgEDAf1s4ZoViyExoToM+S2Iwa3U9DA==} + '@stylistic/eslint-plugin@4.4.1': + resolution: {integrity: sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=8.40.0' + eslint: '>=9.0.0' '@sveltejs/acorn-typescript@1.0.5': resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==} @@ -7479,19 +7500,26 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 - '@tanstack/config@0.14.2': - resolution: {integrity: sha512-C431mIFMWgsnQKvmwjysfUbkqGWGtNgXqIcS14h/0QUvwSCx+ctC1UrsvGY08FrNouo/iAExRoOqUbD6cNagPg==} + '@tanstack/config@0.19.0': + resolution: {integrity: sha512-Ir9RF+J6BrNvPBe5t7Mh32Cj1GxCWE8sNrP0ItqhYRud7iwiKN2MNQWlMLDSkiigSh/r831n/Dfwk84qBLqjjw==} engines: {node: '>=18'} - hasBin: true '@tanstack/directive-functions-plugin@1.114.32': resolution: {integrity: sha512-hm5vOUWURrdibOD4JTcKPmz4U4iDjxZhRNrGVR2JEqYc7nWHb53Fb+2F1jIHyuLuhnuVt9vq5omqcegbd2oPhA==} engines: {node: '>=12'} + '@tanstack/eslint-config@0.2.0': + resolution: {integrity: sha512-KUJUDvYFaqxekc8IwgokZ7+yJUoR7LPFu788VSfCxtsbqP/wZyppuoaToC/74LIFjBKIHJQN+YdvBFedD2fqJg==} + engines: {node: '>=18'} + '@tanstack/match-sorter-utils@8.19.4': resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} + '@tanstack/publish-config@0.2.0': + resolution: {integrity: sha512-RC0yRBFJvGuR58tKQUIkMXVEiATXgESIc+3/NTqoCC7D2YOF4fZGmHGYIanFEPQH7EGfQ5+Bwi+H6BOtKnymtw==} + engines: {node: '>=18'} + '@tanstack/react-location@3.7.4': resolution: {integrity: sha512-6rH2vNHGr0uyeUz5ZHvWMYjeYKGgIKFzvs5749QtnS9f+FU7t7fQE0hKZAzltBZk82LT7iYbcHBRyUg2lW13VA==} engines: {node: '>=12'} @@ -7507,6 +7535,14 @@ packages: resolution: {integrity: sha512-l4RonnJM8gOLeyzThSEd/ZTDhrMGQGm9ZdXtmoLPF17L6Z6neJkNmfYSvVXPPUpL9aQOVncAR0OWDgZgsxIjFw==} engines: {node: '>=12'} + '@tanstack/typedoc-config@0.2.0': + resolution: {integrity: sha512-1ak0ZirlLRxd3dNNOFnMoYORBeC83nK4C+OiXpE0dxsO8ZVrBqCtNCKr8SG+W9zICXcWGiFu9qYLsgNKTayOqw==} + engines: {node: '>=18'} + + '@tanstack/vite-config@0.2.0': + resolution: {integrity: sha512-WpL1C9iR5/U7g3GpvHIssN5QvKnDnWhW05BQhaD6bAqoPCkQyBepxUF8ZRO4IGZRGVAZeMVqTbUA05BAQH/88g==} + engines: {node: '>=18'} + '@testing-library/angular@17.3.7': resolution: {integrity: sha512-99Wf/06CCyBP3rmIu+WacUTGZMDKTQR12phe1lUMrknwxHLFUf5jn230L/mW4XIZ+ThDJ/4D6OzhVskbOYDqig==} peerDependencies: @@ -7617,9 +7653,6 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/doctrine@0.0.9': - resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -7739,13 +7772,13 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.18.1': - resolution: {integrity: sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==} + '@typescript-eslint/eslint-plugin@8.34.1': + resolution: {integrity: sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.34.1 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/parser@8.18.1': resolution: {integrity: sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==} @@ -7754,6 +7787,19 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/parser@8.34.1': + resolution: {integrity: sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/project-service@8.34.1': + resolution: {integrity: sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/rule-tester@8.18.1': resolution: {integrity: sha512-Ri73SSfOfd+aESELU2k0ikpIahTSY1VVsGiFWarDy54HSuMMZc/2JCST0dfpRep3egAvcI5/lcQvRHmSyzcA4g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7764,6 +7810,16 @@ packages: resolution: {integrity: sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.34.1': + resolution: {integrity: sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.34.1': + resolution: {integrity: sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.18.1': resolution: {integrity: sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7771,16 +7827,33 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/type-utils@8.34.1': + resolution: {integrity: sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/types@8.18.1': resolution: {integrity: sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.34.1': + resolution: {integrity: sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.18.1': resolution: {integrity: sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/typescript-estree@8.34.1': + resolution: {integrity: sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.18.1': resolution: {integrity: sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7788,13 +7861,119 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/utils@8.34.1': + resolution: {integrity: sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/visitor-keys@8.18.1': resolution: {integrity: sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.34.1': + resolution: {integrity: sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@unrs/resolver-binding-android-arm-eabi@1.9.1': + resolution: {integrity: sha512-dd7yIp1hfJFX9ZlVLQRrh/Re9WMUHHmF9hrKD1yIvxcyNr2BhQ3xc1upAVhy8NijadnCswAxWQu8MkkSMC1qXQ==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.9.1': + resolution: {integrity: sha512-EzUPcMFtDVlo5yrbzMqUsGq3HnLXw+3ZOhSd7CUaDmbTtnrzM+RO2ntw2dm2wjbbc5djWj3yX0wzbbg8pLhx8g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.9.1': + resolution: {integrity: sha512-nB+dna3q4kOleKFcSZJ/wDXIsAd1kpMO9XrVAt8tG3RDWJ6vi+Ic6bpz4cmg5tWNeCfHEY4KuqJCB+pKejPEmQ==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.9.1': + resolution: {integrity: sha512-aKWHCrOGaCGwZcekf3TnczQoBxk5w//W3RZ4EQyhux6rKDwBPgDU9Y2yGigCV1Z+8DWqZgVGQi+hdpnlSy3a1w==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.9.1': + resolution: {integrity: sha512-4dIEMXrXt0UqDVgrsUd1I+NoIzVQWXy/CNhgpfS75rOOMK/4Abn0Mx2M2gWH4Mk9+ds/ASAiCmqoUFynmMY5hA==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': + resolution: {integrity: sha512-vtvS13IXPs1eE8DuS/soiosqMBeyh50YLRZ+p7EaIKAPPeevRnA9G/wu/KbVt01ZD5qiGjxS+CGIdVC7I6gTOw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': + resolution: {integrity: sha512-BfdnN6aZ7NcX8djW8SR6GOJc+K+sFhWRF4vJueVE0vbUu5N1bLnBpxJg1TGlhSyo+ImC4SR0jcNiKN0jdoxt+A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': + resolution: {integrity: sha512-Jhge7lFtH0QqfRz2PyJjJXWENqywPteITd+nOS0L6AhbZli+UmEyGBd2Sstt1c+l9C+j/YvKTl9wJo9PPmsFNg==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.9.1': + resolution: {integrity: sha512-ofdK/ow+ZSbSU0pRoB7uBaiRHeaAOYQFU5Spp87LdcPL/P1RhbCTMSIYVb61XWzsVEmYKjHFtoIE0wxP6AFvrA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': + resolution: {integrity: sha512-eC8SXVn8de67HacqU7PoGdHA+9tGbqfEdD05AEFRAB81ejeQtNi5Fx7lPcxpLH79DW0BnMAHau3hi4RVkHfSCw==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': + resolution: {integrity: sha512-fIkwvAAQ41kfoGWfzeJ33iLGShl0JEDZHrMnwTHMErUcPkaaZRJYjQjsFhMl315NEQ4mmTlC+2nfK/J2IszDOw==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': + resolution: {integrity: sha512-RAAszxImSOFLk44aLwnSqpcOdce8sBcxASledSzuFAd8Q5ZhhVck472SisspnzHdc7THCvGXiUeZ2hOC7NUoBQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': + resolution: {integrity: sha512-QoP9vkY+THuQdZi05bA6s6XwFd6HIz3qlx82v9bTOgxeqin/3C12Ye7f7EOD00RQ36OtOPWnhEMMm84sv7d1XQ==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.9.1': + resolution: {integrity: sha512-/p77cGN/h9zbsfCseAP5gY7tK+7+DdM8fkPfr9d1ye1fsF6bmtGbtZN6e/8j4jCZ9NEIBBkT0GhdgixSelTK9g==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.9.1': + resolution: {integrity: sha512-wInTqT3Bu9u50mDStEig1v8uxEL2Ht+K8pir/YhyyrM5ordJtxoqzsL1vR/CQzOJuDunUTrDkMM0apjW/d7/PA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.9.1': + resolution: {integrity: sha512-eNwqO5kUa+1k7yFIircwwiniKWA0UFHo2Cfm8LYgkh9km7uMad+0x7X7oXbQonJXlqfitBTSjhA0un+DsHIrhw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': + resolution: {integrity: sha512-Eaz1xMUnoa2mFqh20mPqSdbYl6crnk8HnIXDu6nsla9zpgZJZO8w3c1gvNN/4Eb0RXRq3K9OG6mu8vw14gIqiA==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': + resolution: {integrity: sha512-H/+d+5BGlnEQif0gnwWmYbYv7HJj563PUKJfn8PlmzF8UmF+8KxdvXdwCsoOqh4HHnENnoLrav9NYBrv76x1wQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.9.1': + resolution: {integrity: sha512-rS86wI4R6cknYM3is3grCb/laE8XBEbpWAMSIPjYfmYp75KL5dT87jXF2orDa4tQYg5aajP5G8Fgh34dRyR+Rw==} + cpu: [x64] + os: [win32] + '@urql/core@5.0.8': resolution: {integrity: sha512-1GOnUw7/a9bzkcM0+U8U5MmxW2A7FE5YquuEmcJzTtW5tIs2EoS4F2ITpuKBjRBbyRjZgO860nWFPo1m4JImGA==} @@ -7985,14 +8164,6 @@ packages: '@vue/devtools-api@6.6.3': resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} - '@vue/language-core@2.0.29': - resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@vue/language-core@2.1.6': resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} peerDependencies: @@ -8252,6 +8423,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -8445,20 +8621,12 @@ packages: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} - array-each@1.0.1: - resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} - engines: {node: '>=0.10.0'} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - array-slice@1.1.0: - resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} - engines: {node: '>=0.10.0'} - array-timsort@1.0.3: resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} @@ -8589,9 +8757,6 @@ packages: '@babel/core': ^7.12.0 webpack: '>=5' - babel-plugin-add-module-exports@0.2.1: - resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==} - babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -9366,9 +9531,6 @@ packages: cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} - cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - cross-spawn@6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} @@ -9450,9 +9612,6 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - current-git-branch@1.1.0: - resolution: {integrity: sha512-n5mwGZllLsFzxDPtTmadqGe4IIBPfqPbiIRX4xgFR9VK/Bx47U+94KiVkxSKAKN6/s43TlkztS2GZpgMKzwQ8A==} - cyclist@1.0.2: resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} @@ -9526,6 +9685,15 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} @@ -9633,10 +9801,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} @@ -9685,10 +9849,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -9924,11 +10084,6 @@ packages: esbuild: '>=0.12' solid-js: '>= 1.0' - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} @@ -9983,6 +10138,15 @@ packages: peerDependencies: eslint: '>=6.0.0' + eslint-import-context@0.1.8: + resolution: {integrity: sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -9992,11 +10156,18 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.6.1: - resolution: {integrity: sha512-wluSUifMIb7UfwWXqx7Yx0lE/SGCcGXECLx/9bCmbY2nneLwvAZ4vkd1IXDjPKFvdcdUgr1BaRnaRpx3k2+Pfw==} + eslint-plugin-import-x@4.15.2: + resolution: {integrity: sha512-J5gx7sN6DTm0LRT//eP3rVVQ2Yi4hrX0B+DbWxa5er8PZ6JjLo9GUBwogIFvEDdwJaSqZplpQT+haK/cXhb7VQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + '@typescript-eslint/utils': ^8.0.0 eslint: ^8.57.0 || ^9.0.0 + eslint-import-resolver-node: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + eslint-import-resolver-node: + optional: true eslint-plugin-jsdoc@50.5.0: resolution: {integrity: sha512-xTkshfZrUbiSHXBwZ/9d5ulZ2OcHXxSvm/NPo494H/hadLRJwOq5PMV0EUpMqsb9V+kQo+9BAgi6Z7aJtdBp2A==} @@ -10004,8 +10175,8 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-n@17.14.0: - resolution: {integrity: sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==} + eslint-plugin-n@17.20.0: + resolution: {integrity: sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -10076,11 +10247,11 @@ packages: typescript: optional: true - eslint-plugin-svelte@2.46.0: - resolution: {integrity: sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==} - engines: {node: ^14.17.0 || >=16.0.0} + eslint-plugin-svelte@3.9.3: + resolution: {integrity: sha512-PlcyK80sqAZ43IITeZkgl3zPFWJytx/Joup9iKGqIOsXM2m3pWfPbWuXPr5PN3loXFEypqTY/JyZwNqlSpSvRw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + eslint: ^8.57.1 || ^9.0.0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: @@ -10108,6 +10279,10 @@ packages: resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10116,6 +10291,10 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@9.15.0: resolution: {integrity: sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -10126,6 +10305,16 @@ packages: jiti: optional: true + eslint@9.29.0: + resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + esm-env@1.2.2: resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} @@ -10133,6 +10322,10 @@ packages: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10195,10 +10388,6 @@ packages: exec-async@2.2.0: resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==} - execa@0.6.3: - resolution: {integrity: sha512-/teX3MDLFBdYUhRk8WCBYboIMUmqeizu0m9Z3YF3JWrbEh/SlZg00vLJSaAGWw3wrZ9tE0buNw79eaAPYhUuvg==} - engines: {node: '>=4'} - execa@1.0.0: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} @@ -10215,10 +10404,6 @@ packages: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} - expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - expect-type@1.2.1: resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} @@ -10437,18 +10622,6 @@ packages: find-yarn-workspace-root@2.0.0: resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} - findup-sync@5.0.0: - resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} - engines: {node: '>= 10.13.0'} - - fined@2.0.0: - resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} - engines: {node: '>= 10.13.0'} - - flagged-respawn@2.0.0: - resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} - engines: {node: '>= 10.13.0'} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -10497,10 +10670,6 @@ packages: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} - for-own@1.0.0: - resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} - engines: {node: '>=0.10.0'} - foreground-child@3.2.1: resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} @@ -10624,10 +10793,6 @@ packages: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} engines: {node: '>=4'} - get-stream@3.0.0: - resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} - engines: {node: '>=4'} - get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} @@ -10644,6 +10809,9 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} @@ -10692,14 +10860,6 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} - global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - - global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -10716,6 +10876,10 @@ packages: resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} engines: {node: '>=18'} + globals@16.2.0: + resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -10893,10 +11057,6 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -11156,10 +11316,6 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-absolute@1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - is-accessor-descriptor@1.0.1: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} engines: {node: '>= 0.10'} @@ -11258,9 +11414,6 @@ packages: resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} - is-git-repository@1.1.1: - resolution: {integrity: sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==} - is-glob@3.1.0: resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} engines: {node: '>=0.10.0'} @@ -11336,10 +11489,6 @@ packages: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -11353,10 +11502,6 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-relative@1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -11389,10 +11534,6 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} - is-unc-path@1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -11737,8 +11878,8 @@ packages: knitwork@1.2.0: resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -11763,10 +11904,6 @@ packages: lie@3.1.1: resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} - liftoff@5.0.0: - resolution: {integrity: sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==} - engines: {node: '>=10.13.0'} - lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} @@ -12031,9 +12168,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -12583,6 +12717,11 @@ packages: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} + napi-postinstall@0.2.4: + resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -12886,10 +13025,6 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.defaults@1.1.0: - resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} - engines: {node: '>=0.10.0'} - object.getownpropertydescriptors@2.1.8: resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} @@ -13120,10 +13255,6 @@ packages: resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} engines: {node: '>= 0.10'} - parse-filepath@1.0.2: - resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} - engines: {node: '>=0.8'} - parse-imports@2.1.1: resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} engines: {node: '>= 18'} @@ -13147,10 +13278,6 @@ packages: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} - parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - parse-png@2.1.0: resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} engines: {node: '>=10'} @@ -13224,14 +13351,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-root-regex@0.1.2: - resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} - engines: {node: '>=0.10.0'} - - path-root@0.1.1: - resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} - engines: {node: '>=0.10.0'} - path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -13403,11 +13522,11 @@ packages: peerDependencies: postcss: ^8.2.14 - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} peerDependencies: - postcss: ^8.3.3 + postcss: ^8.4.31 postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} @@ -13419,6 +13538,10 @@ packages: resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} engines: {node: '>=4'} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -13554,9 +13677,6 @@ packages: prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} @@ -13987,10 +14107,6 @@ packages: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} - resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - resolve-from@3.0.0: resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} engines: {node: '>=4'} @@ -14389,8 +14505,8 @@ packages: resolution: {integrity: sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==} engines: {node: ^18.17.0 || >=20.5.0} - simple-git@3.27.0: - resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + simple-git@3.28.0: + resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} simple-plist@1.3.1: resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==} @@ -14584,8 +14700,9 @@ packages: ssri@6.0.2: resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} - stable-hash@0.0.4: - resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stable-hash-x@0.1.1: + resolution: {integrity: sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==} + engines: {node: '>=12.0.0'} stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} @@ -14838,9 +14955,9 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte-eslint-parser@0.43.0: - resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + svelte-eslint-parser@1.2.0: + resolution: {integrity: sha512-mbPtajIeuiyU80BEyGvwAktBeTX7KCr5/0l+uRGLq1dafwRNrjfM5kHGJScEBlPG3ipu6dJqfW/k0/fujvIEVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -15100,11 +15217,22 @@ packages: peerDependencies: typescript: '>=4.2.0' + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-declaration-location@1.0.4: resolution: {integrity: sha512-r4JoxYhKULbZuH81Pjrp9OEG5St7XWk7zXwGkLKhmVcjiBVHTJXV5wK6dEa9JKW5QGSTW6b1lOjxAKp8R1SQhg==} peerDependencies: typescript: '>=4.0.0' + ts-declaration-location@1.0.7: + resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} + peerDependencies: + typescript: '>=4.0.0' + ts-expose-internals-conditionally@1.0.0-empty.0: resolution: {integrity: sha512-F8m9NOF6ZhdOClDVdlM8gj3fDCav4ZIFSs/EI3ksQbAAXVSCN/Jh5OCJDDZWBuBy9psFc6jULGDlPwjMYMhJDw==} @@ -15240,23 +15368,23 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typedoc-plugin-frontmatter@1.1.2: - resolution: {integrity: sha512-ySNFQRqKjEM3IobtoND22LUuhpNLwPzTiAxTlqjn5uRLn8k8nqItvxWnWWRzaKMi870ZCvrz4wJHuVg+yqysmw==} + typedoc-plugin-frontmatter@1.2.1: + resolution: {integrity: sha512-TKiOOQCxC1uUYldokAegap2oAtDy9QpsUoVDRohcB6Dm45T91qMgkWqHVS8qbCpDc4SJoGqmGTULGfrqeRqXtA==} peerDependencies: - typedoc-plugin-markdown: '>=4.3.0' + typedoc-plugin-markdown: '>=4.4.2' - typedoc-plugin-markdown@4.3.3: - resolution: {integrity: sha512-kESCcNRzOcFJATLML2FoCfaTF9c0ujmbZ+UXsJvmNlFLS3v8tDKfDifreJXvXWa9d8gUcetZqOqFcZ/7+Ba34Q==} + typedoc-plugin-markdown@4.4.2: + resolution: {integrity: sha512-kJVkU2Wd+AXQpyL6DlYXXRrfNrHrEIUgiABWH8Z+2Lz5Sq6an4dQ/hfvP75bbokjNDUskOdFlEEm/0fSVyC7eg==} engines: {node: '>= 18'} peerDependencies: typedoc: 0.27.x - typedoc@0.27.5: - resolution: {integrity: sha512-x+fhKJtTg4ozXwKayh/ek4wxZQI/+2hmZUdO2i2NGDBRUflDble70z+ewHod3d4gRpXSO6fnlnjbDTnJk7HlkQ==} + typedoc@0.27.9: + resolution: {integrity: sha512-/z585740YHURLl9DN2jCWe6OW7zKYm6VoQ93H0sxZ1cwHQEQrUn5BJrEnkWhfzUdyO+BLGjnKUZ9iz9hKloFDw==} engines: {node: '>= 18'} hasBin: true peerDependencies: - typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} @@ -15264,12 +15392,12 @@ packages: typescript-auto-import-cache@0.3.3: resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@8.18.1: - resolution: {integrity: sha512-Mlaw6yxuaDEPQvb/2Qwu3/TfgeBHy9iTJ3mTwe7OvpPmF6KPQjVOfGyEJpPv6Ez2C34OODChhXrzYw/9phI0MQ==} + typescript-eslint@8.34.1: + resolution: {integrity: sha512-XjS+b6Vg9oT1BaIUfkW3M3LvqZE++rbzAMEHuccCfO/YkP43ha6w3jTEMilQxMF92nVOYCcdjv1ZUhAa1D/0ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} @@ -15336,10 +15464,6 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - unc-path-regex@0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} - uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -15485,6 +15609,9 @@ packages: resolution: {integrity: sha512-Qp+iiD+qCRnUek+nDoYvtWX7tfnYyXsrOnJ452FRTgOyKmTM7TUJ3l+PLPJOOWPTUyKISKp4isC5JJPSXUjGgw==} engines: {node: '>=18.12.0'} + unrs-resolver@1.9.1: + resolution: {integrity: sha512-4AZVxP05JGN6DwqIkSP4VKLOcwQa5l37SWHF/ahcuqBMbfxbpN1L1QKafEhWCziHhzKex9H/AR09H0OuVyU+9g==} + unset-value@1.0.0: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} @@ -15635,10 +15762,6 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8flags@4.0.1: - resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} - engines: {node: '>= 10.13.0'} - validate-html-nesting@1.2.2: resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} @@ -15678,16 +15801,6 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite-plugin-dts@4.0.3: - resolution: {integrity: sha512-+xnTsaONwU2kV6zhRjtbRJSGN41uFR/whqmcb4k4fftLFDJElxthp0PP5Fq8gMeM9ytWMt1yk5gGgekLREWYQQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - vite-plugin-dts@4.2.3: resolution: {integrity: sha512-O5NalzHANQRwVw1xj8KQun3Bv8OSDAlNJXrnqoAz10BOuW8FVvY5g4ygj+DlJZL5mtSPuMu9vd3OfrdW5d4k6w==} engines: {node: ^14.18.0 || >=16.0.0} @@ -15698,11 +15811,6 @@ packages: vite: optional: true - vite-plugin-externalize-deps@0.8.0: - resolution: {integrity: sha512-MdC8kRNQ1ZjhUicU2HcqGVhL0UUFqv83Zp1JZdHjE82PoPR8wsSWZ3axpot7B6img3sW6g8shYJikE0CKA0chA==} - peerDependencies: - vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vite-plugin-externalize-deps@0.9.0: resolution: {integrity: sha512-wg3qb5gCy2d1KpPKyD9wkXMcYJ84yjgziHrStq9/8R7chhUC73mhQz+tVtvhFiICQHsBn1pnkY4IBbPqF9JHNw==} peerDependencies: @@ -16008,18 +16116,18 @@ packages: '@vue/composition-api': optional: true + vue-eslint-parser@10.1.3: + resolution: {integrity: sha512-dbCBnd2e02dYWsXoqX5yKUZlOt+ExIpq7hmHKPb5ZqKcjf++Eo0hMseFTZMLKThrUk61m+Uv6A2YSBve6ZvuDQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + vue-eslint-parser@9.4.3: resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' - vue-tsc@2.0.29: - resolution: {integrity: sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==} - hasBin: true - peerDependencies: - typescript: '>=5.0.0' - vue-tsc@2.2.8: resolution: {integrity: sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==} hasBin: true @@ -16358,9 +16466,6 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -16388,6 +16493,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -16543,7 +16653,7 @@ snapshots: '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.0.0(841ce0d66534d5fe468cf43db50ee74f)': + '@angular/build@20.0.0(1b255dd5e391bfe34df112e839c233f2)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2000.0(chokidar@4.0.3) @@ -16553,7 +16663,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.10(@types/node@22.15.3) - '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) beasties: 0.3.4 browserslist: 4.24.4 esbuild: 0.25.5 @@ -16573,7 +16683,7 @@ snapshots: tinyglobby: 0.2.13 tslib: 2.8.1 typescript: 5.8.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) watchpack: 2.4.2 optionalDependencies: '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) @@ -16582,7 +16692,7 @@ snapshots: lmdb: 3.3.0 postcss: 8.5.3 tailwindcss: 4.0.14 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - chokidar @@ -16793,10 +16903,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))': + '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))': dependencies: '@astrojs/internal-helpers': 0.6.1 - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) send: 1.2.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -16806,11 +16916,11 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)': + '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)': dependencies: solid-js: 1.9.5 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -16826,9 +16936,9 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': + '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': dependencies: - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) autoprefixer: 10.4.21(postcss@8.5.3) postcss: 8.5.3 postcss-load-config: 4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) @@ -16848,14 +16958,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@astrojs/vercel@8.1.3(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) + '@vercel/analytics': 1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3)) '@vercel/edge': 1.2.1 '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.2) '@vercel/routing-utils': 5.0.4 - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) esbuild: 0.25.3 tinyglobby: 0.2.13 transitivePeerDependencies: @@ -16872,7 +16982,7 @@ snapshots: '@astrojs/yaml2ts@0.2.2': dependencies: - yaml: 2.6.1 + yaml: 2.8.0 '@babel/code-frame@7.10.4': dependencies: @@ -17024,7 +17134,7 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.0 + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -18552,13 +18662,13 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/parse@19.5.0': + '@commitlint/parse@19.8.1': dependencies: - '@commitlint/types': 19.5.0 + '@commitlint/types': 19.8.1 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - '@commitlint/types@19.5.0': + '@commitlint/types@19.8.1': dependencies: '@types/conventional-commits-parser': 5.0.0 chalk: 5.3.0 @@ -18760,12 +18870,12 @@ snapshots: '@cspell/url': 8.17.1 import-meta-resolve: 4.1.0 - '@cspell/eslint-plugin@8.17.1(eslint@9.15.0(jiti@2.4.2))': + '@cspell/eslint-plugin@8.17.1(eslint@9.29.0(jiti@2.4.2))': dependencies: '@cspell/cspell-types': 8.17.1 '@cspell/url': 8.17.1 cspell-lib: 8.17.1 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) synckit: 0.9.2 '@cspell/filetypes@8.17.1': {} @@ -18820,6 +18930,12 @@ snapshots: '@emnapi/wasi-threads': 1.0.1 tslib: 2.8.1 + '@emnapi/core@1.4.3': + dependencies: + '@emnapi/wasi-threads': 1.0.2 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.2.0': dependencies: tslib: 2.8.1 @@ -18833,6 +18949,11 @@ snapshots: dependencies: tslib: 2.8.1 + '@emnapi/wasi-threads@1.0.2': + dependencies: + tslib: 2.8.1 + optional: true + '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.25.9 @@ -19296,15 +19417,25 @@ snapshots: eslint: 9.15.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.4.1(eslint@9.29.0(jiti@2.4.2))': + dependencies: + eslint: 9.29.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@2.4.2))': + dependencies: + eslint: 9.29.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/ast@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-react/eff': 1.21.0 - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': 8.18.1 '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) birecord: 0.1.1 string-ts: 2.2.0 ts-pattern: 5.6.0 @@ -19313,18 +19444,18 @@ snapshots: - supports-color - typescript - '@eslint-react/core@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/core@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/jsx': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/jsx': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) birecord: 0.1.1 short-unique-id: 5.2.0 ts-pattern: 5.6.0 @@ -19335,36 +19466,36 @@ snapshots: '@eslint-react/eff@1.21.0': {} - '@eslint-react/eslint-plugin@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/eslint-plugin@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-react/eff': 1.21.0 - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.15.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-dom: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-hooks-extra: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-naming-convention: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-web-api: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-x: 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-react-debug: 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-dom: 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-hooks-extra: 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-naming-convention: 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-web-api: 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-x: 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@eslint-react/jsx@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/jsx@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) birecord: 0.1.1 ts-pattern: 5.6.0 transitivePeerDependencies: @@ -19372,10 +19503,10 @@ snapshots: - supports-color - typescript - '@eslint-react/shared@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/shared@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-react/eff': 1.21.0 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) picomatch: 4.0.2 ts-pattern: 5.6.0 transitivePeerDependencies: @@ -19383,24 +19514,24 @@ snapshots: - supports-color - typescript - '@eslint-react/types@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/types@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-react/eff': 1.21.0 '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/var@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/var@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) ts-pattern: 5.6.0 transitivePeerDependencies: - eslint @@ -19415,6 +19546,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/config-array@0.20.1': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.2.3': {} + + '@eslint/core@0.14.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@0.15.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/core@0.9.0': {} '@eslint/eslintrc@3.2.0': @@ -19431,16 +19580,37 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.1 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + '@eslint/js@9.15.0': {} - '@eslint/js@9.17.0': {} + '@eslint/js@9.29.0': {} '@eslint/object-schema@2.1.4': {} + '@eslint/object-schema@2.1.6': {} + '@eslint/plugin-kit@0.2.3': dependencies: levn: 0.4.1 + '@eslint/plugin-kit@0.3.2': + dependencies: + '@eslint/core': 0.15.0 + levn: 0.4.1 + '@expo/bunyan@4.0.0': dependencies: uuid: 8.3.2 @@ -19697,7 +19867,7 @@ snapshots: '@expo/image-utils': 0.6.3 '@expo/json-file': 9.0.0 '@react-native/normalize-colors': 0.76.3 - debug: 4.4.0 + debug: 4.4.1 fs-extra: 9.1.0 resolve-from: 5.0.0 semver: 7.7.2 @@ -19768,6 +19938,8 @@ snapshots: '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.3': {} + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 @@ -20239,7 +20411,7 @@ snapshots: '@kwsites/file-exists@1.1.1': dependencies: - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -20284,14 +20456,6 @@ snapshots: - encoding - supports-color - '@microsoft/api-extractor-model@7.29.4(@types/node@22.15.3)': - dependencies: - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.5.1(@types/node@22.15.3) - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor-model@7.29.6(@types/node@22.15.3)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -20309,24 +20473,6 @@ snapshots: - '@types/node' optional: true - '@microsoft/api-extractor@7.47.4(@types/node@22.15.3)': - dependencies: - '@microsoft/api-extractor-model': 7.29.4(@types/node@22.15.3) - '@microsoft/tsdoc': 0.15.1 - '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.5.1(@types/node@22.15.3) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.13.3(@types/node@22.15.3) - '@rushstack/ts-command-line': 4.22.3(@types/node@22.15.3) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.10 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - '@microsoft/api-extractor@7.47.7(@types/node@22.15.3)': dependencies: '@microsoft/api-extractor-model': 7.29.6(@types/node@22.15.3) @@ -20568,6 +20714,13 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.0.1 optional: true + '@napi-rs/wasm-runtime@0.2.11': + dependencies: + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 + '@tybys/wasm-util': 0.9.0 + optional: true + '@napi-rs/wasm-runtime@0.2.4': dependencies: '@emnapi/core': 1.2.0 @@ -21299,19 +21452,6 @@ snapshots: '@types/node': 22.15.3 optional: true - '@rushstack/node-core-library@5.5.1(@types/node@22.15.3)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.10 - semver: 7.5.4 - optionalDependencies: - '@types/node': 22.15.3 - '@rushstack/node-core-library@5.7.0(@types/node@22.15.3)': dependencies: ajv: 8.13.0 @@ -21330,13 +21470,6 @@ snapshots: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.13.3(@types/node@22.15.3)': - dependencies: - '@rushstack/node-core-library': 5.5.1(@types/node@22.15.3) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 22.15.3 - '@rushstack/terminal@0.14.0(@types/node@22.15.3)': dependencies: '@rushstack/node-core-library': 5.7.0(@types/node@22.15.3) @@ -21352,15 +21485,6 @@ snapshots: '@types/node': 22.15.3 optional: true - '@rushstack/ts-command-line@4.22.3(@types/node@22.15.3)': - dependencies: - '@rushstack/terminal': 0.13.3(@types/node@22.15.3) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@rushstack/ts-command-line@4.22.6(@types/node@22.15.3)': dependencies: '@rushstack/terminal': 0.14.0(@types/node@22.15.3) @@ -21585,11 +21709,11 @@ snapshots: dependencies: solid-js: 1.9.5 - '@solidjs/start@1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(yaml@2.6.1)': + '@solidjs/start@1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.5)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(yaml@2.8.0)': dependencies: - '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) - '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.11 @@ -21600,8 +21724,8 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.0.5(solid-js@1.9.5) tinyglobby: 0.2.13 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -21629,24 +21753,30 @@ snapshots: '@speed-highlight/core@1.2.7': {} - '@stylistic/eslint-plugin-js@2.11.0(eslint@9.15.0(jiti@2.4.2))': + '@stylistic/eslint-plugin@4.4.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - eslint: 9.15.0(jiti@2.4.2) - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)': dependencies: acorn: 8.14.1 - '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))': + '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))': dependencies: - '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -21659,7 +21789,7 @@ snapshots: set-cookie-parser: 2.7.1 sirv: 3.0.0 svelte: 5.26.1 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) '@sveltejs/package@2.3.10(svelte@5.26.1)(typescript@5.8.3)': dependencies: @@ -21672,47 +21802,47 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) debug: 4.4.0 svelte: 5.26.1 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) debug: 4.4.0 svelte: 5.26.1 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.26.1 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.26.1 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) transitivePeerDependencies: - supports-color @@ -21780,50 +21910,31 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.0.14 '@tailwindcss/oxide-win32-x64-msvc': 4.0.14 - '@tailwindcss/vite@4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@tailwindcss/vite@4.0.14(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: '@tailwindcss/node': 4.0.14 '@tailwindcss/oxide': 4.0.14 lightningcss: 1.29.2 tailwindcss: 4.0.14 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - '@tanstack/config@0.14.2(@types/node@22.15.3)(esbuild@0.25.3)(eslint@9.15.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@tanstack/config@0.19.0(@types/node@22.15.3)(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@commitlint/parse': 19.5.0 - '@eslint/js': 9.17.0 - '@stylistic/eslint-plugin-js': 2.11.0(eslint@9.15.0(jiti@2.4.2)) - commander: 12.1.0 - current-git-branch: 1.1.0 - esbuild-register: 3.6.0(esbuild@0.25.3) - eslint-plugin-import-x: 4.6.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-n: 17.14.0(eslint@9.15.0(jiti@2.4.2)) - globals: 15.14.0 - interpret: 3.1.1 - jsonfile: 6.1.0 - liftoff: 5.0.0 - minimist: 1.2.8 - rollup-plugin-preserve-directives: 0.4.0(rollup@4.40.2) - semver: 7.7.1 - simple-git: 3.27.0 - typedoc: 0.27.5(typescript@5.8.3) - typedoc-plugin-frontmatter: 1.1.2(typedoc-plugin-markdown@4.3.3(typedoc@0.27.5(typescript@5.8.3))) - typedoc-plugin-markdown: 4.3.3(typedoc@0.27.5(typescript@5.8.3)) - typescript-eslint: 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - v8flags: 4.0.1 - vite-plugin-dts: 4.0.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) - vite-plugin-externalize-deps: 0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) - vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@tanstack/eslint-config': 0.2.0(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@tanstack/publish-config': 0.2.0 + '@tanstack/typedoc-config': 0.2.0(typescript@5.8.3) + '@tanstack/vite-config': 0.2.0(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) transitivePeerDependencies: - '@types/node' - - esbuild + - '@typescript-eslint/utils' - eslint + - eslint-import-resolver-node - rollup - supports-color - typescript - vite - '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)': + '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.1 @@ -21836,7 +21947,7 @@ snapshots: babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 - vite: 6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -21852,10 +21963,35 @@ snapshots: - tsx - yaml + '@tanstack/eslint-config@0.2.0(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@eslint/js': 9.29.0 + '@stylistic/eslint-plugin': 4.4.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-import-x: 4.15.2(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)) + eslint-plugin-n: 17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + globals: 16.2.0 + typescript-eslint: 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + vue-eslint-parser: 10.1.3(eslint@9.29.0(jiti@2.4.2)) + transitivePeerDependencies: + - '@typescript-eslint/utils' + - eslint + - eslint-import-resolver-node + - supports-color + - typescript + '@tanstack/match-sorter-utils@8.19.4': dependencies: remove-accents: 0.5.0 + '@tanstack/publish-config@0.2.0': + dependencies: + '@commitlint/parse': 19.8.1 + jsonfile: 6.1.0 + semver: 7.7.2 + simple-git: 3.28.0 + transitivePeerDependencies: + - supports-color + '@tanstack/react-location@3.7.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 @@ -21870,7 +22006,7 @@ snapshots: ansis: 3.17.0 diff: 7.0.0 - '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)': + '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.1 @@ -21879,7 +22015,7 @@ snapshots: '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 - '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 @@ -21898,6 +22034,27 @@ snapshots: - tsx - yaml + '@tanstack/typedoc-config@0.2.0(typescript@5.8.3)': + dependencies: + typedoc: 0.27.9(typescript@5.8.3) + typedoc-plugin-frontmatter: 1.2.1(typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.8.3))) + typedoc-plugin-markdown: 4.4.2(typedoc@0.27.9(typescript@5.8.3)) + transitivePeerDependencies: + - typescript + + '@tanstack/vite-config@0.2.0(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + dependencies: + rollup-plugin-preserve-directives: 0.4.0(rollup@4.40.2) + vite-plugin-dts: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + vite-plugin-externalize-deps: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + - typescript + - vite + '@testing-library/angular@17.3.7(44e06ac0fb247039d3919c909462d711)': dependencies: '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) @@ -21957,13 +22114,13 @@ snapshots: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@testing-library/svelte@5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@testing-library/svelte@5.2.6(svelte@5.26.1)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: '@testing-library/dom': 10.4.0 svelte: 5.26.1 optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) '@tsconfig/node10@1.0.11': optional: true @@ -22027,8 +22184,6 @@ snapshots: dependencies: '@types/ms': 0.7.34 - '@types/doctrine@0.0.9': {} - '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -22158,19 +22313,19 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.18.1 - eslint: 9.15.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.1 + '@typescript-eslint/type-utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.1 + eslint: 9.29.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.3 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.8.3) + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -22187,6 +22342,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.34.1 + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.1 + debug: 4.4.1 + eslint: 9.29.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.34.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.8.3) + '@typescript-eslint/types': 8.34.1 + debug: 4.4.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/rule-tester@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.8.3) @@ -22205,19 +22381,41 @@ snapshots: '@typescript-eslint/types': 8.18.1 '@typescript-eslint/visitor-keys': 8.18.1 - '@typescript-eslint/type-utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.34.1': + dependencies: + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/visitor-keys': 8.34.1 + + '@typescript-eslint/tsconfig-utils@8.34.1(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + + '@typescript-eslint/type-utils@8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.0 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) ts-api-utils: 1.3.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + debug: 4.4.0 + eslint: 9.29.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.18.1': {} + '@typescript-eslint/types@8.34.1': {} + '@typescript-eslint/typescript-estree@8.18.1(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.18.1 @@ -22232,6 +22430,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.34.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/project-service': 8.34.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.8.3) + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/visitor-keys': 8.34.1 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) @@ -22243,13 +22457,99 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.29.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.18.1 + '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.34.1 + '@typescript-eslint/types': 8.34.1 + '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.18.1': dependencies: '@typescript-eslint/types': 8.18.1 eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.34.1': + dependencies: + '@typescript-eslint/types': 8.34.1 + eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.2.0': {} + '@unrs/resolver-binding-android-arm-eabi@1.9.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.9.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.9.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.9.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.9.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.9.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.9.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.11 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.9.1': + optional: true + '@urql/core@5.0.8(graphql@16.9.0)': dependencies: '@0no-co/graphql.web': 1.0.11(graphql@16.9.0) @@ -22262,9 +22562,9 @@ snapshots: '@urql/core': 5.0.8(graphql@16.9.0) wonka: 6.3.4 - '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': + '@vercel/analytics@1.5.0(@sveltejs/kit@2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.26.1)(vue@3.4.35(typescript@5.8.3))': optionalDependencies: - '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@sveltejs/kit': 2.20.5(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.26.1)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) next: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: 19.0.0 svelte: 5.26.1 @@ -22337,7 +22637,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: '@babel/parser': 7.27.1 acorn: 8.14.1 @@ -22348,56 +22648,56 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) acorn: 8.14.1 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.14.1) astring: 1.8.6 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - '@vitejs/plugin-basic-ssl@2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - '@vitejs/plugin-react@4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3))': dependencies: - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vue: 3.4.35(typescript@5.8.3) - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))(vue@3.4.35(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3))': dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) vue: 3.4.35(typescript@5.8.3) - '@vitest/coverage-istanbul@3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vitest/coverage-istanbul@3.1.1(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.0 @@ -22409,17 +22709,17 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.15.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) optionalDependencies: typescript: 5.8.3 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) '@vitest/expect@3.1.3': dependencies: @@ -22428,14 +22728,14 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1))': + '@vitest/mocker@3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.1.3 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.6.6(@types/node@22.15.3)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) '@vitest/pretty-format@3.1.3': dependencies: @@ -22574,19 +22874,6 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/language-core@2.0.29(typescript@5.8.3)': - dependencies: - '@volar/language-core': 2.4.12 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.8.3 - '@vue/language-core@2.1.6(typescript@5.8.3)': dependencies: '@volar/language-core': 2.4.12 @@ -22880,9 +23167,13 @@ snapshots: dependencies: acorn: 8.14.1 + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-loose@8.4.0: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 acorn-typescript@1.4.13(acorn@8.14.1): dependencies: @@ -22890,13 +23181,15 @@ snapshots: acorn-walk@8.3.4: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 optional: true acorn@6.4.2: {} acorn@8.14.1: {} + acorn@8.15.0: {} + agent-base@7.1.3: {} aggregate-error@3.1.0: @@ -23082,14 +23375,10 @@ snapshots: call-bind: 1.0.7 is-array-buffer: 3.0.4 - array-each@1.0.1: {} - array-ify@1.0.0: {} array-iterate@2.0.1: {} - array-slice@1.1.0: {} - array-timsort@1.0.3: {} array-union@2.1.0: {} @@ -23146,7 +23435,7 @@ snapshots: astring@1.8.6: {} - astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1): + astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0): dependencies: '@astrojs/compiler': 2.11.0 '@astrojs/internal-helpers': 0.6.1 @@ -23197,8 +23486,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) vfile: 6.0.3 - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.1 @@ -23324,8 +23613,6 @@ snapshots: schema-utils: 4.3.0 webpack: 5.98.0(esbuild@0.25.3)(webpack-cli@5.1.4) - babel-plugin-add-module-exports@0.2.1: {} - babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.27.1 @@ -24345,12 +24632,6 @@ snapshots: transitivePeerDependencies: - encoding - cross-spawn@5.1.0: - dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 - cross-spawn@6.0.5: dependencies: nice-try: 1.0.5 @@ -24391,7 +24672,7 @@ snapshots: dependencies: '@cspell/cspell-types': 8.17.1 comment-json: 4.2.5 - yaml: 2.6.1 + yaml: 2.8.0 cspell-dictionary@8.17.1: dependencies: @@ -24485,12 +24766,6 @@ snapshots: csstype@3.1.3: {} - current-git-branch@1.1.0: - dependencies: - babel-plugin-add-module-exports: 0.2.1 - execa: 0.6.3 - is-git-repository: 1.1.1 - cyclist@1.0.2: {} data-urls@5.0.0: @@ -24537,6 +24812,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.1: + dependencies: + ms: 2.1.3 + decimal.js@10.4.3: {} decode-named-character-reference@1.0.2: @@ -24629,8 +24908,6 @@ snapshots: destroy@1.2.0: {} - detect-file@1.0.0: {} - detect-libc@1.0.3: {} detect-libc@2.0.3: {} @@ -24668,10 +24945,6 @@ snapshots: dlv@1.1.3: {} - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} dom-accessibility-api@0.6.3: {} @@ -24958,13 +25231,6 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-register@3.6.0(esbuild@0.25.3): - dependencies: - debug: 4.4.0 - esbuild: 0.25.3 - transitivePeerDependencies: - - supports-color - esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 @@ -25115,11 +25381,18 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.15.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.29.0(jiti@2.4.2)): dependencies: - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) semver: 7.7.2 + eslint-import-context@0.1.8(unrs-resolver@1.9.1): + dependencies: + get-tsconfig: 4.10.1 + stable-hash-x: 0.1.1 + optionalDependencies: + unrs-resolver: 1.9.1 + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 @@ -25127,42 +25400,41 @@ snapshots: resolve: 1.22.10 transitivePeerDependencies: - supports-color + optional: true - eslint-plugin-es-x@7.8.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.29.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.15.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.15.0(jiti@2.4.2)) + eslint: 9.29.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.29.0(jiti@2.4.2)) - eslint-plugin-import-x@4.6.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-import-x@4.15.2(@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)): dependencies: - '@types/doctrine': 0.0.9 - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.0 - doctrine: 3.0.0 - enhanced-resolve: 5.18.1 - eslint: 9.15.0(jiti@2.4.2) - eslint-import-resolver-node: 0.3.9 - get-tsconfig: 4.8.1 + '@typescript-eslint/types': 8.34.1 + comment-parser: 1.4.1 + debug: 4.4.1 + eslint: 9.29.0(jiti@2.4.2) + eslint-import-context: 0.1.8(unrs-resolver@1.9.1) is-glob: 4.0.3 - minimatch: 9.0.5 + minimatch: 10.0.1 semver: 7.7.2 - stable-hash: 0.0.4 - tslib: 2.8.1 + stable-hash-x: 0.1.1 + unrs-resolver: 1.9.1 + optionalDependencies: + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - - typescript - eslint-plugin-jsdoc@50.5.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-jsdoc@50.5.0(eslint@9.29.0(jiti@2.4.2)): dependencies: '@es-joy/jsdoccomment': 0.49.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) espree: 10.3.0 esquery: 1.6.0 parse-imports: 2.1.1 @@ -25172,32 +25444,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-n@17.14.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-n@17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) enhanced-resolve: 5.18.1 - eslint: 9.15.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.15.0(jiti@2.4.2)) + eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.29.0(jiti@2.4.2)) get-tsconfig: 4.8.1 globals: 15.14.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.2 + ts-declaration-location: 1.0.7(typescript@5.8.3) + transitivePeerDependencies: + - supports-color + - typescript - eslint-plugin-react-debug@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-debug@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/jsx': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/jsx': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.15.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) string-ts: 2.2.0 ts-pattern: 5.6.0 optionalDependencies: @@ -25205,148 +25482,147 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-dom@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/jsx': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/jsx': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) compare-versions: 6.1.1 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) ts-pattern: 5.6.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-hooks-extra@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/jsx': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/jsx': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.15.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) ts-pattern: 5.6.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@6.0.0-rc.1(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-react-hooks@6.0.0-rc.1(eslint@9.29.0(jiti@2.4.2)): dependencies: '@babel/core': 7.27.1 '@babel/parser': 7.27.1 '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1) - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) hermes-parser: 0.25.1 zod: 3.24.2 zod-validation-error: 3.3.0(zod@3.24.2) transitivePeerDependencies: - supports-color - eslint-plugin-react-naming-convention@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-naming-convention@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/jsx': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/jsx': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.15.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) ts-pattern: 5.6.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-web-api@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-web-api@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/jsx': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/jsx': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) birecord: 0.1.1 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) ts-pattern: 5.6.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-react-x@1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@eslint-react/ast': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@eslint-react/eff': 1.21.0 - '@eslint-react/jsx': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/types': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.21.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/jsx': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/shared': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/types': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/var': 1.21.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) compare-versions: 6.1.1 - eslint: 9.15.0(jiti@2.4.2) - is-immutable-type: 5.0.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) + is-immutable-type: 5.0.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) ts-pattern: 5.6.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-svelte@2.46.0(eslint@9.15.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): + eslint-plugin-svelte@3.9.3(eslint@9.29.0(jiti@2.4.2))(svelte@5.26.1)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.15.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.15.0(jiti@2.4.2)) + eslint: 9.29.0(jiti@2.4.2) esutils: 2.0.3 - known-css-properties: 0.35.0 + globals: 16.2.0 + known-css-properties: 0.37.0 postcss: 8.5.3 postcss-load-config: 3.1.4(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) - postcss-safe-parser: 6.0.0(postcss@8.5.3) - postcss-selector-parser: 6.1.1 - semver: 7.7.1 - svelte-eslint-parser: 0.43.0(svelte@5.26.1) + postcss-safe-parser: 7.0.1(postcss@8.5.3) + semver: 7.7.2 + svelte-eslint-parser: 1.2.0(svelte@5.26.1) optionalDependencies: svelte: 5.26.1 transitivePeerDependencies: - ts-node - eslint-plugin-vue@9.27.0(eslint@9.15.0(jiti@2.4.2)): + eslint-plugin-vue@9.27.0(eslint@9.29.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) - eslint: 9.15.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.29.0(jiti@2.4.2)) + eslint: 9.29.0(jiti@2.4.2) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.1 semver: 7.7.1 - vue-eslint-parser: 9.4.3(eslint@9.15.0(jiti@2.4.2)) + vue-eslint-parser: 9.4.3(eslint@9.29.0(jiti@2.4.2)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -25371,10 +25647,17 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} + eslint@9.15.0(jiti@2.4.2): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.2)) @@ -25416,6 +25699,48 @@ snapshots: transitivePeerDependencies: - supports-color + eslint@9.29.0(jiti@2.4.2): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.20.1 + '@eslint/config-helpers': 0.2.3 + '@eslint/core': 0.14.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.29.0 + '@eslint/plugin-kit': 0.3.2 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 + transitivePeerDependencies: + - supports-color + esm-env@1.2.2: {} espree@10.3.0: @@ -25424,10 +25749,16 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 4.2.0 + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + espree@9.6.1: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -25473,16 +25804,6 @@ snapshots: exec-async@2.2.0: {} - execa@0.6.3: - dependencies: - cross-spawn: 5.1.0 - get-stream: 3.0.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - execa@1.0.0: dependencies: cross-spawn: 6.0.5 @@ -25529,10 +25850,6 @@ snapshots: transitivePeerDependencies: - supports-color - expand-tilde@2.0.2: - dependencies: - homedir-polyfill: 1.0.3 - expect-type@1.2.1: {} expect@29.7.0: @@ -25807,23 +26124,6 @@ snapshots: dependencies: micromatch: 4.0.8 - findup-sync@5.0.0: - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.8 - resolve-dir: 1.0.1 - - fined@2.0.0: - dependencies: - expand-tilde: 2.0.2 - is-plain-object: 5.0.0 - object.defaults: 1.1.0 - object.pick: 1.3.0 - parse-filepath: 1.0.2 - - flagged-respawn@2.0.0: {} - flat-cache@4.0.1: dependencies: flatted: 3.3.1 @@ -25856,10 +26156,6 @@ snapshots: for-in@1.0.2: {} - for-own@1.0.0: - dependencies: - for-in: 1.0.2 - foreground-child@3.2.1: dependencies: cross-spawn: 7.0.6 @@ -25985,8 +26281,6 @@ snapshots: get-port@3.2.0: {} - get-stream@3.0.0: {} - get-stream@4.1.0: dependencies: pump: 3.0.2 @@ -26001,6 +26295,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -26067,20 +26365,6 @@ snapshots: dependencies: ini: 4.1.1 - global-modules@1.0.0: - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - - global-prefix@1.0.2: - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - globals@11.12.0: {} globals@13.24.0: @@ -26091,6 +26375,8 @@ snapshots: globals@15.14.0: {} + globals@16.2.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -26354,10 +26640,6 @@ snapshots: dependencies: react-is: 16.13.1 - homedir-polyfill@1.0.3: - dependencies: - parse-passwd: 1.0.0 - hookable@5.5.3: {} hosted-git-info@2.8.9: {} @@ -26469,7 +26751,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -26603,7 +26885,7 @@ snapshots: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.4.0 + debug: 4.4.1 denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -26624,11 +26906,6 @@ snapshots: iron-webcrypto@1.2.1: {} - is-absolute@1.0.0: - dependencies: - is-relative: 1.0.0 - is-windows: 1.0.2 - is-accessor-descriptor@1.0.1: dependencies: hasown: 2.0.2 @@ -26712,11 +26989,6 @@ snapshots: dependencies: get-east-asian-width: 1.3.0 - is-git-repository@1.1.1: - dependencies: - execa: 0.6.3 - path-is-absolute: 1.0.1 - is-glob@3.1.0: dependencies: is-extglob: 2.1.1 @@ -26726,10 +26998,10 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-immutable-type@5.0.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + is-immutable-type@5.0.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/type-utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.15.0(jiti@2.4.2) + '@typescript-eslint/type-utils': 8.18.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) ts-api-utils: 1.3.0(typescript@5.8.3) ts-declaration-location: 1.0.4(typescript@5.8.3) typescript: 5.8.3 @@ -26776,8 +27048,6 @@ snapshots: dependencies: isobject: 3.0.1 - is-plain-object@5.0.0: {} - is-potential-custom-element-name@1.0.1: {} is-reference@1.2.1: @@ -26793,10 +27063,6 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-relative@1.0.0: - dependencies: - is-unc-path: 1.0.0 - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 @@ -26823,10 +27089,6 @@ snapshots: dependencies: which-typed-array: 1.1.15 - is-unc-path@1.0.0: - dependencies: - unc-path-regex: 0.1.2 - is-unicode-supported@0.1.0: {} is-unicode-supported@1.3.0: {} @@ -27280,7 +27542,7 @@ snapshots: knitwork@1.2.0: {} - known-css-properties@0.35.0: {} + known-css-properties@0.37.0: {} kolorist@1.8.0: {} @@ -27314,16 +27576,6 @@ snapshots: dependencies: immediate: 3.0.6 - liftoff@5.0.0: - dependencies: - extend: 3.0.2 - findup-sync: 5.0.0 - fined: 2.0.0 - flagged-respawn: 2.0.0 - is-plain-object: 5.0.0 - rechoir: 0.8.0 - resolve: 1.22.10 - lighthouse-logger@1.4.2: dependencies: debug: 2.6.9 @@ -27582,11 +27834,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@4.1.5: - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -28226,7 +28473,7 @@ snapshots: micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.1 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -28412,7 +28659,7 @@ snapshots: mlly@1.7.4: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.5.4 @@ -28516,6 +28763,8 @@ snapshots: transitivePeerDependencies: - supports-color + napi-postinstall@0.2.4: {} + natural-compare@1.4.0: {} ncp@2.0.0: @@ -29023,13 +29272,6 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - object.defaults@1.1.0: - dependencies: - array-each: 1.0.1 - array-slice: 1.1.0 - for-own: 1.0.0 - isobject: 3.0.1 - object.getownpropertydescriptors@2.1.8: dependencies: array.prototype.reduce: 1.0.7 @@ -29318,12 +29560,6 @@ snapshots: pbkdf2: 3.1.2 safe-buffer: 5.2.1 - parse-filepath@1.0.2: - dependencies: - is-absolute: 1.0.0 - map-cache: 0.2.2 - path-root: 0.1.1 - parse-imports@2.1.1: dependencies: es-module-lexer: 1.6.0 @@ -29355,8 +29591,6 @@ snapshots: parse-node-version@1.0.1: optional: true - parse-passwd@1.0.0: {} - parse-png@2.1.0: dependencies: pngjs: 3.4.0 @@ -29421,12 +29655,6 @@ snapshots: path-parse@1.0.7: {} - path-root-regex@0.1.2: {} - - path-root@0.1.1: - dependencies: - path-root-regex: 0.1.2 - path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -29542,14 +29770,14 @@ snapshots: postcss: 8.5.3 ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(yaml@2.6.1): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(yaml@2.8.0): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 2.4.2 postcss: 8.5.3 tsx: 4.20.1 - yaml: 2.6.1 + yaml: 2.8.0 postcss-media-query-parser@0.2.3: {} @@ -29558,7 +29786,7 @@ snapshots: postcss: 8.5.3 postcss-selector-parser: 6.1.1 - postcss-safe-parser@6.0.0(postcss@8.5.3): + postcss-safe-parser@7.0.1(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -29571,6 +29799,11 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@7.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-value-parser@4.2.0: {} postcss@8.4.31: @@ -29694,8 +29927,6 @@ snapshots: prr@1.0.1: {} - pseudomap@1.0.2: {} - psl@1.9.0: {} public-encrypt@4.0.3: @@ -30266,11 +30497,6 @@ snapshots: dependencies: resolve-from: 5.0.0 - resolve-dir@1.0.1: - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - resolve-from@3.0.0: {} resolve-from@4.0.0: {} @@ -30816,11 +31042,11 @@ snapshots: transitivePeerDependencies: - supports-color - simple-git@3.27.0: + simple-git@3.28.0: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -30898,7 +31124,7 @@ snapshots: socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -31025,7 +31251,7 @@ snapshots: dependencies: figgy-pudding: 3.5.2 - stable-hash@0.0.4: {} + stable-hash-x@0.1.1: {} stack-utils@2.0.6: dependencies: @@ -31270,13 +31496,14 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-eslint-parser@0.43.0(svelte@5.26.1): + svelte-eslint-parser@1.2.0(svelte@5.26.1): dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 postcss: 8.5.3 postcss-scss: 4.0.9(postcss@8.5.3) + postcss-selector-parser: 7.1.0 optionalDependencies: svelte: 5.26.1 @@ -31428,7 +31655,7 @@ snapshots: terser@4.8.1: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 commander: 2.20.3 source-map: 0.6.1 source-map-support: 0.5.21 @@ -31436,14 +31663,14 @@ snapshots: terser@5.39.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 terser@5.39.1: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.1 + acorn: 8.15.0 commander: 2.20.3 source-map-support: 0.5.21 optional: true @@ -31577,11 +31804,20 @@ snapshots: dependencies: typescript: 5.8.3 + ts-api-utils@2.1.0(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + ts-declaration-location@1.0.4(typescript@5.8.3): dependencies: minimatch: 10.0.1 typescript: 5.8.3 + ts-declaration-location@1.0.7(typescript@5.8.3): + dependencies: + picomatch: 4.0.2 + typescript: 5.8.3 + ts-expose-internals-conditionally@1.0.0-empty.0: {} ts-interface-checker@0.1.13: {} @@ -31594,7 +31830,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 22.15.3 - acorn: 8.14.1 + acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -31619,16 +31855,16 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1)): + tsup-preset-solid@2.2.0(esbuild@0.25.5)(solid-js@1.9.5)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)): dependencies: esbuild-plugin-solid: 0.5.0(esbuild@0.25.5)(solid-js@1.9.5) - tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1) + tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) transitivePeerDependencies: - esbuild - solid-js - supports-color - tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.6.1): + tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0): dependencies: bundle-require: 5.1.0(esbuild@0.25.3) cac: 6.7.14 @@ -31638,7 +31874,7 @@ snapshots: esbuild: 0.25.3 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(yaml@2.6.1) + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.20.1)(yaml@2.8.0) resolve-from: 5.0.0 rollup: 4.40.1 source-map: 0.8.0-beta.0 @@ -31659,7 +31895,7 @@ snapshots: tsx@4.20.1: dependencies: esbuild: 0.25.5 - get-tsconfig: 4.8.1 + get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 optional: true @@ -31669,7 +31905,7 @@ snapshots: tuf-js@3.0.1: dependencies: '@tufjs/models': 3.0.1 - debug: 4.4.0 + debug: 4.4.1 make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -31730,23 +31966,23 @@ snapshots: typedarray@0.0.6: {} - typedoc-plugin-frontmatter@1.1.2(typedoc-plugin-markdown@4.3.3(typedoc@0.27.5(typescript@5.8.3))): + typedoc-plugin-frontmatter@1.2.1(typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.8.3))): dependencies: - typedoc-plugin-markdown: 4.3.3(typedoc@0.27.5(typescript@5.8.3)) - yaml: 2.6.1 + typedoc-plugin-markdown: 4.4.2(typedoc@0.27.9(typescript@5.8.3)) + yaml: 2.8.0 - typedoc-plugin-markdown@4.3.3(typedoc@0.27.5(typescript@5.8.3)): + typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.8.3)): dependencies: - typedoc: 0.27.5(typescript@5.8.3) + typedoc: 0.27.9(typescript@5.8.3) - typedoc@0.27.5(typescript@5.8.3): + typedoc@0.27.9(typescript@5.8.3): dependencies: '@gerrit0/mini-shiki': 1.24.4 lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 typescript: 5.8.3 - yaml: 2.6.1 + yaml: 2.8.0 typesafe-path@0.2.2: {} @@ -31754,12 +31990,12 @@ snapshots: dependencies: semver: 7.7.2 - typescript-eslint@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.18.1(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.15.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.29.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -31799,8 +32035,6 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - unc-path-regex@0.1.2: {} - uncrypto@0.1.3: {} unctx@2.4.1: @@ -31859,7 +32093,7 @@ snapshots: unimport@4.1.3: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 1.1.1 @@ -31970,16 +32204,40 @@ snapshots: unplugin@1.12.0: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 unplugin@2.2.2: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 webpack-virtual-modules: 0.6.2 + unrs-resolver@1.9.1: + dependencies: + napi-postinstall: 0.2.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.9.1 + '@unrs/resolver-binding-android-arm64': 1.9.1 + '@unrs/resolver-binding-darwin-arm64': 1.9.1 + '@unrs/resolver-binding-darwin-x64': 1.9.1 + '@unrs/resolver-binding-freebsd-x64': 1.9.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.9.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.9.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.9.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.9.1 + '@unrs/resolver-binding-linux-x64-musl': 1.9.1 + '@unrs/resolver-binding-wasm32-wasi': 1.9.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.9.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.9.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.9.1 + unset-value@1.0.0: dependencies: has-value: 0.3.1 @@ -32090,8 +32348,6 @@ snapshots: v8-compile-cache-lib@3.0.1: optional: true - v8flags@4.0.1: {} - validate-html-nesting@1.2.2: {} validate-npm-package-license@3.0.4: @@ -32124,7 +32380,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): + vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): dependencies: '@babel/core': 7.26.10 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.26.10) @@ -32158,7 +32414,7 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) zod: 3.24.2 transitivePeerDependencies: - '@azure/app-configuration' @@ -32202,13 +32458,13 @@ snapshots: - xml2js - yaml - vite-node@3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): + vite-node@3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): dependencies: cac: 6.7.14 - debug: 4.4.0 + debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -32223,27 +32479,7 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.0.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): - dependencies: - '@microsoft/api-extractor': 7.47.4(@types/node@22.15.3) - '@rollup/pluginutils': 5.1.4(rollup@4.40.2) - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.0.29(typescript@5.8.3) - compare-versions: 6.1.1 - debug: 4.4.0 - kolorist: 1.8.0 - local-pkg: 0.5.1 - magic-string: 0.30.17 - typescript: 5.8.3 - vue-tsc: 2.0.29(typescript@5.8.3) - optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite-plugin-dts@4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + vite-plugin-dts@4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): dependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.15.3) '@rollup/pluginutils': 5.1.4(rollup@4.40.2) @@ -32256,21 +32492,17 @@ snapshots: magic-string: 0.30.17 typescript: 5.8.3 optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + vite-plugin-externalize-deps@0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vite-plugin-externalize-deps@0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): - dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - - vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -32278,14 +32510,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitefu: 1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.5)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): dependencies: '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 @@ -32293,25 +32525,25 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) transitivePeerDependencies: - supports-color - typescript - vite@6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): + vite@6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): dependencies: esbuild: 0.24.2 postcss: 8.5.3 @@ -32325,9 +32557,9 @@ snapshots: sass: 1.88.0 terser: 5.39.1 tsx: 4.20.1 - yaml: 2.6.1 + yaml: 2.8.0 - vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): + vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): dependencies: esbuild: 0.25.3 fdir: 6.4.4(picomatch@4.0.2) @@ -32344,9 +32576,9 @@ snapshots: sass: 1.88.0 terser: 5.39.1 tsx: 4.20.1 - yaml: 2.6.1 + yaml: 2.8.0 - vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): + vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): dependencies: esbuild: 0.25.4 fdir: 6.4.4(picomatch@4.0.2) @@ -32363,20 +32595,20 @@ snapshots: sass: 1.88.0 terser: 5.39.1 tsx: 4.20.1 - yaml: 2.6.1 + yaml: 2.8.0 - vitefu@1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + vitefu@1.0.6(vite@6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): optionalDependencies: - vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.4(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vitefu@1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)): + vitefu@1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1): + vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): dependencies: '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1)) + '@vitest/mocker': 3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) '@vitest/pretty-format': 3.1.3 '@vitest/runner': 3.1.3 '@vitest/snapshot': 3.1.3 @@ -32393,8 +32625,8 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) - vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -32536,10 +32768,23 @@ snapshots: optionalDependencies: '@vue/composition-api': 1.7.2(vue@3.4.35(typescript@5.8.3)) - vue-eslint-parser@9.4.3(eslint@9.15.0(jiti@2.4.2)): + vue-eslint-parser@10.1.3(eslint@9.29.0(jiti@2.4.2)): + dependencies: + debug: 4.4.1 + eslint: 9.29.0(jiti@2.4.2) + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + vue-eslint-parser@9.4.3(eslint@9.29.0(jiti@2.4.2)): dependencies: debug: 4.4.0 - eslint: 9.15.0(jiti@2.4.2) + eslint: 9.29.0(jiti@2.4.2) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -32549,13 +32794,6 @@ snapshots: transitivePeerDependencies: - supports-color - vue-tsc@2.0.29(typescript@5.8.3): - dependencies: - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.0.29(typescript@5.8.3) - semver: 7.7.2 - typescript: 5.8.3 - vue-tsc@2.2.8(typescript@5.8.3): dependencies: '@volar/typescript': 2.4.12 @@ -32909,8 +33147,6 @@ snapshots: y18n@5.0.8: {} - yallist@2.1.2: {} - yallist@3.1.1: {} yallist@4.0.0: {} @@ -32938,6 +33174,8 @@ snapshots: yaml@2.6.1: {} + yaml@2.8.0: {} + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} From f0741dbc245531da0e7b803bc37aa81a32eaad92 Mon Sep 17 00:00:00 2001 From: Arnoud de Vries <6420061+arnoud-dv@users.noreply.github.com> Date: Wed, 25 Jun 2025 14:12:35 +0200 Subject: [PATCH 173/432] docs(angular-query): fix nullish coalescing warnings in examples --- .../src/app/components/posts.component.html | 56 +++++++++---------- .../app/components/example-query.component.ts | 3 +- .../src/app/components/example.component.html | 4 +- .../src/app/components/post.component.html | 3 +- .../src/app/components/posts.component.html | 40 ++++++------- .../src/app/components/post.component.html | 3 +- 6 files changed, 52 insertions(+), 57 deletions(-) diff --git a/examples/angular/basic-persister/src/app/components/posts.component.html b/examples/angular/basic-persister/src/app/components/posts.component.html index 568a6a4df4..719ee5fc37 100644 --- a/examples/angular/basic-persister/src/app/components/posts.component.html +++ b/examples/angular/basic-persister/src/app/components/posts.component.html @@ -1,35 +1,31 @@

Posts

- @switch (postsQuery.status()) { - @case ('pending') { - Loading... - } - @case ('error') { - Error: {{ postsQuery.error()?.message }} - } - @default { -
- } + @if (postsQuery.isPending()) { + Loading... + } @else if (postsQuery.isError()) { + Error: {{ postsQuery.error().message }} + } @else if (postsQuery.isSuccess()) { +
+ @for (post of postsQuery.data(); track post.id) { +

+ + + {{ post.title }} +

+ } +
}
@if (postsQuery.isFetching()) { diff --git a/examples/angular/devtools-panel/src/app/components/example-query.component.ts b/examples/angular/devtools-panel/src/app/components/example-query.component.ts index 67f638aa7b..1537167a94 100644 --- a/examples/angular/devtools-panel/src/app/components/example-query.component.ts +++ b/examples/angular/devtools-panel/src/app/components/example-query.component.ts @@ -22,7 +22,8 @@ interface Response { @if (query.isError()) {
An error has occurred: {{ query.error().message }}
} - @if (query.data(); as data) { + @if (query.isSuccess()) { + @let data = query.data();

{{ data.name }}

{{ data.description }}

๐Ÿ‘€ {{ data.subscribers_count }} diff --git a/examples/angular/infinite-query-with-max-pages/src/app/components/example.component.html b/examples/angular/infinite-query-with-max-pages/src/app/components/example.component.html index 455e2f5d0f..7afc85afe2 100644 --- a/examples/angular/infinite-query-with-max-pages/src/app/components/example.component.html +++ b/examples/angular/infinite-query-with-max-pages/src/app/components/example.component.html @@ -5,7 +5,7 @@

3 pages max

@if (query.isPending()) {

Loading...

} @else if (query.isError()) { - Error: {{ query.error()?.message }} + Error: {{ query.error().message }} } @else {
- @for (page of query.data()?.pages; track $index) { + @for (page of query.data().pages; track $index) { @for (project of page.data; track project.id) {

{{ project.name }} {{ project.id }}

} diff --git a/examples/angular/query-options-from-a-service/src/app/components/post.component.html b/examples/angular/query-options-from-a-service/src/app/components/post.component.html index 9ca755e387..e1ec2ee297 100644 --- a/examples/angular/query-options-from-a-service/src/app/components/post.component.html +++ b/examples/angular/query-options-from-a-service/src/app/components/post.component.html @@ -7,7 +7,8 @@ } @else if (postQuery.isError()) { Error: {{ postQuery.error().message }} } - @if (postQuery.data(); as post) { + @if (postQuery.isSuccess()) { + @let post = postQuery.data();

{{ post.title }}

{{ post.body }}

diff --git a/examples/angular/query-options-from-a-service/src/app/components/posts.component.html b/examples/angular/query-options-from-a-service/src/app/components/posts.component.html index 06f7252914..f49e018961 100644 --- a/examples/angular/query-options-from-a-service/src/app/components/posts.component.html +++ b/examples/angular/query-options-from-a-service/src/app/components/posts.component.html @@ -1,21 +1,18 @@

Posts

- @switch (postsQuery.status()) { - @case ('pending') { - Loading... - } - @case ('error') { - Error: {{ postsQuery.error()?.message }} - } - @default { -
- @for (post of postsQuery.data(); track post.id) { -

- - - + @for (post of postsQuery.data(); track post.id) { +

+ + + {{ post.title }} -

- } -
- } + >{{ post.title }} +

+ } +
}
@if (postsQuery.isFetching()) { diff --git a/examples/angular/router/src/app/components/post.component.html b/examples/angular/router/src/app/components/post.component.html index 9ca755e387..e1ec2ee297 100644 --- a/examples/angular/router/src/app/components/post.component.html +++ b/examples/angular/router/src/app/components/post.component.html @@ -7,7 +7,8 @@ } @else if (postQuery.isError()) { Error: {{ postQuery.error().message }} } - @if (postQuery.data(); as post) { + @if (postQuery.isSuccess()) { + @let post = postQuery.data();

{{ post.title }}

{{ post.body }}

From 0de3843c4f7582aef823bfda32133233ae803c28 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 25 Jun 2025 12:14:38 +0000 Subject: [PATCH 174/432] ci: apply automated fixes --- .../src/app/components/posts.component.html | 2 +- .../src/app/components/posts.component.html | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/angular/basic-persister/src/app/components/posts.component.html b/examples/angular/basic-persister/src/app/components/posts.component.html index 719ee5fc37..92ba06ad49 100644 --- a/examples/angular/basic-persister/src/app/components/posts.component.html +++ b/examples/angular/basic-persister/src/app/components/posts.component.html @@ -21,7 +21,7 @@

Posts

} : {} " - >{{ post.title }}{{ post.title }}

} diff --git a/examples/angular/query-options-from-a-service/src/app/components/posts.component.html b/examples/angular/query-options-from-a-service/src/app/components/posts.component.html index f49e018961..069263f27e 100644 --- a/examples/angular/query-options-from-a-service/src/app/components/posts.component.html +++ b/examples/angular/query-options-from-a-service/src/app/components/posts.component.html @@ -13,14 +13,14 @@

Posts

{{ post.title }}{{ post.title }}

} From b180d83616c361deadd3ebc5461223d8f96721ca Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Wed, 25 Jun 2025 18:23:18 +0200 Subject: [PATCH 175/432] chore(angular-query): remove obsolete angular platform-browser-dynamic (#9311) --- examples/angular/auto-refetching/package.json | 1 - examples/angular/basic-persister/package.json | 1 - examples/angular/basic/package.json | 1 - examples/angular/devtools-panel/package.json | 1 - .../package.json | 1 - .../angular/optimistic-updates/package.json | 1 - examples/angular/pagination/package.json | 1 - .../query-options-from-a-service/package.json | 1 - examples/angular/router/package.json | 1 - examples/angular/rxjs/package.json | 1 - examples/angular/simple/package.json | 1 - .../package.json | 2 +- .../src/test-setup.ts | 13 ++-- pnpm-lock.yaml | 62 +------------------ 14 files changed, 8 insertions(+), 80 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 043ef43550..754cffa4d8 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 1e2f6b1a3c..1cdf5188d3 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-sync-storage-persister": "^5.81.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 43fd7f4132..8db792f340 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index fbfb9e7a50..fd9c5dc16e 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", "@tanstack/angular-query-devtools-experimental": "^5.81.2", "@tanstack/angular-query-experimental": "^5.81.2", diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index dff22464e1..bae67441e2 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 6a6a67673e..2c16470a04 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,6 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 5db8f32491..199a4c5259 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index bb81501226..0cb4e02b27 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index a945bd9061..07997bd814 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index d520a8f387..c8ae71451f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,6 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index f8d9fca5cd..275851b287 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,6 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index df44fa7e1b..7798fc34e1 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -55,7 +55,7 @@ }, "devDependencies": { "@angular/core": "^20.0.0", - "@angular/platform-browser-dynamic": "^20.0.0", + "@angular/platform-browser": "^20.0.0", "@tanstack/angular-query-experimental": "workspace:*", "eslint-plugin-jsdoc": "^50.5.0", "npm-run-all2": "^5.0.0" diff --git a/packages/angular-query-devtools-experimental/src/test-setup.ts b/packages/angular-query-devtools-experimental/src/test-setup.ts index 30c962a8e6..ef53141bdc 100644 --- a/packages/angular-query-devtools-experimental/src/test-setup.ts +++ b/packages/angular-query-devtools-experimental/src/test-setup.ts @@ -1,10 +1,7 @@ -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing' import { getTestBed } from '@angular/core/testing' +import { + BrowserTestingModule, + platformBrowserTesting, +} from '@angular/platform-browser/testing' -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), -) +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26c72af33d..44d12853c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -164,9 +164,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -207,9 +204,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -250,9 +244,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -299,9 +290,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': specifier: ^20.0.0 version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) @@ -348,9 +336,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -394,9 +379,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -437,9 +419,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -480,9 +459,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': specifier: ^20.0.0 version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) @@ -526,9 +502,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/router': specifier: ^20.0.0 version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) @@ -575,9 +548,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -618,9 +588,6 @@ importers: '@angular/platform-browser': specifier: ^20.0.0 version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: ^20.0.0 - version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -2288,9 +2255,9 @@ importers: '@angular/core': specifier: ^20.0.0 version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser-dynamic': + '@angular/platform-browser': specifier: ^20.0.0 - version: 20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))) + version: 20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../angular-query-experimental @@ -3040,15 +3007,6 @@ packages: '@angular/platform-browser': 20.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser-dynamic@20.0.0': - resolution: {integrity: sha512-AACq3Ijuq59SdLDmfxWU8hYlo8O4Br9OHWNAga2W0X6p/7HlpeZZVdTlb/KGVYRKJvGpgSB10QYlRPfm215q9Q==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@angular/common': 20.0.0 - '@angular/compiler': 20.0.0 - '@angular/core': 20.0.0 - '@angular/platform-browser': 20.0.0 - '@angular/platform-browser@20.0.0': resolution: {integrity: sha512-FP9YjT2beF0tov0wub6+eUQqJd2MwyYqEQQ6+Qx67ukd04plIryhrcImORehrsN24DbnHkyTqhCvUyNAZs2uwA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -16778,22 +16736,6 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser-dynamic@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))': - dependencies: - '@angular/common': 19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/compiler': 20.0.0 - '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - tslib: 2.8.1 - - '@angular/platform-browser-dynamic@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0)(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))': - dependencies: - '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/compiler': 20.0.0 - '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - tslib: 2.8.1 - '@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: '@angular/common': 19.2.4(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) From df564566f06e5ca174e661626e7f49c14c15f58e Mon Sep 17 00:00:00 2001 From: Alex Liu Date: Fri, 27 Jun 2025 07:14:50 +0800 Subject: [PATCH 176/432] type(vue-query): introduce `ShallowOption` to unify `shallow` type and JSDoc (#9277) Co-authored-by: Damian Osipiuk --- packages/vue-query/src/types.ts | 23 +++++++++++----------- packages/vue-query/src/useInfiniteQuery.ts | 6 ++---- packages/vue-query/src/useMutation.ts | 9 ++------- packages/vue-query/src/useQueries.ts | 5 ++--- packages/vue-query/src/useQuery.ts | 8 ++------ 5 files changed, 19 insertions(+), 32 deletions(-) diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts index afabb55ea3..eb793c811e 100644 --- a/packages/vue-query/src/types.ts +++ b/packages/vue-query/src/types.ts @@ -55,19 +55,18 @@ export type DeepUnwrapRef = T extends UnwrapLeaf } : UnwrapRef +export type ShallowOption = { + /** + * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. + */ + shallow?: boolean +} + export interface DefaultOptions { - queries?: OmitKeyof, 'queryKey'> & { - /** - * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. - */ - shallow?: boolean - } - mutations?: MutationObserverOptions & { - /** - * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. - */ - shallow?: boolean - } + queries?: OmitKeyof, 'queryKey'> & + ShallowOption + mutations?: MutationObserverOptions & + ShallowOption hydrate?: HydrateOptions['defaultOptions'] dehydrate?: DehydrateOptions } diff --git a/packages/vue-query/src/useInfiniteQuery.ts b/packages/vue-query/src/useInfiniteQuery.ts index f16eb80dff..c8282ea9c1 100644 --- a/packages/vue-query/src/useInfiniteQuery.ts +++ b/packages/vue-query/src/useInfiniteQuery.ts @@ -20,6 +20,7 @@ import type { MaybeRef, MaybeRefDeep, MaybeRefOrGetter, + ShallowOption, } from './types' import type { QueryClient } from './queryClient' @@ -55,9 +56,7 @@ export type UseInfiniteQueryOptions< TPageParam >[Property] > - } & { - shallow?: boolean - } + } & ShallowOption > export type UseInfiniteQueryReturnType = UseBaseQueryReturnType< @@ -122,7 +121,6 @@ export function useInfiniteQuery( queryClient?: QueryClient, ) { return useBaseQuery( - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion InfiniteQueryObserver as typeof QueryObserver, options, queryClient, diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts index 40b680307b..d507bbc74f 100644 --- a/packages/vue-query/src/useMutation.ts +++ b/packages/vue-query/src/useMutation.ts @@ -21,7 +21,7 @@ import type { MutationObserverOptions, MutationObserverResult, } from '@tanstack/query-core' -import type { MaybeRefDeep } from './types' +import type { MaybeRefDeep, ShallowOption } from './types' import type { QueryClient } from './queryClient' type MutationResult = DistributiveOmit< @@ -30,12 +30,7 @@ type MutationResult = DistributiveOmit< > type UseMutationOptionsBase = - MutationObserverOptions & { - /** - * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. - */ - shallow?: boolean - } + MutationObserverOptions & ShallowOption export type UseMutationOptions< TData = unknown, diff --git a/packages/vue-query/src/useQueries.ts b/packages/vue-query/src/useQueries.ts index 48af3dfa98..4d06be76d7 100644 --- a/packages/vue-query/src/useQueries.ts +++ b/packages/vue-query/src/useQueries.ts @@ -24,7 +24,7 @@ import type { } from '@tanstack/query-core' import type { UseQueryOptions } from './useQuery' import type { QueryClient } from './queryClient' -import type { DeepUnwrapRef, MaybeRefDeep } from './types' +import type { DeepUnwrapRef, MaybeRefDeep, ShallowOption } from './types' // This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`. // `placeholderData` function does not have a parameter @@ -238,7 +238,7 @@ export function useQueries< { queries, ...options - }: { + }: ShallowOption & { queries: | MaybeRefDeep> | MaybeRefDeep< @@ -247,7 +247,6 @@ export function useQueries< ] > combine?: (result: UseQueriesResults) => TCombinedResult - shallow?: boolean }, queryClient?: QueryClient, ): Readonly> { diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index 168eb36095..43c8c20548 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -14,6 +14,7 @@ import type { MaybeRef, MaybeRefDeep, MaybeRefOrGetter, + ShallowOption, } from './types' import type { QueryClient } from './queryClient' @@ -50,12 +51,7 @@ export type UseQueryOptions< DeepUnwrapRef >[Property] > - } & { - /** - * Return data in a shallow ref object (it is `false` by default). It can be set to `true` to return data in a shallow ref object, which can improve performance if your data does not need to be deeply reactive. - */ - shallow?: boolean - } + } & ShallowOption > export type UndefinedInitialQueryOptions< From f052bf2642ca0d3c91fc77ee9dbfac537b2cbf21 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Fri, 27 Jun 2025 11:09:37 +0200 Subject: [PATCH 177/432] fix(docs): Update persistQueryClient.md --- docs/framework/react/plugins/persistQueryClient.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md index 77e9aa5b13..3baec567fb 100644 --- a/docs/framework/react/plugins/persistQueryClient.md +++ b/docs/framework/react/plugins/persistQueryClient.md @@ -248,7 +248,7 @@ Persisted Client entries have the following interface: export interface PersistedClient { timestamp: number buster: string - cacheState: any + clientState: DehydratedState } ``` From 46b5db96ab449815f863d003739687bfc9c9e8cf Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 27 Jun 2025 09:11:33 +0000 Subject: [PATCH 178/432] release: v5.81.3 --- examples/angular/devtools-panel/package.json | 2 +- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 6 +++--- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 2 +- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 22 files changed, 33 insertions(+), 33 deletions(-) diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index fd9c5dc16e..a5eee0c69a 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.81.2", + "@tanstack/angular-query-devtools-experimental": "^5.81.3", "@tanstack/angular-query-experimental": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 266eb630d4..fb2df49884 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index b7a1ffef5b..8a8d9b6213 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -9,9 +9,9 @@ }, "dependencies": { "@tanstack/query-sync-storage-persister": "^5.81.2", - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2", - "@tanstack/svelte-query-persist-client": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3", + "@tanstack/svelte-query-persist-client": "^5.81.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index be0f91327a..cc9643cc24 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index bd291fd9c9..a4ea39c839 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index c45839e28a..ede2032ae2 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 798c949ad4..ca5ae165f1 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 9e5b596ede..4e6c515dd9 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 526b279917..4591ac8979 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.2", - "@tanstack/svelte-query-devtools": "^5.81.2" + "@tanstack/svelte-query": "^5.81.3", + "@tanstack/svelte-query-devtools": "^5.81.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 21584a2714..4951477b2e 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.2", + "@tanstack/vue-query": "^5.81.3", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index afe0bf4ae1..ad44616a87 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.2", + "@tanstack/vue-query": "^5.81.3", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 2cacedaacd..24402c5f7b 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.2", - "@tanstack/vue-query-devtools": "^5.81.2", + "@tanstack/vue-query": "^5.81.3", + "@tanstack/vue-query-devtools": "^5.81.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 914b9e8973..f271512a4b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.2", + "@tanstack/vue-query": "^5.81.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 9e6759cc4e..484719414b 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.81.2" + "@tanstack/vue-query": "^5.81.3" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 57adc17b4b..bc5b4355f6 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -11,7 +11,7 @@ "@tanstack/query-core": "^5.81.2", "@tanstack/query-persist-client-core": "^5.81.2", "@tanstack/query-sync-storage-persister": "^5.81.2", - "@tanstack/vue-query": "^5.81.2", + "@tanstack/vue-query": "^5.81.3", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index aa6e9e9897..e7f7f3370b 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.2", - "@tanstack/vue-query-devtools": "^5.81.2", + "@tanstack/vue-query": "^5.81.3", + "@tanstack/vue-query-devtools": "^5.81.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 7798fc34e1..6109581256 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.81.2", + "version": "5.81.3", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index ec255a402f..baaf390f7f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.81.2", + "version": "5.81.3", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 75e9545f09..18d219c376 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.81.2", + "version": "5.81.3", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 4bb3870ea0..4c3d9da463 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.81.2", + "version": "5.81.3", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 1003838f6e..fb69bff27b 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.81.2", + "version": "5.81.3", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index e8b8ba0872..8c8ab20f03 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.81.2", + "version": "5.81.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 20120ae49343bf1bb63eac10e2be4b45153f7826 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 27 Jun 2025 21:01:44 +0900 Subject: [PATCH 179/432] test(query-core/mutationObserver): add 'advanceTimersByTimeAsync' in all tests (#9312) Co-authored-by: Dominik Dorfmeister --- .../src/__tests__/mutationObserver.test.tsx | 100 ++++++++---------- 1 file changed, 47 insertions(+), 53 deletions(-) diff --git a/packages/query-core/src/__tests__/mutationObserver.test.tsx b/packages/query-core/src/__tests__/mutationObserver.test.tsx index 9ad58ac501..f7e9a8839e 100644 --- a/packages/query-core/src/__tests__/mutationObserver.test.tsx +++ b/packages/query-core/src/__tests__/mutationObserver.test.tsx @@ -31,14 +31,13 @@ describe('mutationObserver', () => { unsubscribe1() - await vi.waitFor(() => { - // 1 call: loading - expect(subscription1Handler).toBeCalledTimes(1) - // 2 calls: loading, success - expect(subscription2Handler).toBeCalledTimes(2) - }) + expect(subscription1Handler).toBeCalledTimes(1) + expect(subscription2Handler).toBeCalledTimes(1) + + await vi.advanceTimersByTimeAsync(20) + expect(subscription1Handler).toBeCalledTimes(1) + expect(subscription2Handler).toBeCalledTimes(2) - // Clean-up unsubscribe2() }) @@ -53,15 +52,14 @@ describe('mutationObserver', () => { const unsubscribe = mutation.subscribe(subscriptionHandler) mutation.mutate('input') - await vi.waitFor(() => - expect(queryClient.getMutationCache().findAll()).toHaveLength(1), - ) + + await vi.advanceTimersByTimeAsync(5) + expect(queryClient.getMutationCache().findAll()).toHaveLength(1) unsubscribe() - await vi.waitFor(() => - expect(queryClient.getMutationCache().findAll()).toHaveLength(0), - ) + await vi.advanceTimersByTimeAsync(10) + expect(queryClient.getMutationCache().findAll()).toHaveLength(0) }) test('reset should remove observer to trigger GC', async () => { @@ -75,15 +73,14 @@ describe('mutationObserver', () => { const unsubscribe = mutation.subscribe(subscriptionHandler) mutation.mutate('input') - await vi.waitFor(() => - expect(queryClient.getMutationCache().findAll()).toHaveLength(1), - ) + + await vi.advanceTimersByTimeAsync(5) + expect(queryClient.getMutationCache().findAll()).toHaveLength(1) mutation.reset() - await vi.waitFor(() => - expect(queryClient.getMutationCache().findAll()).toHaveLength(0), - ) + await vi.advanceTimersByTimeAsync(10) + expect(queryClient.getMutationCache().findAll()).toHaveLength(0) unsubscribe() }) @@ -101,12 +98,11 @@ describe('mutationObserver', () => { mutation.mutate('input') - await vi.waitFor(() => - expect(mutation.getCurrentResult()).toMatchObject({ - status: 'success', - data: 'input', - }), - ) + await vi.advanceTimersByTimeAsync(5) + expect(mutation.getCurrentResult()).toMatchObject({ + status: 'success', + data: 'input', + }) mutation.setOptions({ mutationKey: [...key, '2'], @@ -132,17 +128,16 @@ describe('mutationObserver', () => { mutationObserver.mutate('input') - await vi.waitFor(() => - expect( - queryClient.getMutationCache().find({ mutationKey: [...key, '1'] }), - ).toMatchObject({ - options: { mutationKey: [...key, '1'] }, - state: { - status: 'success', - data: 'input', - }, - }), - ) + await vi.advanceTimersByTimeAsync(5) + expect( + queryClient.getMutationCache().find({ mutationKey: [...key, '1'] }), + ).toMatchObject({ + options: { mutationKey: [...key, '1'] }, + state: { + status: 'success', + data: 'input', + }, + }) mutationObserver.setOptions({ mutationKey: [...key, '2'], @@ -173,15 +168,14 @@ describe('mutationObserver', () => { mutationObserver.mutate('input') - await vi.waitFor(() => - expect(queryClient.getMutationCache().find({})).toMatchObject({ - options: { meta: { a: 1 } }, - state: { - status: 'success', - data: 'input', - }, - }), - ) + await vi.advanceTimersByTimeAsync(5) + expect(queryClient.getMutationCache().find({})).toMatchObject({ + options: { meta: { a: 1 } }, + state: { + status: 'success', + data: 'input', + }, + }) mutationObserver.setOptions({ meta: { a: 2 }, @@ -251,14 +245,14 @@ describe('mutationObserver', () => { const unsubscribe = mutationObserver.subscribe(subscriptionHandler) mutationObserver.mutate('input').catch(() => undefined) - await vi.waitFor(() => - expect(queryClient.getMutationCache().find({})).toMatchObject({ - options: { meta: { a: 1 } }, - state: { - status: 'error', - }, - }), - ) + + await vi.advanceTimersByTimeAsync(5) + expect(queryClient.getMutationCache().find({})).toMatchObject({ + options: { meta: { a: 1 } }, + state: { + status: 'error', + }, + }) mutationObserver.setOptions({ meta: { a: 2 }, From 1078bce264149ddc98c9762124fe42cac90afca2 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Fri, 27 Jun 2025 15:52:38 +0200 Subject: [PATCH 180/432] refactor: deprecate createSyncStoragePersister (#9316) --- .../plugins/createAsyncStoragePersister.md | 12 ++++++----- .../plugins/createSyncStoragePersister.md | 5 +++++ .../react/plugins/persistQueryClient.md | 4 ++-- docs/framework/vue/guides/mutations.md | 2 +- examples/angular/basic-persister/package.json | 2 +- .../basic-persister/src/app/app.config.ts | 4 ++-- examples/react/basic/package.json | 2 +- examples/react/basic/src/index.tsx | 4 ++-- examples/react/eslint-legacy/package.json | 2 +- examples/react/eslint-legacy/src/index.tsx | 4 ++-- examples/react/offline/package.json | 2 +- examples/react/offline/src/App.tsx | 4 ++-- examples/svelte/basic/package.json | 2 +- .../svelte/basic/src/routes/+layout.svelte | 4 ++-- .../src/with-persist-query-client.ts | 2 +- .../query-sync-storage-persister/src/index.ts | 3 +++ pnpm-lock.yaml | 20 +++++++++---------- 17 files changed, 44 insertions(+), 34 deletions(-) diff --git a/docs/framework/react/plugins/createAsyncStoragePersister.md b/docs/framework/react/plugins/createAsyncStoragePersister.md index 4ce789cd65..0b7348493a 100644 --- a/docs/framework/react/plugins/createAsyncStoragePersister.md +++ b/docs/framework/react/plugins/createAsyncStoragePersister.md @@ -33,7 +33,8 @@ bun add @tanstack/query-async-storage-persister @tanstack/react-query-persist-cl - Import the `createAsyncStoragePersister` function - Create a new asyncStoragePersister - - you can pass any `storage` to it that adheres to the `AsyncStorage` interface - the example below uses the async-storage from React Native + - you can pass any `storage` to it that adheres to the `AsyncStorage` interface - the example below uses the async-storage from React Native. + - storages that read and write synchronously, like `window.localstorage`, also adhere to the `AsyncStorage` interface and can therefore also be used with `createAsyncStoragePersister`. - Wrap your app by using [`PersistQueryClientProvider`](../persistQueryClient.md#persistqueryclientprovider) component. ```tsx @@ -99,10 +100,11 @@ interface CreateAsyncStoragePersisterOptions { retry?: AsyncPersistRetryer } -interface AsyncStorage { - getItem: (key: string) => Promise - setItem: (key: string, value: string) => Promise - removeItem: (key: string) => Promise +interface AsyncStorage { + getItem: (key: string) => MaybePromise + setItem: (key: string, value: TStorageValue) => MaybePromise + removeItem: (key: string) => MaybePromise + entries?: () => MaybePromise> } ``` diff --git a/docs/framework/react/plugins/createSyncStoragePersister.md b/docs/framework/react/plugins/createSyncStoragePersister.md index f1f69ccce5..0c340bdd50 100644 --- a/docs/framework/react/plugins/createSyncStoragePersister.md +++ b/docs/framework/react/plugins/createSyncStoragePersister.md @@ -3,6 +3,11 @@ id: createSyncStoragePersister title: createSyncStoragePersister --- +## Deprecated + +This plugin is deprecated and will be removed in the next major version. +You can simply use ['@tanstack/query-async-storage-persister'](../createAsyncStoragePersister.md) instead. + ## Installation This utility comes as a separate package and is available under the `'@tanstack/query-sync-storage-persister'` import. diff --git a/docs/framework/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md index 3baec567fb..c93c99a532 100644 --- a/docs/framework/react/plugins/persistQueryClient.md +++ b/docs/framework/react/plugins/persistQueryClient.md @@ -184,7 +184,7 @@ For this use-case, you can use the `PersistQueryClientProvider`. It will make su ```tsx import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client' -import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' +import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister' const queryClient = new QueryClient({ defaultOptions: { @@ -194,7 +194,7 @@ const queryClient = new QueryClient({ }, }) -const persister = createSyncStoragePersister({ +const persister = createAsyncStoragePersister({ storage: window.localStorage, }) diff --git a/docs/framework/vue/guides/mutations.md b/docs/framework/vue/guides/mutations.md index 944da809c9..6ff0e00fc9 100644 --- a/docs/framework/vue/guides/mutations.md +++ b/docs/framework/vue/guides/mutations.md @@ -81,7 +81,7 @@ const vueQueryOptions: VueQueryPluginOptions = { clientPersister: (queryClient) => { return persistQueryClient({ queryClient, - persister: createSyncStoragePersister({ storage: localStorage }), + persister: createAsyncStoragePersister({ storage: localStorage }), }) }, clientPersisterOnSuccess: (queryClient) => { diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 1cdf5188d3..104ddb24ba 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -15,7 +15,7 @@ "@angular/platform-browser": "^20.0.0", "@tanstack/angular-query-experimental": "^5.81.2", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/src/app/app.config.ts b/examples/angular/basic-persister/src/app/app.config.ts index d449e21582..6be44df767 100644 --- a/examples/angular/basic-persister/src/app/app.config.ts +++ b/examples/angular/basic-persister/src/app/app.config.ts @@ -5,10 +5,10 @@ import { withDevtools, } from '@tanstack/angular-query-experimental' import { withPersistQueryClient } from '@tanstack/angular-query-persist-client' -import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' +import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister' import type { ApplicationConfig } from '@angular/core' -const localStoragePersister = createSyncStoragePersister({ +const localStoragePersister = createAsyncStoragePersister({ storage: window.localStorage, }) diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 3c1f167d30..cb9803e9c2 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,7 +9,7 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.2", "@tanstack/react-query": "^5.81.2", "@tanstack/react-query-devtools": "^5.81.2", "@tanstack/react-query-persist-client": "^5.81.2", diff --git a/examples/react/basic/src/index.tsx b/examples/react/basic/src/index.tsx index 052ce4c797..59a186be1b 100644 --- a/examples/react/basic/src/index.tsx +++ b/examples/react/basic/src/index.tsx @@ -2,7 +2,7 @@ import * as React from 'react' import ReactDOM from 'react-dom/client' import { QueryClient, useQuery, useQueryClient } from '@tanstack/react-query' import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client' -import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' +import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister' import { ReactQueryDevtools } from '@tanstack/react-query-devtools' const queryClient = new QueryClient({ @@ -13,7 +13,7 @@ const queryClient = new QueryClient({ }, }) -const persister = createSyncStoragePersister({ +const persister = createAsyncStoragePersister({ storage: window.localStorage, }) diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index cd6cdfb5fb..ccc55d7717 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,7 +9,7 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.2", "@tanstack/react-query": "^5.81.2", "@tanstack/react-query-devtools": "^5.81.2", "@tanstack/react-query-persist-client": "^5.81.2", diff --git a/examples/react/eslint-legacy/src/index.tsx b/examples/react/eslint-legacy/src/index.tsx index 052ce4c797..59a186be1b 100644 --- a/examples/react/eslint-legacy/src/index.tsx +++ b/examples/react/eslint-legacy/src/index.tsx @@ -2,7 +2,7 @@ import * as React from 'react' import ReactDOM from 'react-dom/client' import { QueryClient, useQuery, useQueryClient } from '@tanstack/react-query' import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client' -import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' +import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister' import { ReactQueryDevtools } from '@tanstack/react-query-devtools' const queryClient = new QueryClient({ @@ -13,7 +13,7 @@ const queryClient = new QueryClient({ }, }) -const persister = createSyncStoragePersister({ +const persister = createAsyncStoragePersister({ storage: window.localStorage, }) diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 021d127aa6..5360bab79a 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.2", "@tanstack/react-location": "^3.7.4", "@tanstack/react-query": "^5.81.2", "@tanstack/react-query-devtools": "^5.81.2", diff --git a/examples/react/offline/src/App.tsx b/examples/react/offline/src/App.tsx index fdb8e1908a..7172575443 100644 --- a/examples/react/offline/src/App.tsx +++ b/examples/react/offline/src/App.tsx @@ -9,7 +9,7 @@ import { import { ReactQueryDevtools } from '@tanstack/react-query-devtools' import { Toaster, toast } from 'react-hot-toast' import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client' -import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' +import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister' import { Link, Outlet, @@ -21,7 +21,7 @@ import { import * as api from './api' import { movieKeys, useMovie } from './movies' -const persister = createSyncStoragePersister({ +const persister = createAsyncStoragePersister({ storage: window.localStorage, }) diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 8a8d9b6213..bb0851f31a 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-sync-storage-persister": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.2", "@tanstack/svelte-query": "^5.81.3", "@tanstack/svelte-query-devtools": "^5.81.3", "@tanstack/svelte-query-persist-client": "^5.81.3" diff --git a/examples/svelte/basic/src/routes/+layout.svelte b/examples/svelte/basic/src/routes/+layout.svelte index da5d841b0b..bfcc02cc1f 100644 --- a/examples/svelte/basic/src/routes/+layout.svelte +++ b/examples/svelte/basic/src/routes/+layout.svelte @@ -4,7 +4,7 @@ import { QueryClient } from '@tanstack/svelte-query' import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools' import { PersistQueryClientProvider } from '@tanstack/svelte-query-persist-client' - import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister' + import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister' const queryClient = new QueryClient({ defaultOptions: { @@ -14,7 +14,7 @@ }, }) - const persister = createSyncStoragePersister({ + const persister = createAsyncStoragePersister({ storage: browser ? window.localStorage : null, }) diff --git a/packages/angular-query-persist-client/src/with-persist-query-client.ts b/packages/angular-query-persist-client/src/with-persist-query-client.ts index ceeeed01cd..43f562450a 100644 --- a/packages/angular-query-persist-client/src/with-persist-query-client.ts +++ b/packages/angular-query-persist-client/src/with-persist-query-client.ts @@ -30,7 +30,7 @@ type PersistQueryClientOptions = { * **Example** * * ```ts - * const localStoragePersister = createSyncStoragePersister({ + * const localStoragePersister = createAsyncStoragePersister({ * storage: window.localStorage, * }) * diff --git a/packages/query-sync-storage-persister/src/index.ts b/packages/query-sync-storage-persister/src/index.ts index bd58ca2627..ee25ca7376 100644 --- a/packages/query-sync-storage-persister/src/index.ts +++ b/packages/query-sync-storage-persister/src/index.ts @@ -36,6 +36,9 @@ interface CreateSyncStoragePersisterOptions { retry?: PersistRetryer } +/** + * @deprecated use `createAsyncStoragePersister` from `@tanstack/query-async-storage-persister` instead. + */ export function createSyncStoragePersister({ storage, key = `REACT_QUERY_OFFLINE_CACHE`, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44d12853c2..b99438e2ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -250,9 +250,9 @@ importers: '@tanstack/angular-query-persist-client': specifier: ^5.62.7 version: link:../../../packages/angular-query-persist-client - '@tanstack/query-sync-storage-persister': + '@tanstack/query-async-storage-persister': specifier: workspace:* - version: link:../../../packages/query-sync-storage-persister + version: link:../../../packages/query-async-storage-persister rxjs: specifier: ^7.8.2 version: 7.8.2 @@ -681,9 +681,9 @@ importers: examples/react/basic: dependencies: - '@tanstack/query-sync-storage-persister': + '@tanstack/query-async-storage-persister': specifier: workspace:* - version: link:../../../packages/query-sync-storage-persister + version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -830,9 +830,9 @@ importers: examples/react/eslint-legacy: dependencies: - '@tanstack/query-sync-storage-persister': + '@tanstack/query-async-storage-persister': specifier: workspace:* - version: link:../../../packages/query-sync-storage-persister + version: link:../../../packages/query-async-storage-persister '@tanstack/react-query': specifier: workspace:* version: link:../../../packages/react-query @@ -1013,9 +1013,9 @@ importers: examples/react/offline: dependencies: - '@tanstack/query-sync-storage-persister': + '@tanstack/query-async-storage-persister': specifier: workspace:* - version: link:../../../packages/query-sync-storage-persister + version: link:../../../packages/query-async-storage-persister '@tanstack/react-location': specifier: ^3.7.4 version: 3.7.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -1664,9 +1664,9 @@ importers: examples/svelte/basic: dependencies: - '@tanstack/query-sync-storage-persister': + '@tanstack/query-async-storage-persister': specifier: workspace:* - version: link:../../../packages/query-sync-storage-persister + version: link:../../../packages/query-async-storage-persister '@tanstack/svelte-query': specifier: workspace:* version: link:../../../packages/svelte-query From 917ac88c9c64acb97fbc0d4acd9b2886ca87329c Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 27 Jun 2025 13:54:19 +0000 Subject: [PATCH 181/432] release: v5.81.4 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 754cffa4d8..0164d526c7 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 104ddb24ba..ca2ba6ee2f 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 8db792f340..35cb7c096b 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index a5eee0c69a..8cdac27d57 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.81.3", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-devtools-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index bae67441e2..06165a99be 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 2c16470a04..7bb84d33cb 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 199a4c5259..89c71d7c9e 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 0cb4e02b27..ed04ff3014 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 07997bd814..d3b039a484 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index c8ae71451f..0b24916cf0 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 275851b287..dcad07cf76 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.2", + "@tanstack/angular-query-experimental": "^5.81.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 8ac7a10c36..b9aca81d1c 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index aef151b326..6d5d19c713 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index e1365fb4be..2bcbdd85aa 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index cb9803e9c2..59542fa844 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.2", - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", - "@tanstack/react-query-persist-client": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.4", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query-persist-client": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index ce9d0b1b42..76636cc794 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index f6dd36c309..9cdfaa7305 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 3ba9cc8fd9..0dae0d4bc8 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index ccc55d7717..2bb22180e7 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.2", - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", - "@tanstack/react-query-persist-client": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.4", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query-persist-client": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 33a9c085c2..0913d98cc8 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 32266e5849..e6852063e2 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 1576648214..a660123721 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index a8f143a89c..30d6186535 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", - "@tanstack/react-query-next-experimental": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query-next-experimental": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 77f6ea4596..1d25cb459d 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 5360bab79a..d5c491e5fc 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.2", + "@tanstack/query-async-storage-persister": "^5.81.4", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", - "@tanstack/react-query-persist-client": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query-persist-client": "^5.81.4", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 367ede80ae..7ed2fa7bf1 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index fee33b345d..71ef85ae9e 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 84a21f3e18..34c91106da 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index f1c6bc56d1..c95e7e8d7c 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 5c66600dcd..61ca848809 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 46c48d449c..e0bcabceef 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 00d93fbde1..04a63fe193 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 6663790f41..9cc06a9625 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 3ab701d181..eb5d0adce6 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index e6458e70a2..9406929068 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 354aa6d475..ba1ab184a8 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index bfb78fb163..7fe5ee8edc 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.2", - "@tanstack/react-query-devtools": "^5.81.2", + "@tanstack/react-query": "^5.81.4", + "@tanstack/react-query-devtools": "^5.81.4", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index ec0f97e7f2..f88b84a857 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.81.2", - "@tanstack/solid-query-devtools": "^5.81.2", + "@tanstack/solid-query": "^5.81.4", + "@tanstack/solid-query-devtools": "^5.81.4", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 1d5034cf0d..4a2e1e88cf 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.2", - "@tanstack/solid-query-devtools": "^5.81.2", + "@tanstack/solid-query": "^5.81.4", + "@tanstack/solid-query-devtools": "^5.81.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 0e5fdef017..4e07b95b4e 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.2", - "@tanstack/solid-query-devtools": "^5.81.2", + "@tanstack/solid-query": "^5.81.4", + "@tanstack/solid-query-devtools": "^5.81.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 1619033f69..160513660a 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.2", - "@tanstack/solid-query-devtools": "^5.81.2", + "@tanstack/solid-query": "^5.81.4", + "@tanstack/solid-query-devtools": "^5.81.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 7a3343649e..ab7af6331c 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.2", - "@tanstack/solid-query-devtools": "^5.81.2", + "@tanstack/solid-query": "^5.81.4", + "@tanstack/solid-query-devtools": "^5.81.4", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index d18e56f223..f1c9083187 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.81.2", - "@tanstack/solid-query-devtools": "^5.81.2", + "@tanstack/solid-query": "^5.81.4", + "@tanstack/solid-query-devtools": "^5.81.4", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index fb2df49884..63112bdaa2 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3" + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index bb0851f31a..57afbea8f3 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.2", - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3", - "@tanstack/svelte-query-persist-client": "^5.81.3" + "@tanstack/query-async-storage-persister": "^5.81.4", + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4", + "@tanstack/svelte-query-persist-client": "^5.81.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index cc9643cc24..efed0a4d6b 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3" + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index a4ea39c839..5e019338c5 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3" + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index ede2032ae2..28d580e56e 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3" + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index ca5ae165f1..b66777ecf1 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3" + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 4e6c515dd9..ad7e004813 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3" + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 4591ac8979..4520666d41 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.3", - "@tanstack/svelte-query-devtools": "^5.81.3" + "@tanstack/svelte-query": "^5.81.4", + "@tanstack/svelte-query-devtools": "^5.81.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 4951477b2e..da7f655718 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.3", + "@tanstack/vue-query": "^5.81.4", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index ad44616a87..db7df35a51 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.3", + "@tanstack/vue-query": "^5.81.4", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 24402c5f7b..722fc5f252 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.3", - "@tanstack/vue-query-devtools": "^5.81.3", + "@tanstack/vue-query": "^5.81.4", + "@tanstack/vue-query-devtools": "^5.81.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index f271512a4b..8a1e431c03 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.3", + "@tanstack/vue-query": "^5.81.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 484719414b..7c86c7d035 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.81.3" + "@tanstack/vue-query": "^5.81.4" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index bc5b4355f6..e1660457b3 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.81.2", - "@tanstack/query-persist-client-core": "^5.81.2", - "@tanstack/query-sync-storage-persister": "^5.81.2", - "@tanstack/vue-query": "^5.81.3", + "@tanstack/query-core": "^5.81.4", + "@tanstack/query-persist-client-core": "^5.81.4", + "@tanstack/query-sync-storage-persister": "^5.81.4", + "@tanstack/vue-query": "^5.81.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index e7f7f3370b..286ab46a3e 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.3", - "@tanstack/vue-query-devtools": "^5.81.3", + "@tanstack/vue-query": "^5.81.4", + "@tanstack/vue-query-devtools": "^5.81.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 6109581256..aee9c6cc0c 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.81.3", + "version": "5.81.4", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 9d3487982c..fd90fb29f0 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.81.2", + "version": "5.81.4", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 96e840e768..85941a5399 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.81.2", + "version": "5.81.4", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index bd497b10c8..89dec1834f 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.81.2", + "version": "5.81.4", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 0a588ee9ac..b04ef5be88 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.81.2", + "version": "5.81.4", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 109de7c44e..024f64079f 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.81.2", + "version": "5.81.4", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 39bb609dd3..1d8f96cb96 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.81.2", + "version": "5.81.4", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 6645720c09..c5bff0a399 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.81.2", + "version": "5.81.4", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 724791b049..d5c38ffcaa 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.81.2", + "version": "5.81.4", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3fc6c791f8..3647874285 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.81.2", + "version": "5.81.4", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index a1a60be83c..c733d252df 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.81.2", + "version": "5.81.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index ad85c3bc4a..2eca79ef24 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.81.2", + "version": "5.81.4", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 15eebb01a4..2446189730 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.81.2", + "version": "5.81.4", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index ecdc3cfec9..555ab1722c 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.81.2", + "version": "5.81.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index baaf390f7f..acb6c8666d 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.81.3", + "version": "5.81.4", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 18d219c376..add32f5322 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.81.3", + "version": "5.81.4", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 4c3d9da463..2adbe63903 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.81.3", + "version": "5.81.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index fb69bff27b..fd9ad00bfd 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.81.3", + "version": "5.81.4", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 8c8ab20f03..ea638603e0 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.81.3", + "version": "5.81.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From b5a909528a5a15c9f45c76477a4d1f405d47e1aa Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 28 Jun 2025 00:00:00 +0900 Subject: [PATCH 182/432] test(query-core/focusManager): use 'advanceTimersByTime' for boolean focused arg test (#9317) --- packages/query-core/src/__tests__/focusManager.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/query-core/src/__tests__/focusManager.test.tsx b/packages/query-core/src/__tests__/focusManager.test.tsx index d33e8be1e3..87d8d42007 100644 --- a/packages/query-core/src/__tests__/focusManager.test.tsx +++ b/packages/query-core/src/__tests__/focusManager.test.tsx @@ -25,7 +25,7 @@ describe('focusManager', () => { expect(remove2Spy).not.toHaveBeenCalled() }) - it('should use focused boolean arg', async () => { + it('should use focused boolean arg', () => { let count = 0 const setup = (setFocused: (focused?: boolean) => void) => { @@ -38,7 +38,7 @@ describe('focusManager', () => { focusManager.setEventListener(setup) - await vi.advanceTimersByTimeAsync(20) + vi.advanceTimersByTime(20) expect(count).toEqual(1) expect(focusManager.isFocused()).toBeTruthy() }) From 9813a3995c143ee9997bf50641f4f6a5a131df53 Mon Sep 17 00:00:00 2001 From: Tmk Date: Sat, 28 Jun 2025 02:58:51 +0800 Subject: [PATCH 183/432] fix(react-query): throw type error when skipToken is present in prefetch query (#9321) --- .../src/__tests__/usePrefetchQuery.test-d.tsx | 19 ++++++++++++++++++- packages/react-query/src/types.ts | 16 ++++++++++++++++ packages/react-query/src/usePrefetchQuery.tsx | 10 +++------- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx index e7d9db5007..09dbaf18c1 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test-d.tsx @@ -1,5 +1,5 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' -import { usePrefetchQuery } from '..' +import { skipToken, usePrefetchQuery } from '..' describe('usePrefetchQuery', () => { it('should return nothing', () => { @@ -39,4 +39,21 @@ describe('usePrefetchQuery', () => { }), ) }) + + it('should not allow skipToken in queryFn', () => { + assertType( + usePrefetchQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: skipToken, + }), + ) + assertType( + usePrefetchQuery({ + queryKey: ['key'], + // @ts-expect-error + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }), + ) + }) }) diff --git a/packages/react-query/src/types.ts b/packages/react-query/src/types.ts index 3b295e8947..08c5e840ca 100644 --- a/packages/react-query/src/types.ts +++ b/packages/react-query/src/types.ts @@ -5,6 +5,7 @@ import type { DefinedInfiniteQueryObserverResult, DefinedQueryObserverResult, DistributiveOmit, + FetchQueryOptions, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, MutateFunction, @@ -45,6 +46,21 @@ export interface UseBaseQueryOptions< subscribed?: boolean } +export interface UsePrefetchQueryOptions< + TQueryFnData = unknown, + TError = DefaultError, + TData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey, +> extends OmitKeyof< + FetchQueryOptions, + 'queryFn' + > { + queryFn?: Exclude< + FetchQueryOptions['queryFn'], + SkipToken + > +} + export type AnyUseQueryOptions = UseQueryOptions export interface UseQueryOptions< TQueryFnData = unknown, diff --git a/packages/react-query/src/usePrefetchQuery.tsx b/packages/react-query/src/usePrefetchQuery.tsx index 54c4cc6499..3f508c3324 100644 --- a/packages/react-query/src/usePrefetchQuery.tsx +++ b/packages/react-query/src/usePrefetchQuery.tsx @@ -1,10 +1,6 @@ import { useQueryClient } from './QueryClientProvider' -import type { - DefaultError, - FetchQueryOptions, - QueryClient, - QueryKey, -} from '@tanstack/query-core' +import type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core' +import type { UsePrefetchQueryOptions } from './types' export function usePrefetchQuery< TQueryFnData = unknown, @@ -12,7 +8,7 @@ export function usePrefetchQuery< TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, >( - options: FetchQueryOptions, + options: UsePrefetchQueryOptions, queryClient?: QueryClient, ) { const client = useQueryClient(queryClient) From 5dd11a3c88ddd06bacc17082e5afdec56a2fe95f Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 27 Jun 2025 19:02:53 +0000 Subject: [PATCH 184/432] release: v5.81.5 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 0164d526c7..e34ed42c23 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index ca2ba6ee2f..0cddfbab63 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.81.4", + "@tanstack/query-async-storage-persister": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 35cb7c096b..8cf2efe96b 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 8cdac27d57..821464125d 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.81.4", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-devtools-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 06165a99be..b02162e8c9 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 7bb84d33cb..878f2f87bf 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 89c71d7c9e..552f83cab0 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index ed04ff3014..d37c993149 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index d3b039a484..022dc37411 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 0b24916cf0..e4b999be9e 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index dcad07cf76..1a36c1999f 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.4", + "@tanstack/angular-query-experimental": "^5.81.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index b9aca81d1c..7efc8b3aef 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 6d5d19c713..1a1cf5036c 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 2bcbdd85aa..f4232e317d 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 59542fa844..471abd063e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.4", - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", - "@tanstack/react-query-persist-client": "^5.81.4", + "@tanstack/query-async-storage-persister": "^5.81.5", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query-persist-client": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 76636cc794..31c87599cf 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 9cdfaa7305..20e2ffc805 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 0dae0d4bc8..2173ba9f42 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 2bb22180e7..9643eaa257 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.4", - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", - "@tanstack/react-query-persist-client": "^5.81.4", + "@tanstack/query-async-storage-persister": "^5.81.5", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query-persist-client": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 0913d98cc8..51188d0995 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index e6852063e2..948c0e2dae 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index a660123721..41c98cf8b5 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 30d6186535..4430581ba0 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", - "@tanstack/react-query-next-experimental": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query-next-experimental": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 1d25cb459d..f4b0a33c87 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index d5c491e5fc..7906cfd992 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.4", + "@tanstack/query-async-storage-persister": "^5.81.5", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", - "@tanstack/react-query-persist-client": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query-persist-client": "^5.81.5", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 7ed2fa7bf1..0953f8de78 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 71ef85ae9e..62847ae7a5 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 34c91106da..60b7c6b086 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index c95e7e8d7c..4eb93788af 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 61ca848809..67ac7b97f1 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index e0bcabceef..457c4b1d1e 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 04a63fe193..f6af62935e 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 9cc06a9625..5adce13749 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index eb5d0adce6..c70c6f507d 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 9406929068..8fb887bab1 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index ba1ab184a8..e276a421a1 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 7fe5ee8edc..dd5975c3a1 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.4", - "@tanstack/react-query-devtools": "^5.81.4", + "@tanstack/react-query": "^5.81.5", + "@tanstack/react-query-devtools": "^5.81.5", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index f88b84a857..b6031773e1 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.81.4", - "@tanstack/solid-query-devtools": "^5.81.4", + "@tanstack/solid-query": "^5.81.5", + "@tanstack/solid-query-devtools": "^5.81.5", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 4a2e1e88cf..7014a896c7 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.4", - "@tanstack/solid-query-devtools": "^5.81.4", + "@tanstack/solid-query": "^5.81.5", + "@tanstack/solid-query-devtools": "^5.81.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 4e07b95b4e..fe25cd616a 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.4", - "@tanstack/solid-query-devtools": "^5.81.4", + "@tanstack/solid-query": "^5.81.5", + "@tanstack/solid-query-devtools": "^5.81.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 160513660a..26705c7d0b 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.4", - "@tanstack/solid-query-devtools": "^5.81.4", + "@tanstack/solid-query": "^5.81.5", + "@tanstack/solid-query-devtools": "^5.81.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index ab7af6331c..e817926457 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.4", - "@tanstack/solid-query-devtools": "^5.81.4", + "@tanstack/solid-query": "^5.81.5", + "@tanstack/solid-query-devtools": "^5.81.5", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index f1c9083187..4bd8e3974f 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.81.4", - "@tanstack/solid-query-devtools": "^5.81.4", + "@tanstack/solid-query": "^5.81.5", + "@tanstack/solid-query-devtools": "^5.81.5", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 63112bdaa2..c6ad0a126b 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4" + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 57afbea8f3..8b71df6244 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.4", - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4", - "@tanstack/svelte-query-persist-client": "^5.81.4" + "@tanstack/query-async-storage-persister": "^5.81.5", + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5", + "@tanstack/svelte-query-persist-client": "^5.81.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index efed0a4d6b..253912fc68 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4" + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 5e019338c5..a880f0e001 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4" + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 28d580e56e..485739eef6 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4" + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index b66777ecf1..74159f9b68 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4" + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index ad7e004813..91048c5a5b 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4" + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 4520666d41..41e586556d 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.4", - "@tanstack/svelte-query-devtools": "^5.81.4" + "@tanstack/svelte-query": "^5.81.5", + "@tanstack/svelte-query-devtools": "^5.81.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index da7f655718..1a4630217f 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.4", + "@tanstack/vue-query": "^5.81.5", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index db7df35a51..10240c9e1c 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.4", + "@tanstack/vue-query": "^5.81.5", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 722fc5f252..f8d77fe692 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.4", - "@tanstack/vue-query-devtools": "^5.81.4", + "@tanstack/vue-query": "^5.81.5", + "@tanstack/vue-query-devtools": "^5.81.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 8a1e431c03..95c6a26873 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.4", + "@tanstack/vue-query": "^5.81.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 7c86c7d035..fdd0faf706 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.81.4" + "@tanstack/vue-query": "^5.81.5" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index e1660457b3..cfcb593146 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.81.4", - "@tanstack/query-persist-client-core": "^5.81.4", - "@tanstack/query-sync-storage-persister": "^5.81.4", - "@tanstack/vue-query": "^5.81.4", + "@tanstack/query-core": "^5.81.5", + "@tanstack/query-persist-client-core": "^5.81.5", + "@tanstack/query-sync-storage-persister": "^5.81.5", + "@tanstack/vue-query": "^5.81.5", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 286ab46a3e..f324d1617f 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.4", - "@tanstack/vue-query-devtools": "^5.81.4", + "@tanstack/vue-query": "^5.81.5", + "@tanstack/vue-query-devtools": "^5.81.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index aee9c6cc0c..37e9a351ec 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.81.4", + "version": "5.81.5", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index fd90fb29f0..d02575222a 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.81.4", + "version": "5.81.5", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 85941a5399..5f1482ce27 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.81.4", + "version": "5.81.5", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 89dec1834f..c8695f68f3 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.81.4", + "version": "5.81.5", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index b04ef5be88..66f7f9c14a 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.81.4", + "version": "5.81.5", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 024f64079f..8511998772 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.81.4", + "version": "5.81.5", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 1d8f96cb96..daf55c4be6 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.81.4", + "version": "5.81.5", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index c5bff0a399..a40b6cbdb6 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.81.4", + "version": "5.81.5", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index d5c38ffcaa..c297a151ac 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.81.4", + "version": "5.81.5", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3647874285..4ea4f5b11e 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.81.4", + "version": "5.81.5", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index c733d252df..9d6ef05ed5 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.81.4", + "version": "5.81.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 2eca79ef24..def86d0cdb 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.81.4", + "version": "5.81.5", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 2446189730..492739dd0a 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.81.4", + "version": "5.81.5", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 555ab1722c..0bd9392b82 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.81.4", + "version": "5.81.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index acb6c8666d..50b10a85ec 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.81.4", + "version": "5.81.5", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index add32f5322..53119f0e5c 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.81.4", + "version": "5.81.5", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 2adbe63903..69839dad30 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.81.4", + "version": "5.81.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index fd9ad00bfd..a3bdcba588 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.81.4", + "version": "5.81.5", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index ea638603e0..48ba1903a4 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.81.4", + "version": "5.81.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From e4bbb89b80254e8c2e7a9f3e816860c33736b7b4 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 29 Jun 2025 00:36:35 +0900 Subject: [PATCH 185/432] test(query-core/queryClient): add missing 'await' for 'advanceTimersByTimeAsync' (#9320) Co-authored-by: Jonghyeon Ko --- packages/query-core/src/__tests__/queryClient.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index b6a5bfa81e..774d481596 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -697,7 +697,7 @@ describe('queryClient', () => { queryFn: () => sleep(10).then(() => 1), gcTime: 0, }) - vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(10) await expect(promise).resolves.toEqual(1) await vi.waitFor(() => expect(queryClient.getQueryData(key1)).toEqual(undefined), From 002550cb355a9cd30a4557562fe88357dd34185f Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sun, 29 Jun 2025 00:37:51 +0900 Subject: [PATCH 186/432] chore: add .vscode/mcp.json and .github/instructions/nx.instructions.md to .gitignore (#9325) --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 99b76c669f..9ebc512a09 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,9 @@ stats-hydration.json stats.json stats.html .vscode/settings.json +.vscode/mcp.json .cursor/rules +.github/instructions/nx.instructions.md *.log *.tsbuildinfo From 7dafa933fe8fe9aa3ec6588e206fa9e699c43e76 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 29 Jun 2025 00:46:07 +0900 Subject: [PATCH 187/432] test(query-core/query): add 'advanceTimersByTimeAsync' and remove 'vi.waitFor' (#9319) Co-authored-by: Jonghyeon Ko --- .../query-core/src/__tests__/query.test.tsx | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index 25ee912637..34477c12b2 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -501,15 +501,14 @@ describe('query', () => { }) const unsubscribe1 = observer.subscribe(() => undefined) unsubscribe1() - await vi.waitFor(() => - expect(queryCache.find({ queryKey: key })).toBeUndefined(), - ) + + await vi.advanceTimersByTimeAsync(0) + expect(queryCache.find({ queryKey: key })).toBeUndefined() const unsubscribe2 = observer.subscribe(() => undefined) unsubscribe2() - await vi.waitFor(() => - expect(queryCache.find({ queryKey: key })).toBeUndefined(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queryCache.find({ queryKey: key })).toBeUndefined() expect(count).toBe(1) }) @@ -524,9 +523,9 @@ describe('query', () => { const unsubscribe = observer.subscribe(() => undefined) expect(queryCache.find({ queryKey: key })).toBeDefined() unsubscribe() - await vi.waitFor(() => - expect(queryCache.find({ queryKey: key })).toBeUndefined(), - ) + + await vi.advanceTimersByTimeAsync(0) + expect(queryCache.find({ queryKey: key })).toBeUndefined() }) test('should be garbage collected later when unsubscribed and query is fetching', async () => { @@ -544,9 +543,8 @@ describe('query', () => { // unsubscribe should not remove even though gcTime has elapsed b/c query is still fetching expect(queryCache.find({ queryKey: key })).toBeDefined() // should be removed after an additional staleTime wait - await vi.waitFor(() => - expect(queryCache.find({ queryKey: key })).toBeUndefined(), - ) + await vi.advanceTimersByTimeAsync(30) + expect(queryCache.find({ queryKey: key })).toBeUndefined() }) test('should not be garbage collected unless there are no subscribers', async () => { @@ -887,12 +885,11 @@ describe('query', () => { queryClient.setQueryData(key, 'data') - await vi.waitFor(() => - expect(fn).toHaveBeenCalledWith( - expect.objectContaining({ - type: 'removed', - }), - ), + await vi.advanceTimersByTimeAsync(10) + expect(fn).toHaveBeenCalledWith( + expect.objectContaining({ + type: 'removed', + }), ) expect(queryClient.getQueryCache().findAll()).toHaveLength(0) From f4a11151baa89071a79365a687610b858649131e Mon Sep 17 00:00:00 2001 From: MINSEONG KIM Date: Sun, 29 Jun 2025 01:43:14 +0900 Subject: [PATCH 188/432] chore: add typescript-eslint/require-await rule (#9029) * chore: add typescript-eslint/require-await rule * reflect feedback * Update eslint.config.js * test(angular-query-experimental): remove unnecessary async * test(*): remove unnecessary async * remove(query-codemods): remove unnecessary import * chore(query-codemods): remove typescript-eslint/require-await off rule --------- Co-authored-by: Dominik Dorfmeister Co-authored-by: Jonghyeon Ko --- packages/query-codemods/eslint.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/query-codemods/eslint.config.js b/packages/query-codemods/eslint.config.js index aa13b1cd93..c3c009f41e 100644 --- a/packages/query-codemods/eslint.config.js +++ b/packages/query-codemods/eslint.config.js @@ -8,7 +8,6 @@ export default [ rules: { 'cspell/spellchecker': 'off', '@typescript-eslint/no-unnecessary-condition': 'off', - '@typescript-eslint/require-await': 'off', 'import/no-duplicates': 'off', 'import/no-unresolved': 'off', 'import/order': 'off', From 45dac6f026a02ddf85f2293359f85fa043ead6c6 Mon Sep 17 00:00:00 2001 From: sue hyeok chae <137467530+ienrum@users.noreply.github.com> Date: Sun, 29 Jun 2025 15:59:16 +0900 Subject: [PATCH 189/432] test: fix typo - remove duplicate "should run" in mutation test name (#9328) --- packages/query-core/src/__tests__/mutations.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index 7921785fc4..c22414e5b8 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -533,7 +533,7 @@ describe('mutations', () => { ]) }) - test('each scope should run should run in parallel, serial within scope', async () => { + test('each scope should run in parallel, serial within scope', async () => { const results: Array = [] executeMutation( From 8837536a7dc91227bc8cb641c2397eb3c31bf079 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 29 Jun 2025 16:16:23 +0900 Subject: [PATCH 190/432] test(query-core/notifyManager): replace 'queueMicrotask' with 'advanceTimersByTimeAsync' (#9329) Co-authored-by: Jonghyeon Ko --- packages/query-core/src/__tests__/notifyManager.test.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/query-core/src/__tests__/notifyManager.test.tsx b/packages/query-core/src/__tests__/notifyManager.test.tsx index ea13421455..3eeb960101 100644 --- a/packages/query-core/src/__tests__/notifyManager.test.tsx +++ b/packages/query-core/src/__tests__/notifyManager.test.tsx @@ -39,7 +39,7 @@ describe('notifyManager', () => { }) notifyManagerTest.batch(callbackBatchLevel1Spy) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(0) expect(callbackBatchLevel1Spy).toHaveBeenCalledTimes(1) expect(callbackBatchLevel2Spy).toHaveBeenCalledTimes(1) expect(callbackScheduleSpy).toHaveBeenCalledTimes(1) @@ -57,9 +57,7 @@ describe('notifyManager', () => { expect(customCallback).toHaveBeenCalledOnce() - // wait until the microtask has run - await new Promise((res) => queueMicrotask(res)) - + await vi.advanceTimersByTimeAsync(0) expect(notifySpy).toHaveBeenCalledTimes(1) }) From 35d50cb36cac1b68a3b35020c0f443193bfdb0a3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 29 Jun 2025 16:23:48 +0900 Subject: [PATCH 191/432] test(query-core/queryClient): replace 'advanceTimersByTime' with 'advanceTimersByTimeAsync' (#9327) Co-authored-by: Jonghyeon Ko --- packages/query-core/src/__tests__/queryClient.test.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index 774d481596..dcd6376666 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -1023,7 +1023,7 @@ describe('queryClient', () => { queryKey: key3, queryFn: () => sleep(1000).then(() => 'data3'), }) - await vi.advanceTimersByTime(10) + await vi.advanceTimersByTimeAsync(10) await queryClient.cancelQueries() const state1 = queryClient.getQueryState(key1) const state2 = queryClient.getQueryState(key2) @@ -1556,7 +1556,7 @@ describe('queryClient', () => { observer.subscribe(() => undefined) queryClient.refetchQueries() - await vi.advanceTimersByTime(10) + await vi.advanceTimersByTimeAsync(10) observer.destroy() expect(abortFn).toHaveBeenCalledTimes(1) expect(fetchCount).toBe(2) @@ -1580,7 +1580,7 @@ describe('queryClient', () => { observer.subscribe(() => undefined) queryClient.refetchQueries(undefined, { cancelRefetch: false }) - await vi.advanceTimersByTime(10) + await vi.advanceTimersByTimeAsync(10) observer.destroy() expect(abortFn).toHaveBeenCalledTimes(0) expect(fetchCount).toBe(1) From 33c69ec648d757a05f112c5d48367fa168f3bf15 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 29 Jun 2025 16:30:57 +0900 Subject: [PATCH 192/432] test(query-core/intiniteQueryBehavior): remove duplicate 'InfiniteQueryBehavior' in test name (#9331) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/infiniteQueryBehavior.test.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index 523a30ca20..5b7fe690c6 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -19,7 +19,7 @@ describe('InfiniteQueryBehavior', () => { vi.useRealTimers() }) - test('InfiniteQueryBehavior should throw an error if the queryFn is not defined', async () => { + test('should throw an error if the queryFn is not defined', async () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { @@ -48,7 +48,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('InfiniteQueryBehavior should apply the maxPages option to limit the number of pages', async () => { + test('should apply the maxPages option to limit the number of pages', async () => { const key = queryKey() let abortSignal: AbortSignal | null = null @@ -197,7 +197,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('InfiniteQueryBehavior should support query cancellation', async () => { + test('should support query cancellation', async () => { const key = queryKey() let abortSignal: AbortSignal | null = null @@ -250,7 +250,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('InfiniteQueryBehavior should not refetch pages if the query is cancelled', async () => { + test('should not refetch pages if the query is cancelled', async () => { const key = queryKey() let abortSignal: AbortSignal | null = null @@ -334,7 +334,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('InfiniteQueryBehavior should not enter an infinite loop when a page errors while retry is on #8046', async () => { + test('should not enter an infinite loop when a page errors while retry is on #8046', async () => { let errorCount = 0 const key = queryKey() @@ -436,7 +436,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('InfiniteQueryBehavior should not fetch next page when getNextPageParam returns null', async () => { + test('should not fetch next page when getNextPageParam returns null', async () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { @@ -471,7 +471,7 @@ describe('InfiniteQueryBehavior', () => { unsubscribe() }) - test('InfiniteQueryBehavior should use persister when provided', async () => { + test('should use persister when provided', async () => { const key = queryKey() const persisterSpy = vi.fn().mockImplementation(async (fn) => { From b16e793c0ed9ed95728293b4917d03809e7a1b8e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 29 Jun 2025 16:38:25 +0900 Subject: [PATCH 193/432] test(query-core/queryClient): add 'advanceTimersByTimeAsync' and remove 'vi.waitFor' (#9326) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/queryClient.test.tsx | 101 +++++++----------- 1 file changed, 38 insertions(+), 63 deletions(-) diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index dcd6376666..568270d5dd 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -699,9 +699,8 @@ describe('queryClient', () => { }) await vi.advanceTimersByTimeAsync(10) await expect(promise).resolves.toEqual(1) - await vi.waitFor(() => - expect(queryClient.getQueryData(key1)).toEqual(undefined), - ) + await vi.advanceTimersByTimeAsync(1) + expect(queryClient.getQueryData(key1)).toEqual(undefined) }) test('should keep a query in cache if garbage collection time is Infinity', async () => { @@ -1725,9 +1724,8 @@ describe('queryClient', () => { expect(mutationCacheResumePausedMutationsSpy).not.toHaveBeenCalled() focusManager.setFocused(true) - await vi.waitFor(() => - expect(queryCacheOnFocusSpy).toHaveBeenCalledTimes(1), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queryCacheOnFocusSpy).toHaveBeenCalledTimes(1) expect(mutationCacheResumePausedMutationsSpy).toHaveBeenCalledTimes(1) expect(queryCacheOnOnlineSpy).not.toHaveBeenCalled() @@ -1759,9 +1757,8 @@ describe('queryClient', () => { expect(mutationCacheResumePausedMutationsSpy).not.toHaveBeenCalled() onlineManager.setOnline(true) - await vi.waitFor(() => - expect(queryCacheOnOnlineSpy).toHaveBeenCalledTimes(1), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queryCacheOnOnlineSpy).toHaveBeenCalledTimes(1) expect(mutationCacheResumePausedMutationsSpy).toHaveBeenCalledTimes(1) @@ -1787,17 +1784,14 @@ describe('queryClient', () => { void observer1.mutate() void observer2.mutate() - await vi.waitFor(() => { - expect(observer1.getCurrentResult().isPaused).toBeTruthy() - expect(observer2.getCurrentResult().isPaused).toBeTruthy() - }) + expect(observer1.getCurrentResult().isPaused).toBeTruthy() + expect(observer2.getCurrentResult().isPaused).toBeTruthy() onlineManager.setOnline(true) - await vi.waitFor(() => { - expect(observer1.getCurrentResult().status).toBe('success') - expect(observer2.getCurrentResult().status).toBe('success') - }) + await vi.advanceTimersByTimeAsync(0) + expect(observer1.getCurrentResult().status).toBe('success') + expect(observer2.getCurrentResult().status).toBe('success') }) test('should resume paused mutations in parallel', async () => { @@ -1825,17 +1819,14 @@ describe('queryClient', () => { void observer1.mutate() void observer2.mutate() - await vi.waitFor(() => { - expect(observer1.getCurrentResult().isPaused).toBeTruthy() - expect(observer2.getCurrentResult().isPaused).toBeTruthy() - }) + expect(observer1.getCurrentResult().isPaused).toBeTruthy() + expect(observer2.getCurrentResult().isPaused).toBeTruthy() onlineManager.setOnline(true) - await vi.waitFor(() => { - expect(observer1.getCurrentResult().status).toBe('success') - expect(observer2.getCurrentResult().status).toBe('success') - }) + await vi.advanceTimersByTimeAsync(50) + expect(observer1.getCurrentResult().status).toBe('success') + expect(observer2.getCurrentResult().status).toBe('success') expect(orders).toEqual(['1start', '2start', '2end', '1end']) }) @@ -1873,18 +1864,15 @@ describe('queryClient', () => { void observer1.mutate() void observer2.mutate() - await vi.waitFor(() => { - expect(observer1.getCurrentResult().isPaused).toBeTruthy() - expect(observer2.getCurrentResult().isPaused).toBeTruthy() - }) + expect(observer1.getCurrentResult().isPaused).toBeTruthy() + expect(observer2.getCurrentResult().isPaused).toBeTruthy() onlineManager.setOnline(true) void queryClient.resumePausedMutations() - await vi.waitFor(() => { - expect(observer1.getCurrentResult().status).toBe('success') - expect(observer2.getCurrentResult().status).toBe('success') - }) + await vi.advanceTimersByTimeAsync(70) + expect(observer1.getCurrentResult().status).toBe('success') + expect(observer2.getCurrentResult().status).toBe('success') expect(orders).toEqual(['1start', '1end', '2start', '2end']) }) @@ -1909,9 +1897,8 @@ describe('queryClient', () => { onlineManager.setOnline(true) - await vi.waitFor(() => { - expect(observer.getCurrentResult().status).toBe('success') - }) + await vi.advanceTimersByTimeAsync(0) + expect(observer.getCurrentResult().status).toBe('success') }) test('should resumePausedMutations when coming online after having restored cache (and resumed) while offline', async () => { @@ -1950,11 +1937,10 @@ describe('queryClient', () => { onlineManager.setOnline(true) - await vi.waitFor(() => { - expect( - newQueryClient.getMutationCache().getAll()[0]?.state.status, - ).toBe('success') - }) + await vi.advanceTimersByTimeAsync(0) + expect(newQueryClient.getMutationCache().getAll()[0]?.state.status).toBe( + 'success', + ) newQueryClient.unmount() }) @@ -1977,9 +1963,8 @@ describe('queryClient', () => { const unsubscribe = queryObserver.subscribe(() => undefined) - await vi.waitFor(() => { - expect(queryClient.getQueryData(key)).toBe('data1') - }) + await vi.advanceTimersByTimeAsync(10) + expect(queryClient.getQueryData(key)).toBe('data1') onlineManager.setOnline(false) @@ -2022,21 +2007,13 @@ describe('queryClient', () => { void observer3.mutate() - await vi.waitFor(() => - expect(observer.getCurrentResult().isPaused).toBeTruthy(), - ) - await vi.waitFor(() => - expect(observer2.getCurrentResult().isPaused).toBeTruthy(), - ) - await vi.waitFor(() => - expect(observer3.getCurrentResult().isPaused).toBeTruthy(), - ) - + expect(observer.getCurrentResult().isPaused).toBeTruthy() + expect(observer2.getCurrentResult().isPaused).toBeTruthy() + expect(observer3.getCurrentResult().isPaused).toBeTruthy() onlineManager.setOnline(true) - await vi.waitFor(() => { - expect(queryClient.getQueryData(key)).toBe('data2') - }) + await vi.advanceTimersByTimeAsync(110) + expect(queryClient.getQueryData(key)).toBe('data2') // refetch from coming online should happen after mutations have finished expect(results).toStrictEqual([ @@ -2074,15 +2051,13 @@ describe('queryClient', () => { onlineManager.setOnline(false) onlineManager.setOnline(true) - await vi.waitFor(() => - expect(queryCacheOnOnlineSpy).toHaveBeenCalledTimes(1), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queryCacheOnOnlineSpy).toHaveBeenCalledTimes(1) expect(mutationCacheResumePausedMutationsSpy).toHaveBeenCalledTimes(1) focusManager.setFocused(true) - await vi.waitFor(() => - expect(queryCacheOnFocusSpy).toHaveBeenCalledTimes(1), - ) + await vi.advanceTimersByTimeAsync(0) + expect(queryCacheOnFocusSpy).toHaveBeenCalledTimes(1) expect(mutationCacheResumePausedMutationsSpy).toHaveBeenCalledTimes(2) queryCacheOnFocusSpy.mockRestore() From 4425423588713311d5d949fc29ccfa647e927c98 Mon Sep 17 00:00:00 2001 From: Jonghyeon Ko Date: Sun, 29 Jun 2025 16:45:47 +0900 Subject: [PATCH 194/432] chore(*): migrate tsup configuration files to TypeScript format (#9330) --- .../{tsup.config.js => tsup.config.ts} | 0 .../{tsup.config.js => tsup.config.ts} | 0 .../{tsup.config.js => tsup.config.ts} | 2 -- .../{tsup.config.js => tsup.config.ts} | 2 -- .../{tsup.config.js => tsup.config.ts} | 2 -- packages/query-core/tsconfig.json | 2 +- packages/query-core/{tsup.config.js => tsup.config.ts} | 2 -- .../query-devtools/{tsup.config.js => tsup.config.ts} | 2 -- packages/query-persist-client-core/tsup.config.js | 9 --------- packages/query-persist-client-core/tsup.config.ts | 7 +++++++ packages/query-sync-storage-persister/tsup.config.js | 9 --------- packages/query-sync-storage-persister/tsup.config.ts | 7 +++++++ .../{tsup.config.js => tsup.config.ts} | 2 -- .../{tsup.config.js => tsup.config.ts} | 2 -- .../{tsup.config.js => tsup.config.ts} | 2 -- packages/react-query/{tsup.config.js => tsup.config.ts} | 2 -- .../{tsup.config.js => tsup.config.ts} | 2 -- .../{tsup.config.js => tsup.config.ts} | 2 -- packages/solid-query/{tsup.config.js => tsup.config.ts} | 2 -- packages/vue-query/{tsup.config.js => tsup.config.ts} | 2 -- 20 files changed, 15 insertions(+), 45 deletions(-) rename packages/angular-query-devtools-experimental/{tsup.config.js => tsup.config.ts} (100%) rename packages/angular-query-persist-client/{tsup.config.js => tsup.config.ts} (100%) rename packages/eslint-plugin-query/{tsup.config.js => tsup.config.ts} (93%) rename packages/query-async-storage-persister/{tsup.config.js => tsup.config.ts} (93%) rename packages/query-broadcast-client-experimental/{tsup.config.js => tsup.config.ts} (93%) rename packages/query-core/{tsup.config.js => tsup.config.ts} (93%) rename packages/query-devtools/{tsup.config.js => tsup.config.ts} (97%) delete mode 100644 packages/query-persist-client-core/tsup.config.js create mode 100644 packages/query-persist-client-core/tsup.config.ts delete mode 100644 packages/query-sync-storage-persister/tsup.config.js create mode 100644 packages/query-sync-storage-persister/tsup.config.ts rename packages/react-query-devtools/{tsup.config.js => tsup.config.ts} (94%) rename packages/react-query-next-experimental/{tsup.config.js => tsup.config.ts} (94%) rename packages/react-query-persist-client/{tsup.config.js => tsup.config.ts} (94%) rename packages/react-query/{tsup.config.js => tsup.config.ts} (94%) rename packages/solid-query-devtools/{tsup.config.js => tsup.config.ts} (97%) rename packages/solid-query-persist-client/{tsup.config.js => tsup.config.ts} (97%) rename packages/solid-query/{tsup.config.js => tsup.config.ts} (97%) rename packages/vue-query/{tsup.config.js => tsup.config.ts} (94%) diff --git a/packages/angular-query-devtools-experimental/tsup.config.js b/packages/angular-query-devtools-experimental/tsup.config.ts similarity index 100% rename from packages/angular-query-devtools-experimental/tsup.config.js rename to packages/angular-query-devtools-experimental/tsup.config.ts diff --git a/packages/angular-query-persist-client/tsup.config.js b/packages/angular-query-persist-client/tsup.config.ts similarity index 100% rename from packages/angular-query-persist-client/tsup.config.js rename to packages/angular-query-persist-client/tsup.config.ts diff --git a/packages/eslint-plugin-query/tsup.config.js b/packages/eslint-plugin-query/tsup.config.ts similarity index 93% rename from packages/eslint-plugin-query/tsup.config.js rename to packages/eslint-plugin-query/tsup.config.ts index fb3116bddb..de1af4ee08 100644 --- a/packages/eslint-plugin-query/tsup.config.js +++ b/packages/eslint-plugin-query/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/query-async-storage-persister/tsup.config.js b/packages/query-async-storage-persister/tsup.config.ts similarity index 93% rename from packages/query-async-storage-persister/tsup.config.js rename to packages/query-async-storage-persister/tsup.config.ts index fb3116bddb..de1af4ee08 100644 --- a/packages/query-async-storage-persister/tsup.config.js +++ b/packages/query-async-storage-persister/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/query-broadcast-client-experimental/tsup.config.js b/packages/query-broadcast-client-experimental/tsup.config.ts similarity index 93% rename from packages/query-broadcast-client-experimental/tsup.config.js rename to packages/query-broadcast-client-experimental/tsup.config.ts index fb3116bddb..de1af4ee08 100644 --- a/packages/query-broadcast-client-experimental/tsup.config.js +++ b/packages/query-broadcast-client-experimental/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/query-core/tsconfig.json b/packages/query-core/tsconfig.json index bfbc7cdf91..82f2da1e84 100644 --- a/packages/query-core/tsconfig.json +++ b/packages/query-core/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "package.json"] + "include": ["src", "*.config.js", "*.config.ts", "package.json"] } diff --git a/packages/query-core/tsup.config.js b/packages/query-core/tsup.config.ts similarity index 93% rename from packages/query-core/tsup.config.js rename to packages/query-core/tsup.config.ts index fb3116bddb..de1af4ee08 100644 --- a/packages/query-core/tsup.config.js +++ b/packages/query-core/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/query-devtools/tsup.config.js b/packages/query-devtools/tsup.config.ts similarity index 97% rename from packages/query-devtools/tsup.config.js rename to packages/query-devtools/tsup.config.ts index fac53914a6..854110ec19 100644 --- a/packages/query-devtools/tsup.config.js +++ b/packages/query-devtools/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { generateTsupOptions, parsePresetOptions } from 'tsup-preset-solid' diff --git a/packages/query-persist-client-core/tsup.config.js b/packages/query-persist-client-core/tsup.config.js deleted file mode 100644 index fb3116bddb..0000000000 --- a/packages/query-persist-client-core/tsup.config.js +++ /dev/null @@ -1,9 +0,0 @@ -// @ts-check - -import { defineConfig } from 'tsup' -import { legacyConfig, modernConfig } from './root.tsup.config.js' - -export default defineConfig([ - modernConfig({ entry: ['src/*.ts'] }), - legacyConfig({ entry: ['src/*.ts'] }), -]) diff --git a/packages/query-persist-client-core/tsup.config.ts b/packages/query-persist-client-core/tsup.config.ts new file mode 100644 index 0000000000..de1af4ee08 --- /dev/null +++ b/packages/query-persist-client-core/tsup.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'tsup' +import { legacyConfig, modernConfig } from './root.tsup.config.js' + +export default defineConfig([ + modernConfig({ entry: ['src/*.ts'] }), + legacyConfig({ entry: ['src/*.ts'] }), +]) diff --git a/packages/query-sync-storage-persister/tsup.config.js b/packages/query-sync-storage-persister/tsup.config.js deleted file mode 100644 index fb3116bddb..0000000000 --- a/packages/query-sync-storage-persister/tsup.config.js +++ /dev/null @@ -1,9 +0,0 @@ -// @ts-check - -import { defineConfig } from 'tsup' -import { legacyConfig, modernConfig } from './root.tsup.config.js' - -export default defineConfig([ - modernConfig({ entry: ['src/*.ts'] }), - legacyConfig({ entry: ['src/*.ts'] }), -]) diff --git a/packages/query-sync-storage-persister/tsup.config.ts b/packages/query-sync-storage-persister/tsup.config.ts new file mode 100644 index 0000000000..de1af4ee08 --- /dev/null +++ b/packages/query-sync-storage-persister/tsup.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'tsup' +import { legacyConfig, modernConfig } from './root.tsup.config.js' + +export default defineConfig([ + modernConfig({ entry: ['src/*.ts'] }), + legacyConfig({ entry: ['src/*.ts'] }), +]) diff --git a/packages/react-query-devtools/tsup.config.js b/packages/react-query-devtools/tsup.config.ts similarity index 94% rename from packages/react-query-devtools/tsup.config.js rename to packages/react-query-devtools/tsup.config.ts index ed67956b59..ef4a978d12 100644 --- a/packages/react-query-devtools/tsup.config.js +++ b/packages/react-query-devtools/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/react-query-next-experimental/tsup.config.js b/packages/react-query-next-experimental/tsup.config.ts similarity index 94% rename from packages/react-query-next-experimental/tsup.config.js rename to packages/react-query-next-experimental/tsup.config.ts index ed67956b59..ef4a978d12 100644 --- a/packages/react-query-next-experimental/tsup.config.js +++ b/packages/react-query-next-experimental/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/react-query-persist-client/tsup.config.js b/packages/react-query-persist-client/tsup.config.ts similarity index 94% rename from packages/react-query-persist-client/tsup.config.js rename to packages/react-query-persist-client/tsup.config.ts index ed67956b59..ef4a978d12 100644 --- a/packages/react-query-persist-client/tsup.config.js +++ b/packages/react-query-persist-client/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/react-query/tsup.config.js b/packages/react-query/tsup.config.ts similarity index 94% rename from packages/react-query/tsup.config.js rename to packages/react-query/tsup.config.ts index ed67956b59..ef4a978d12 100644 --- a/packages/react-query/tsup.config.js +++ b/packages/react-query/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' diff --git a/packages/solid-query-devtools/tsup.config.js b/packages/solid-query-devtools/tsup.config.ts similarity index 97% rename from packages/solid-query-devtools/tsup.config.js rename to packages/solid-query-devtools/tsup.config.ts index 1ddd3f74f0..09316c5110 100644 --- a/packages/solid-query-devtools/tsup.config.js +++ b/packages/solid-query-devtools/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { generateTsupOptions, parsePresetOptions } from 'tsup-preset-solid' diff --git a/packages/solid-query-persist-client/tsup.config.js b/packages/solid-query-persist-client/tsup.config.ts similarity index 97% rename from packages/solid-query-persist-client/tsup.config.js rename to packages/solid-query-persist-client/tsup.config.ts index fac53914a6..854110ec19 100644 --- a/packages/solid-query-persist-client/tsup.config.js +++ b/packages/solid-query-persist-client/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { generateTsupOptions, parsePresetOptions } from 'tsup-preset-solid' diff --git a/packages/solid-query/tsup.config.js b/packages/solid-query/tsup.config.ts similarity index 97% rename from packages/solid-query/tsup.config.js rename to packages/solid-query/tsup.config.ts index fac53914a6..854110ec19 100644 --- a/packages/solid-query/tsup.config.js +++ b/packages/solid-query/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { generateTsupOptions, parsePresetOptions } from 'tsup-preset-solid' diff --git a/packages/vue-query/tsup.config.js b/packages/vue-query/tsup.config.ts similarity index 94% rename from packages/vue-query/tsup.config.js rename to packages/vue-query/tsup.config.ts index 4b68341f61..6b77215076 100644 --- a/packages/vue-query/tsup.config.js +++ b/packages/vue-query/tsup.config.ts @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from 'tsup' import { legacyConfig, modernConfig } from './root.tsup.config.js' From 1dd32acaf7efa17bde21af5e27398991f123096f Mon Sep 17 00:00:00 2001 From: Alex Liu Date: Mon, 30 Jun 2025 22:45:43 +0800 Subject: [PATCH 195/432] type(vue-query): ensure type definition matches implementation (#9276) * type(vue-query): ensure type of vue-query definition matches its implementation * type(vue-query): update type --- packages/vue-query/src/useQuery.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/vue-query/src/useQuery.ts b/packages/vue-query/src/useQuery.ts index 43c8c20548..3e1e825dcf 100644 --- a/packages/vue-query/src/useQuery.ts +++ b/packages/vue-query/src/useQuery.ts @@ -3,6 +3,7 @@ import { useBaseQuery } from './useBaseQuery' import type { DefaultError, DefinedQueryObserverResult, + Enabled, InitialDataFunction, NonUndefinedGuard, QueryKey, @@ -33,15 +34,14 @@ export type UseQueryOptions< TQueryData, TQueryKey >]: Property extends 'enabled' - ? MaybeRefOrGetter< - QueryObserverOptions< - TQueryFnData, - TError, - TData, - TQueryData, - DeepUnwrapRef - >[Property] - > + ? + | MaybeRefOrGetter + | (() => Enabled< + TQueryFnData, + TError, + TQueryData, + DeepUnwrapRef + >) : MaybeRefDeep< QueryObserverOptions< TQueryFnData, From a5319d5aaf89cdd79b0d3dcb4a1798173d6270ae Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 1 Jul 2025 23:19:52 +0900 Subject: [PATCH 196/432] test(query-core/infiniteQueryObserver): remove duplicate 'InfiniteQueryObserver' and fix grammar in test names (#9332) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/infiniteQueryObserver.test.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx index 36aa08c554..1a72d81c98 100644 --- a/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryObserver.test.tsx @@ -20,7 +20,7 @@ describe('InfiniteQueryObserver', () => { vi.useRealTimers() }) - test('InfiniteQueryObserver should be able to fetch an infinite query with selector', async () => { + test('should be able to fetch an infinite query with selector', async () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { queryKey: key, @@ -43,7 +43,7 @@ describe('InfiniteQueryObserver', () => { }) }) - test('InfiniteQueryObserver should pass the meta option to the queryFn', async () => { + test('should pass the meta option to the queryFn', async () => { const meta = { it: 'works', } @@ -73,7 +73,7 @@ describe('InfiniteQueryObserver', () => { expect(queryFn).toBeCalledWith(expect.objectContaining({ meta })) }) - test('getNextPagParam and getPreviousPageParam should receive current pageParams', async () => { + test('should make getNextPageParam and getPreviousPageParam receive current pageParams', async () => { const key = queryKey() let single: Array = [] let all: Array = [] @@ -207,7 +207,7 @@ describe('InfiniteQueryObserver', () => { expect(observer.getCurrentResult().hasNextPage).toBe(false) }) - test('getOptimisticResult should set infinite query behavior and return initial state', () => { + test('should set infinite query behavior via getOptimisticResult and return the initial state', () => { const key = queryKey() const observer = new InfiniteQueryObserver(queryClient, { queryKey: key, From 5e6e36daef88ac9191ca96f732aa36a9124ef1aa Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 2 Jul 2025 01:28:29 +0900 Subject: [PATCH 197/432] test(query-core/queryObserver): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9343) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/queryObserver.test.tsx | 63 ++++++++++--------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index a594523b3d..6c88ecdaed 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -109,7 +109,8 @@ describe('queryObserver', () => { fetchStatus: 'idle', data: undefined, }) - await vi.waitFor(() => expect(count).toBe(0)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(0) unsubscribe() }) @@ -128,7 +129,8 @@ describe('queryObserver', () => { data: undefined, }) - await vi.waitFor(() => expect(count).toBe(1)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(1) expect(observer.getCurrentResult()).toMatchObject({ status: 'success', fetchStatus: 'idle', @@ -157,8 +159,8 @@ describe('queryObserver', () => { fetchStatus: 'fetching', data: undefined, }) - - await vi.waitFor(() => expect(count).toBe(1)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(1) unsubscribe() }) @@ -194,7 +196,8 @@ describe('queryObserver', () => { fetchStatus: 'fetching', data: undefined, }) - await vi.waitFor(() => expect(count).toBe(1)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(1) unsubscribe() }) @@ -208,12 +211,14 @@ describe('queryObserver', () => { queryClient.invalidateQueries({ queryKey: key, refetchType: 'inactive' }) // should not refetch since it was active and we only refetch inactive - await vi.waitFor(() => expect(count).toBe(0)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(0) queryClient.invalidateQueries({ queryKey: key, refetchType: 'active' }) // should refetch since it was active and we refetch active - await vi.waitFor(() => expect(count).toBe(1)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(1) // Toggle enabled enabled = false @@ -221,7 +226,8 @@ describe('queryObserver', () => { // should not refetch since it is not active and we only refetch active queryClient.invalidateQueries({ queryKey: key, refetchType: 'active' }) - await vi.waitFor(() => expect(count).toBe(1)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(1) unsubscribe() }) @@ -251,7 +257,8 @@ describe('queryObserver', () => { data: undefined, }) - await vi.waitFor(() => expect(count).toBe(1)) + await vi.advanceTimersByTimeAsync(10) + expect(count).toBe(1) // re-subscribe after data comes in unsubscribe = observer.subscribe(vi.fn()) @@ -1172,8 +1179,10 @@ describe('queryObserver', () => { } }) - await vi.waitFor(() => expect(results[0]?.isStale).toBe(false)) - await vi.waitFor(() => expect(results[1]?.isStale).toBe(true)) + await vi.advanceTimersByTimeAsync(25) + expect(results[0]?.isStale).toBe(false) + await vi.advanceTimersByTimeAsync(1) + expect(results[1]?.isStale).toBe(true) unsubscribe() }) @@ -1200,7 +1209,8 @@ describe('queryObserver', () => { } }) - await vi.waitFor(() => expect(results[0]?.isStale).toBe(false)) + await vi.advanceTimersByTimeAsync(5) + expect(results[0]?.isStale).toBe(false) unsubscribe() }) @@ -1224,9 +1234,8 @@ describe('queryObserver', () => { results.push(observer.getCurrentResult()) }) - await vi.waitFor(() => { - expect(results.at(-1)?.data).toBe('data') - }) + await vi.advanceTimersByTimeAsync(10) + expect(results.at(-1)?.data).toBe('data') const numberOfUniquePromises = new Set( results.map((result) => result.promise), @@ -1257,9 +1266,8 @@ describe('queryObserver', () => { results.push(observer.getCurrentResult()) }) - await vi.waitFor(() => { - expect(results.at(-1)?.status).toBe('error') - }) + await vi.advanceTimersByTimeAsync(5) + expect(results.at(-1)?.status).toBe('error') expect( results.every((result) => result.promise === results[0]!.promise), @@ -1269,10 +1277,9 @@ describe('queryObserver', () => { // fail again const lengthBefore = results.length observer.refetch() - await vi.waitFor(() => { - expect(results.length).toBeGreaterThan(lengthBefore) - expect(results.at(-1)?.status).toBe('error') - }) + await vi.advanceTimersByTimeAsync(5) + expect(results.length).toBeGreaterThan(lengthBefore) + expect(results.at(-1)?.status).toBe('error') const numberOfUniquePromises = new Set( results.map((result) => result.promise), @@ -1285,9 +1292,8 @@ describe('queryObserver', () => { succeeds = true observer.refetch() - await vi.waitFor(() => { - results.at(-1)?.status === 'success' - }) + await vi.advanceTimersByTimeAsync(5) + results.at(-1)?.status === 'success' const numberOfUniquePromises = new Set( results.map((result) => result.promise), @@ -1359,10 +1365,9 @@ describe('queryObserver', () => { results.push(result) }) - await vi.waitFor(() => { - const lastResult = results[results.length - 1] - expect(lastResult?.status).toBe('error') - }) + await vi.advanceTimersByTimeAsync(0) + const lastResult = results[results.length - 1] + expect(lastResult?.status).toBe('error') expect(results.length).toBe(1) expect(results[0]).toMatchObject({ From 879a1e33bd7a3e6c686096a5750df78aa704da68 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 2 Jul 2025 01:38:27 +0900 Subject: [PATCH 198/432] test(query-core/queriesObserver): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9342) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/queriesObserver.test.tsx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index bdcbbd962c..7fb9790b39 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -254,13 +254,11 @@ describe('queriesObserver', () => { const unsubscribe2 = observer.subscribe(subscription2Handler) unsubscribe1() - - await vi.waitFor(() => { - // 1 call: pending - expect(subscription1Handler).toBeCalledTimes(1) - // 1 call: success - expect(subscription2Handler).toBeCalledTimes(1) - }) + await vi.advanceTimersByTimeAsync(20) + // 1 call: pending + expect(subscription1Handler).toBeCalledTimes(1) + // 1 call: success + expect(subscription2Handler).toBeCalledTimes(1) // Clean-up unsubscribe2() From b805733f5dc23ea6d99e7b95563bea95b76613f1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 2 Jul 2025 01:47:47 +0900 Subject: [PATCH 199/432] test(query-core/infiniteQueryBehavior): remove most 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9333) Co-authored-by: Jonghyeon Ko --- .../__tests__/infiniteQueryBehavior.test.tsx | 75 +++++++++---------- 1 file changed, 34 insertions(+), 41 deletions(-) diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index 5b7fe690c6..e7a9745bf8 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -37,12 +37,11 @@ describe('InfiniteQueryBehavior', () => { observerResult = result }) - await vi.waitFor(() => { - const query = queryCache.find({ queryKey: key })! - return expect(observerResult).toMatchObject({ - isError: true, - error: new Error(`Missing queryFn: '${query.queryHash}'`), - }) + await vi.advanceTimersByTimeAsync(0) + const query = queryCache.find({ queryKey: key })! + expect(observerResult).toMatchObject({ + isError: true, + error: new Error(`Missing queryFn: '${query.queryHash}'`), }) unsubscribe() @@ -75,12 +74,11 @@ describe('InfiniteQueryBehavior', () => { }) // Wait for the first page to be fetched - await vi.waitFor(() => - expect(observerResult).toMatchObject({ - isFetching: false, - data: { pages: [1], pageParams: [1] }, - }), - ) + await vi.advanceTimersByTimeAsync(0) + expect(observerResult).toMatchObject({ + isFetching: false, + data: { pages: [1], pageParams: [1] }, + }) expect(queryFnSpy).toHaveBeenNthCalledWith(1, { queryKey: key, @@ -227,14 +225,13 @@ describe('InfiniteQueryBehavior', () => { query.cancel() // Wait for the first page to be cancelled - await vi.waitFor(() => - expect(observerResult).toMatchObject({ - isFetching: false, - isError: true, - error: new CancelledError(), - data: undefined, - }), - ) + await vi.advanceTimersByTimeAsync(0) + expect(observerResult).toMatchObject({ + isFetching: false, + isError: true, + error: new CancelledError(), + data: undefined, + }) expect(queryFnSpy).toHaveBeenCalledTimes(1) @@ -276,12 +273,11 @@ describe('InfiniteQueryBehavior', () => { }) // Wait for the first page to be fetched - await vi.waitFor(() => - expect(observerResult).toMatchObject({ - isFetching: false, - data: { pages: [1], pageParams: [1] }, - }), - ) + await vi.advanceTimersByTimeAsync(0) + expect(observerResult).toMatchObject({ + isFetching: false, + data: { pages: [1], pageParams: [1] }, + }) queryFnSpy.mockClear() @@ -426,12 +422,11 @@ describe('InfiniteQueryBehavior', () => { observerResult = result }) - await vi.waitFor(() => - expect(observerResult).toMatchObject({ - isFetching: false, - data: { pages: ['data'], pageParams: [null] }, - }), - ) + await vi.advanceTimersByTimeAsync(0) + expect(observerResult).toMatchObject({ + isFetching: false, + data: { pages: ['data'], pageParams: [null] }, + }) unsubscribe() }) @@ -454,12 +449,11 @@ describe('InfiniteQueryBehavior', () => { observerResult = result }) - await vi.waitFor(() => - expect(observerResult).toMatchObject({ - isFetching: false, - data: { pages: [1], pageParams: [1] }, - }), - ) + await vi.advanceTimersByTimeAsync(0) + expect(observerResult).toMatchObject({ + isFetching: false, + data: { pages: [1], pageParams: [1] }, + }) await observer.fetchNextPage() @@ -488,9 +482,8 @@ describe('InfiniteQueryBehavior', () => { const unsubscribe = observer.subscribe(() => {}) - await vi.waitFor(() => { - expect(persisterSpy).toHaveBeenCalledTimes(1) - }) + await vi.advanceTimersByTimeAsync(0) + expect(persisterSpy).toHaveBeenCalledTimes(1) unsubscribe() }) From d75a78af7f58a2540a8e3a2b1945a8183b3a8d35 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 2 Jul 2025 01:55:16 +0900 Subject: [PATCH 200/432] test(query-core/mutations): add 'await' to 'sleep', remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9341) Co-authored-by: Jonghyeon Ko --- packages/query-core/src/__tests__/mutations.test.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index c22414e5b8..dfe05db55d 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -397,8 +397,8 @@ describe('mutations', () => { const onSuccess = vi.fn() const mutation = new MutationObserver(queryClient, { - mutationFn: () => { - sleep(100) + mutationFn: async () => { + await sleep(100) return Promise.resolve('update') }, onSuccess: () => { @@ -409,8 +409,8 @@ describe('mutations', () => { void mutation.mutate() mutation.setOptions({ - mutationFn: () => { - sleep(100) + mutationFn: async () => { + await sleep(100) return Promise.resolve('update') }, onSuccess: () => { @@ -418,7 +418,8 @@ describe('mutations', () => { }, }) - await vi.waitFor(() => expect(onSuccess).toHaveBeenCalledTimes(1)) + await vi.advanceTimersByTimeAsync(100) + expect(onSuccess).toHaveBeenCalledTimes(1) expect(onSuccess).toHaveBeenCalledWith(2) }) From 998be8bca4341de7fcb7c3151e2261e390a8c9c5 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 2 Jul 2025 02:01:49 +0900 Subject: [PATCH 201/432] test(query-core/queryCache): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9340) Co-authored-by: Jonghyeon Ko --- packages/query-core/src/__tests__/queryCache.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/query-core/src/__tests__/queryCache.test.tsx b/packages/query-core/src/__tests__/queryCache.test.tsx index feb995692d..568326fb76 100644 --- a/packages/query-core/src/__tests__/queryCache.test.tsx +++ b/packages/query-core/src/__tests__/queryCache.test.tsx @@ -58,7 +58,8 @@ describe('queryCache', () => { const unsubScribeObserver = observer.subscribe(vi.fn()) - await vi.waitFor(() => expect(events.length).toBe(8)) + await vi.advanceTimersByTimeAsync(11) + expect(events.length).toBe(8) expect(events).toEqual([ 'added', // 1. Query added -> loading From d0bea3fb912e37cc17020e51875d5cf282b4674a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 2 Jul 2025 02:07:13 +0900 Subject: [PATCH 202/432] test(query-core/mutationCache): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9339) Co-authored-by: Jonghyeon Ko --- .../query-core/src/__tests__/mutationCache.test.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/query-core/src/__tests__/mutationCache.test.tsx b/packages/query-core/src/__tests__/mutationCache.test.tsx index 23cf7c1e40..7b812e1d67 100644 --- a/packages/query-core/src/__tests__/mutationCache.test.tsx +++ b/packages/query-core/src/__tests__/mutationCache.test.tsx @@ -310,9 +310,8 @@ describe('mutationCache', () => { 1, ) expect(testCache.getAll()).toHaveLength(1) - await vi.waitFor(() => { - expect(testCache.getAll()).toHaveLength(0) - }) + await vi.advanceTimersByTimeAsync(10) + expect(testCache.getAll()).toHaveLength(0) expect(onSuccess).toHaveBeenCalledTimes(1) }) @@ -376,9 +375,8 @@ describe('mutationCache', () => { const unsubscribe = observer.subscribe(() => undefined) observer.mutate(1) unsubscribe() - await vi.waitFor(() => { - expect(queryClient.getMutationCache().getAll()).toHaveLength(0) - }) + await vi.advanceTimersByTimeAsync(0) + expect(queryClient.getMutationCache().getAll()).toHaveLength(0) expect(onSuccess).toHaveBeenCalledTimes(1) }) }) From 2bc52bf50cb3c7b00e49fc960ec0b7a944abe71a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 2 Jul 2025 02:11:27 +0900 Subject: [PATCH 203/432] test(query-core/onlineManager): replace 'advanceTimersByTimeAsync' with 'advanceTimersByTime' (#9337) Co-authored-by: Jonghyeon Ko --- packages/query-core/src/__tests__/onlineManager.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/query-core/src/__tests__/onlineManager.test.tsx b/packages/query-core/src/__tests__/onlineManager.test.tsx index 40ede743fe..20a9439de9 100644 --- a/packages/query-core/src/__tests__/onlineManager.test.tsx +++ b/packages/query-core/src/__tests__/onlineManager.test.tsx @@ -34,7 +34,7 @@ describe('onlineManager', () => { navigatorSpy.mockRestore() }) - test('setEventListener should use online boolean arg', async () => { + test('setEventListener should use online boolean arg', () => { let count = 0 const setup = (setOnline: (online: boolean) => void) => { @@ -47,7 +47,7 @@ describe('onlineManager', () => { onlineManager.setEventListener(setup) - await vi.advanceTimersByTimeAsync(30) + vi.advanceTimersByTime(20) expect(count).toEqual(1) expect(onlineManager.isOnline()).toBeFalsy() }) From 3eebcff515fc857c81bbcac95202c8d8f9577a20 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 00:01:14 +0900 Subject: [PATCH 204/432] test(react-query/fine-grained-persister): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9344) --- .../src/__tests__/fine-grained-persister.test.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx index 2fdf28dd19..72862200dd 100644 --- a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx @@ -68,7 +68,8 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Works from persister')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Works from persister') expect(spy).not.toHaveBeenCalled() }) @@ -123,8 +124,10 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Works from persister')) - await vi.waitFor(() => rendered.getByText('Works from queryFn')) + await vi.advanceTimersByTimeAsync(5) + rendered.getByText('Works from persister') + await vi.advanceTimersByTimeAsync(1) + rendered.getByText('Works from queryFn') expect(spy).toHaveBeenCalledTimes(1) }) @@ -162,7 +165,8 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Works from queryFn')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Works from queryFn') expect(spy).toHaveBeenCalledTimes(1) const storedItem = await storage.getItem(`${PERSISTER_KEY_PREFIX}-${hash}`) From 8bf22144bc578a0317b224ceed721e7596ee6c14 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 00:05:00 +0900 Subject: [PATCH 205/432] test(react-query/useMutationState): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9353) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useMutationState.test.tsx | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/packages/react-query/src/__tests__/useMutationState.test.tsx b/packages/react-query/src/__tests__/useMutationState.test.tsx index 5797172030..186821de59 100644 --- a/packages/react-query/src/__tests__/useMutationState.test.tsx +++ b/packages/react-query/src/__tests__/useMutationState.test.tsx @@ -62,12 +62,12 @@ describe('useIsMutating', () => { // [ +0, 1, 2, 1, +0 ] // our batching strategy might yield different results - await vi.waitFor(() => expect(isMutatingArray[0]).toEqual(0)) - await vi.waitFor(() => expect(isMutatingArray[1]).toEqual(1)) - await vi.waitFor(() => expect(isMutatingArray[2]).toEqual(2)) - await vi.waitFor(() => - expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0), - ) + await vi.advanceTimersByTimeAsync(40) + expect(isMutatingArray[0]).toEqual(0) + expect(isMutatingArray[1]).toEqual(1) + expect(isMutatingArray[2]).toEqual(2) + await vi.advanceTimersByTimeAsync(1) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) }) it('should filter correctly by mutationKey', async () => { @@ -99,7 +99,8 @@ describe('useIsMutating', () => { } renderWithClient(queryClient, ) - await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.advanceTimersByTimeAsync(101) + expect(isMutatingArray).toEqual([0, 1, 0]) }) it('should filter correctly by predicate', async () => { @@ -134,7 +135,8 @@ describe('useIsMutating', () => { } renderWithClient(queryClient, ) - await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.advanceTimersByTimeAsync(101) + expect(isMutatingArray).toEqual([0, 1, 0]) }) it('should use provided custom queryClient', async () => { @@ -163,13 +165,20 @@ describe('useIsMutating', () => { const rendered = render() - await vi.waitFor(() => - expect(rendered.getByText('mutating: 1')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('mutating: 1')).toBeInTheDocument() }) }) describe('useMutationState', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('should return variables after calling mutate', async () => { const queryClient = new QueryClient() const variables: Array> = [] @@ -211,11 +220,12 @@ describe('useMutationState', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: null')) + rendered.getByText('data: null') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => rendered.getByText('data: data1')) + await vi.advanceTimersByTimeAsync(151) + rendered.getByText('data: data1') expect(variables).toEqual([[], [1], []]) }) From 03aca2e762e28ca85e45b0eb0a28e6877fb31f3c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 00:09:59 +0900 Subject: [PATCH 206/432] ci(.github/workflows/autofix): use 'pnpm run' for prettier script for consistency (#9348) Co-authored-by: Jonghyeon Ko --- .github/workflows/autofix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index fb1f2ae0ae..98be6a30a5 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -22,7 +22,7 @@ jobs: - name: Setup Tools uses: tanstack/config/.github/setup@main - name: Fix formatting - run: pnpm prettier:write + run: pnpm run prettier:write - name: Apply fixes uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 with: From 67695efb0412d4c1b6bbeb799bfac58f6496177c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 00:19:34 +0900 Subject: [PATCH 207/432] test(react-query/useIsFetching): remove 'vi.waitFor', add 'advanceTimersByTimeAsync' and replace 'findByText' with 'getByText' (#9358) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsFetching.test.tsx | 66 ++++++++----------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/packages/react-query/src/__tests__/useIsFetching.test.tsx b/packages/react-query/src/__tests__/useIsFetching.test.tsx index 4b2ca7e0f6..f2af2d27aa 100644 --- a/packages/react-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/react-query/src/__tests__/useIsFetching.test.tsx @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' -import { queryKey } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, useIsFetching, useQuery } from '..' import { renderWithClient, setActTimeout } from './utils' @@ -31,7 +31,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key, queryFn: async () => { - await vi.advanceTimersByTimeAsync(50) + await sleep(50) return 'test' }, enabled: ready, @@ -51,19 +51,15 @@ describe('useIsFetching', () => { const { getByText, getByRole } = renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(getByText('isFetching: 0')).toBeInTheDocument() - }) + expect(getByText('isFetching: 0')).toBeInTheDocument() fireEvent.click(getByRole('button', { name: /setReady/i })) - await vi.waitFor(() => { - expect(getByText('isFetching: 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(getByText('isFetching: 1')).toBeInTheDocument() - await vi.waitFor(() => { - expect(getByText('isFetching: 0')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(51) + expect(getByText('isFetching: 0')).toBeInTheDocument() }) it('should not update state while rendering', async () => { @@ -85,7 +81,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key1, queryFn: async () => { - await vi.advanceTimersByTimeAsync(100) + await sleep(100) return 'data' }, }) @@ -96,7 +92,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key2, queryFn: async () => { - await vi.advanceTimersByTimeAsync(100) + await sleep(100) return 'data' }, }) @@ -123,9 +119,8 @@ describe('useIsFetching', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(isFetchingArray).toEqual([0, 1, 1, 2, 1, 0]) - }) + await vi.advanceTimersByTimeAsync(151) + expect(isFetchingArray).toEqual([0, 1, 1, 2, 1, 0]) }) it('should be able to filter', async () => { @@ -139,7 +134,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key1, queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'test' }, }) @@ -150,7 +145,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key2, queryFn: async () => { - await vi.advanceTimersByTimeAsync(20) + await sleep(20) return 'test' }, }) @@ -177,21 +172,17 @@ describe('useIsFetching', () => { ) } - const { findByText, getByRole } = renderWithClient(queryClient, ) + const { getByText, getByRole } = renderWithClient(queryClient, ) - await vi.waitFor(() => { - findByText('isFetching: 0') - }) + getByText('isFetching: 0') fireEvent.click(getByRole('button', { name: /setStarted/i })) - await vi.waitFor(() => { - findByText('isFetching: 1') - }) + await vi.advanceTimersByTimeAsync(0) + getByText('isFetching: 1') - await vi.waitFor(() => { - findByText('isFetching: 0') - }) + await vi.advanceTimersByTimeAsync(11) + getByText('isFetching: 0') // at no point should we have isFetching: 2 expect(isFetchingArray).toEqual(expect.not.arrayContaining([2])) @@ -205,7 +196,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key, queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'test' }, }) @@ -221,13 +212,11 @@ describe('useIsFetching', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - await vi.waitFor(() => { - expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) it('should use provided custom queryClient', async () => { @@ -239,7 +228,7 @@ describe('useIsFetching', () => { { queryKey: key, queryFn: async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'test' }, }, @@ -257,8 +246,7 @@ describe('useIsFetching', () => { const rendered = render() - await vi.waitFor(() => { - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() }) }) From 058c1eb77058df8b1b0beb9dfc40630ed3d6c0a0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 00:25:36 +0900 Subject: [PATCH 208/432] test(react-query/QueryClientProvider): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9345) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/QueryClientProvider.test.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx index ebf599c1a4..3e2bfff2b1 100644 --- a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx @@ -43,7 +43,8 @@ describe('QueryClientProvider', () => { , ) - await vi.waitFor(() => rendered.getByText('test')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('test') expect(queryCache.find({ queryKey: key })).toBeDefined() }) @@ -94,8 +95,9 @@ describe('QueryClientProvider', () => { , ) - await vi.waitFor(() => rendered.getByText('test1')) - await vi.waitFor(() => rendered.getByText('test2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('test1') + rendered.getByText('test2') expect(queryCache1.find({ queryKey: key1 })).toBeDefined() expect(queryCache1.find({ queryKey: key2 })).not.toBeDefined() @@ -135,7 +137,8 @@ describe('QueryClientProvider', () => { , ) - await vi.waitFor(() => rendered.getByText('test')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('test') expect(queryCache.find({ queryKey: key })).toBeDefined() expect(queryCache.find({ queryKey: key })?.options.gcTime).toBe(Infinity) From 026c050c581ad1b1246ecb5cccac04952ffe88a2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 00:45:08 +0900 Subject: [PATCH 209/432] test(react-query/useInfiniteQuery): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9359) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useInfiniteQuery.test.tsx | 168 ++++++++++-------- 1 file changed, 89 insertions(+), 79 deletions(-) diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index e114642019..26de8f3335 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@testing-library/react' import * as React from 'react' import { createRenderStream, @@ -46,6 +46,14 @@ const fetchItems = async ( } describe('useInfiniteQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache, @@ -73,7 +81,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toEqual({ @@ -186,7 +194,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await waitFor(() => expect(noThrow).toBe(true)) + await vi.waitFor(() => expect(noThrow).toBe(true)) }) it('should keep the previous data when placeholderData is set', async () => { @@ -222,15 +230,15 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0-desc')) + await vi.waitFor(() => rendered.getByText('data: 0-desc')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('data: 0-desc,1-desc')) + await vi.waitFor(() => rendered.getByText('data: 0-desc,1-desc')) fireEvent.click(rendered.getByRole('button', { name: /order/i })) - await waitFor(() => rendered.getByText('data: 0-asc')) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(6)) + await vi.waitFor(() => rendered.getByText('data: 0-asc')) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(6)) expect(states[0]).toMatchObject({ data: undefined, @@ -299,7 +307,7 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('count: 1') }) @@ -348,7 +356,7 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('count: 1') }) @@ -397,12 +405,12 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('data: 1,0')) + await vi.waitFor(() => rendered.getByText('data: 1,0')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => expect(states.length).toBe(4)) expect(states[0]).toMatchObject({ data: undefined, isSuccess: false, @@ -453,7 +461,7 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data: 10') }) @@ -461,7 +469,7 @@ describe('useInfiniteQuery', () => { rendered.getByRole('button', { name: /fetch previous page/i }), ) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('data: 9,10') }) @@ -538,18 +546,18 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('data: 10,11')) + await vi.waitFor(() => rendered.getByText('data: 10,11')) fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) - await waitFor(() => rendered.getByText('data: 9,10,11')) + await vi.waitFor(() => rendered.getByText('data: 9,10,11')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(8)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(8)) // Initial fetch expect(states[0]).toMatchObject({ @@ -656,11 +664,11 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(4)) // Initial fetch expect(states[0]).toMatchObject({ @@ -743,11 +751,11 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(4)) // Initial fetch expect(states[0]).toMatchObject({ @@ -832,13 +840,13 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(4)) // Initial fetch expect(states[0]).toMatchObject({ @@ -916,27 +924,27 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('status: success, idle')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('data: {"pages":[10],"pageParams":[10]}'), ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('status: success, fetching'), ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('status: success, idle')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('data: {"pages":[10,11],"pageParams":[10,11]}'), ).toBeInTheDocument(), @@ -983,7 +991,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(300) + await vi.advanceTimersByTimeAsync(300) const expectedCallCount = 3 expect(fetchPage).toBeCalledTimes(expectedCallCount) @@ -1059,7 +1067,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(300) + await vi.advanceTimersByTimeAsync(300) const expectedCallCount = 2 expect(fetchPage).toBeCalledTimes(expectedCallCount) @@ -1117,7 +1125,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1174,7 +1182,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(300) + await vi.advanceTimersByTimeAsync(300) expect(fetches).toBe(2) expect(queryClient.getQueryState(key)).toMatchObject({ @@ -1223,7 +1231,7 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('data: {"pages":[0],"pageParams":[0]}'), ).toBeInTheDocument(), @@ -1231,7 +1239,7 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /setPages/i })) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('data: {"pages":[7,8],"pageParams":[7,8]}'), ).toBeInTheDocument(), @@ -1241,7 +1249,7 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('data: {"pages":[14,30],"pageParams":[7,15]}'), ).toBeInTheDocument(), @@ -1249,6 +1257,8 @@ describe('useInfiniteQuery', () => { }) it('should only refetch the first page when initialData is provided', async () => { + vi.useRealTimers() + const key = queryKey() const renderStream = @@ -1345,7 +1355,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1384,7 +1394,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1423,7 +1433,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1465,7 +1475,7 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1576,31 +1586,31 @@ describe('useInfiniteQuery', () => { rendered.getByText('Loading...') - await waitFor(() => rendered.getByText('Item: 2')) - await waitFor(() => rendered.getByText('Page 0: 0')) + await vi.waitFor(() => rendered.getByText('Item: 2')) + await vi.waitFor(() => rendered.getByText('Page 0: 0')) fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) - await waitFor(() => rendered.getByText('Item: 5')) - await waitFor(() => rendered.getByText('Page 0: 0')) - await waitFor(() => rendered.getByText('Page 1: 1')) + await vi.waitFor(() => rendered.getByText('Loading more...')) + await vi.waitFor(() => rendered.getByText('Item: 5')) + await vi.waitFor(() => rendered.getByText('Page 0: 0')) + await vi.waitFor(() => rendered.getByText('Page 1: 1')) fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) - await waitFor(() => rendered.getByText('Item: 8')) - await waitFor(() => rendered.getByText('Page 0: 0')) - await waitFor(() => rendered.getByText('Page 1: 1')) - await waitFor(() => rendered.getByText('Page 2: 2')) + await vi.waitFor(() => rendered.getByText('Loading more...')) + await vi.waitFor(() => rendered.getByText('Item: 8')) + await vi.waitFor(() => rendered.getByText('Page 0: 0')) + await vi.waitFor(() => rendered.getByText('Page 1: 1')) + await vi.waitFor(() => rendered.getByText('Page 2: 2')) fireEvent.click(rendered.getByText('Refetch')) - await waitFor(() => rendered.getByText('Background Updating...')) - await waitFor(() => rendered.getByText('Item: 8')) - await waitFor(() => rendered.getByText('Page 0: 3')) - await waitFor(() => rendered.getByText('Page 1: 4')) - await waitFor(() => rendered.getByText('Page 2: 5')) + await vi.waitFor(() => rendered.getByText('Background Updating...')) + await vi.waitFor(() => rendered.getByText('Item: 8')) + await vi.waitFor(() => rendered.getByText('Page 0: 3')) + await vi.waitFor(() => rendered.getByText('Page 1: 4')) + await vi.waitFor(() => rendered.getByText('Page 2: 5')) // ensure that Item: 4 is rendered before removing it expect(rendered.queryAllByText('Item: 4')).toHaveLength(1) @@ -1608,12 +1618,12 @@ describe('useInfiniteQuery', () => { // remove Item: 4 fireEvent.click(rendered.getByText('Remove item')) - await waitFor(() => rendered.getByText('Background Updating...')) + await vi.waitFor(() => rendered.getByText('Background Updating...')) // ensure that an additional item is rendered (it means that cursors were properly rebuilt) - await waitFor(() => rendered.getByText('Item: 9')) - await waitFor(() => rendered.getByText('Page 0: 6')) - await waitFor(() => rendered.getByText('Page 1: 7')) - await waitFor(() => rendered.getByText('Page 2: 8')) + await vi.waitFor(() => rendered.getByText('Item: 9')) + await vi.waitFor(() => rendered.getByText('Page 0: 6')) + await vi.waitFor(() => rendered.getByText('Page 1: 7')) + await vi.waitFor(() => rendered.getByText('Page 2: 8')) // ensure that Item: 4 is no longer rendered expect(rendered.queryAllByText('Item: 4')).toHaveLength(0) @@ -1701,16 +1711,16 @@ describe('useInfiniteQuery', () => { rendered.getByText('Loading...') - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Item: 9') rendered.getByText('Page 0: 0') }) fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) + await vi.waitFor(() => rendered.getByText('Loading more...')) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Item: 19') rendered.getByText('Page 0: 0') rendered.getByText('Page 1: 1') @@ -1718,9 +1728,9 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) + await vi.waitFor(() => rendered.getByText('Loading more...')) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Item: 29') rendered.getByText('Page 0: 0') rendered.getByText('Page 1: 1') @@ -1731,13 +1741,11 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByText('Remove Last Page')) - await sleep(10) - fireEvent.click(rendered.getByText('Refetch')) - await waitFor(() => rendered.getByText('Background Updating...')) + await vi.waitFor(() => rendered.getByText('Background Updating...')) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Page 0: 3') rendered.getByText('Page 1: 4') }) @@ -1790,11 +1798,11 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('visible')) + await vi.waitFor(() => rendered.getByText('visible')) fireEvent.click(rendered.getByRole('button', { name: 'hide' })) - await waitFor(() => rendered.getByText('hidden')) + await vi.waitFor(() => rendered.getByText('hidden')) expect(cancelFn).toHaveBeenCalled() }) @@ -1821,12 +1829,14 @@ describe('useInfiniteQuery', () => { const rendered = render() - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data: custom client')).toBeInTheDocument(), ) }) it('should work with React.use()', async () => { + vi.useRealTimers() + const key = queryKey() const renderStream = createRenderStream({ snapshotDOM: true }) From ed66939ff7089b16f80009f37a02e0a68ff95193 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 00:50:04 +0900 Subject: [PATCH 210/432] test(react-query/useSuspenseQuery): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9357) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useSuspenseQuery.test.tsx | 122 ++++++++++-------- 1 file changed, 70 insertions(+), 52 deletions(-) diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index 27d3d5a5ca..790719c241 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -20,6 +20,14 @@ import type { } from '..' describe('useSuspenseQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -61,10 +69,10 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) expect(renders).toBe(6) expect(states.length).toBe(2) @@ -104,7 +112,7 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) expect(states.length).toBe(1) expect(states[0]).toMatchObject({ @@ -113,7 +121,7 @@ describe('useSuspenseQuery', () => { }) fireEvent.click(rendered.getByText('next')) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) expect(states.length).toBe(2) expect(states[1]).toMatchObject({ @@ -144,7 +152,7 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -184,7 +192,7 @@ describe('useSuspenseQuery', () => { expect(queryCache.find({ queryKey: key })).toBeFalsy() fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(1) @@ -249,15 +257,15 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => rendered.getByText('Loading...')) + await vi.waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), @@ -317,21 +325,25 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -368,8 +380,8 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('Loading...')) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('Loading...')) + await vi.waitFor(() => rendered.getByText('data: 1')) expect( typeof queryClient.getQueryCache().find({ queryKey: key })?.observers[0] @@ -414,17 +426,17 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument(), ) fireEvent.click(rendered.getByText('switch')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument(), ) }) @@ -480,21 +492,25 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -536,10 +552,10 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -583,10 +599,10 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -647,16 +663,16 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) // render suspense fallback (Loading...) - await waitFor(() => rendered.getByText('Loading...')) + await vi.waitFor(() => rendered.getByText('Loading...')) // resolve promise -> render Page (rendered) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) // change query key succeed = false // reset query -> and throw error fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) @@ -718,16 +734,16 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) // render suspense fallback (Loading...) - await waitFor(() => rendered.getByText('Loading...')) + await vi.waitFor(() => rendered.getByText('Loading...')) // resolve promise -> render Page (rendered) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) // change promise result to error succeed = false // change query key fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) @@ -769,7 +785,7 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(state).toMatchObject({ data: 1, status: 'success', @@ -777,7 +793,9 @@ describe('useSuspenseQuery', () => { ) expect(renders).toBe(3) - await waitFor(() => expect(rendered.queryByText('rendered')).not.toBeNull()) + await vi.waitFor(() => + expect(rendered.queryByText('rendered')).not.toBeNull(), + ) }) it('should not throw background errors to the error boundary', async () => { @@ -828,11 +846,11 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) // render suspense fallback (Loading...) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) // resolve promise -> render Page (rendered) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered data success')).toBeInTheDocument(), ) @@ -841,7 +859,7 @@ describe('useSuspenseQuery', () => { // refetch fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) // we are now in error state but still have data to show - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered data error')).toBeInTheDocument(), ) @@ -889,18 +907,18 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('loading')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data: 1')).toBeInTheDocument(), ) fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('loading')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data: 2')).toBeInTheDocument(), ) }) @@ -961,9 +979,9 @@ describe('useSuspenseQuery', () => { , ) - await waitFor(() => rendered.getByText('count: 1')) - await waitFor(() => rendered.getByText('count: 2')) - await waitFor(() => rendered.getByText('count: 3')) + await vi.waitFor(() => rendered.getByText('count: 1')) + await vi.waitFor(() => rendered.getByText('count: 2')) + await vi.waitFor(() => rendered.getByText('count: 3')) expect(count).toBeGreaterThanOrEqual(3) }) From ac2fa17f989855530461b01a01eec23f93bac3a6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 01:00:58 +0900 Subject: [PATCH 211/432] test(react-query/QueryResetErrorBoundary): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9349) Co-authored-by: Jonghyeon Ko --- .../QueryResetErrorBoundary.test.tsx | 93 ++++++++++--------- 1 file changed, 51 insertions(+), 42 deletions(-) diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index 8bc5dd9923..e9dab4e489 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent } from '@testing-library/react' import { ErrorBoundary } from 'react-error-boundary' import * as React from 'react' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -15,6 +15,14 @@ import { import { renderWithClient } from './utils' describe('QueryErrorResetBoundary', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -69,15 +77,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -139,15 +147,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('status: error')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -211,15 +219,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -277,13 +285,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect( rendered.getByText('status: pending, fetchStatus: idle'), ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -339,15 +347,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -405,15 +413,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -475,21 +483,21 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) shouldReset = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) succeed = true shouldReset = false fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) consoleMock.mockRestore() }) @@ -540,13 +548,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('error boundary')) expect(fetchCount).toBe(3) consoleMock.mockRestore() }) @@ -605,13 +613,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('error boundary')) - await waitFor(() => rendered.getByText('retry')) + await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.waitFor(() => rendered.getByText('retry')) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => rendered.getByText('data')) + await vi.waitFor(() => rendered.getByText('data')) expect(fetchCount).toBe(3) expect(renders).toBe(1) consoleMock.mockRestore() @@ -692,20 +700,21 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() }) }) + describe('useQueries', () => { it('should retry fetch if the reset error boundary has been reset', async () => { const consoleMock = vi @@ -762,15 +771,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() @@ -832,15 +841,15 @@ describe('QueryErrorResetBoundary', () => { , ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument(), ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data')).toBeInTheDocument(), ) consoleMock.mockRestore() From d449f6f367a4ce7f1a791b9c046cb26036c6b3b3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 17:55:58 +0900 Subject: [PATCH 212/432] test(react-query/usePrefetchInfiniteQuery): switch to fake timers, remove 'waitFor' and add 'advanceTimersByTimeAsync' (#9354) Co-authored-by: Jonghyeon Ko --- .../usePrefetchInfiniteQuery.test.tsx | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx index fabb410842..0f5a381df8 100644 --- a/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchInfiniteQuery.test.tsx @@ -1,6 +1,6 @@ -import { describe, expect, it, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import React from 'react' -import { fireEvent, waitFor } from '@testing-library/react' +import { act, fireEvent } from '@testing-library/react' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, @@ -40,6 +40,14 @@ const generateInfiniteQueryOptions = ( } describe('usePrefetchInfiniteQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -98,20 +106,19 @@ describe('usePrefetchInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: Do you fetch on render?')) + await act(() => vi.advanceTimersByTimeAsync(31)) + rendered.getByText('data: Do you fetch on render?') fireEvent.click(rendered.getByText('Next Page')) - await waitFor(() => - rendered.getByText('data: Or do you render as you fetch?'), - ) + rendered.getByText('data: Or do you render as you fetch?') fireEvent.click(rendered.getByText('Next Page')) - await waitFor(() => - rendered.getByText('data: Either way, Tanstack Query helps you!'), - ) + rendered.getByText('data: Either way, Tanstack Query helps you!') expect(Fallback).toHaveBeenCalledTimes(1) expect(queryOpts.queryFn).toHaveBeenCalledTimes(3) }) it('should not display fallback if the query cache is already populated', async () => { + vi.useRealTimers() + const queryOpts = { queryKey: queryKey(), ...generateInfiniteQueryOptions([ @@ -139,11 +146,11 @@ describe('usePrefetchInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: Prefetch rocks!')) + rendered.getByText('data: Prefetch rocks!') fireEvent.click(rendered.getByText('Next Page')) - await waitFor(() => rendered.getByText('data: No waterfalls, boy!')) + rendered.getByText('data: No waterfalls, boy!') fireEvent.click(rendered.getByText('Next Page')) - await waitFor(() => rendered.getByText('data: Tanstack Query #ftw')) + rendered.getByText('data: Tanstack Query #ftw') expect(queryOpts.queryFn).not.toHaveBeenCalled() expect(Fallback).not.toHaveBeenCalled() }) @@ -177,11 +184,15 @@ describe('usePrefetchInfiniteQuery', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: Infinite Page 1')) + + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: Infinite Page 1') fireEvent.click(rendered.getByText('Next Page')) - await waitFor(() => rendered.getByText('data: Infinite Page 2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: Infinite Page 2') fireEvent.click(rendered.getByText('Next Page')) - await waitFor(() => rendered.getByText('data: Infinite Page 3')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: Infinite Page 3') expect(queryOpts.queryFn).toHaveBeenCalledTimes(3) }) }) From 0907dabbf24670f5b88aaef8897b8f61436df12e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 18:01:43 +0900 Subject: [PATCH 213/432] test(react-query/QueryResetErrorBoundary): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9365) Co-authored-by: Jonghyeon Ko --- .../QueryResetErrorBoundary.test.tsx | 170 +++++++----------- 1 file changed, 69 insertions(+), 101 deletions(-) diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index e9dab4e489..d47e79baa6 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { fireEvent } from '@testing-library/react' +import { act, fireEvent } from '@testing-library/react' import { ErrorBoundary } from 'react-error-boundary' import * as React from 'react' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -77,17 +77,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('data')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -147,17 +143,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('status: error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('status: error')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -219,17 +211,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('data')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -285,15 +273,12 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect( - rendered.getByText('status: pending, fetchStatus: idle'), - ).toBeInTheDocument(), - ) + expect( + rendered.getByText('status: pending, fetchStatus: idle'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -347,17 +332,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -413,17 +394,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('data')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -483,21 +460,18 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() shouldReset = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() succeed = true shouldReset = false fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error boundary') consoleMock.mockRestore() }) @@ -548,13 +522,16 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => rendered.getByText('error boundary')) - await vi.waitFor(() => rendered.getByText('retry')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error boundary') + rendered.getByText('retry') fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => rendered.getByText('error boundary')) - await vi.waitFor(() => rendered.getByText('retry')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error boundary') + rendered.getByText('retry') fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => rendered.getByText('error boundary')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error boundary') expect(fetchCount).toBe(3) consoleMock.mockRestore() }) @@ -613,13 +590,16 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => rendered.getByText('error boundary')) - await vi.waitFor(() => rendered.getByText('retry')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('error boundary') + rendered.getByText('retry') fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => rendered.getByText('error boundary')) - await vi.waitFor(() => rendered.getByText('retry')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('error boundary') + rendered.getByText('retry') fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => rendered.getByText('data')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data') expect(fetchCount).toBe(3) expect(renders).toBe(1) consoleMock.mockRestore() @@ -700,17 +680,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('data')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() consoleMock.mockRestore() }) }) @@ -771,17 +747,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('data')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -841,17 +813,13 @@ describe('QueryErrorResetBoundary', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('data')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('data')).toBeInTheDocument() consoleMock.mockRestore() }) }) From ed8cc23454f8f5a2546d771105fbe2e78ab3b1bf Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 6 Jul 2025 18:11:00 +0900 Subject: [PATCH 214/432] test(react-query/useSuspenseQuery): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9364) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useSuspenseQuery.test.tsx | 203 ++++++++---------- 1 file changed, 87 insertions(+), 116 deletions(-) diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx index 790719c241..7b1712b3e9 100644 --- a/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQuery.test.tsx @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { fireEvent } from '@testing-library/react' +import { act, fireEvent } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -69,10 +69,12 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('data: 1')) - fireEvent.click(rendered.getByLabelText('toggle')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: 1') - await vi.waitFor(() => rendered.getByText('data: 2')) + fireEvent.click(rendered.getByLabelText('toggle')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: 2') expect(renders).toBe(6) expect(states.length).toBe(2) @@ -112,7 +114,8 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('data: 1')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: 1') expect(states.length).toBe(1) expect(states[0]).toMatchObject({ @@ -121,7 +124,8 @@ describe('useSuspenseQuery', () => { }) fireEvent.click(rendered.getByText('next')) - await vi.waitFor(() => rendered.getByText('data: 2')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: 2') expect(states.length).toBe(2) expect(states[1]).toMatchObject({ @@ -152,7 +156,8 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('rendered')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('rendered') expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -192,12 +197,13 @@ describe('useSuspenseQuery', () => { expect(queryCache.find({ queryKey: key })).toBeFalsy() fireEvent.click(rendered.getByLabelText('toggle')) - await vi.waitFor(() => rendered.getByText('rendered')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('rendered') expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(1) fireEvent.click(rendered.getByLabelText('toggle')) - + await act(() => vi.advanceTimersByTimeAsync(11)) expect(rendered.queryByText('rendered')).toBeNull() expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(0) }) @@ -257,15 +263,13 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('Loading...')) - - await vi.waitFor(() => rendered.getByText('error boundary')) - - await vi.waitFor(() => rendered.getByText('retry')) - + rendered.getByText('Loading...') + await act(() => vi.advanceTimersByTimeAsync(71)) + rendered.getByText('error boundary') + rendered.getByText('retry') fireEvent.click(rendered.getByText('retry')) - - await vi.waitFor(() => rendered.getByText('rendered')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('rendered') expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), @@ -325,27 +329,18 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(71)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(71)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('rendered')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -380,8 +375,9 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Loading...')) - await vi.waitFor(() => rendered.getByText('data: 1')) + rendered.getByText('Loading...') + await act(() => vi.advanceTimersByTimeAsync(6)) + rendered.getByText('data: 1') expect( typeof queryClient.getQueryCache().find({ queryKey: key })?.observers[0] @@ -426,16 +422,12 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(101)) + expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument() fireEvent.click(rendered.getByText('switch')) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(101)) await vi.waitFor(() => expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument(), ) @@ -492,27 +484,18 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(71)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(71)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() succeed = true fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('rendered')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -552,12 +535,9 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(71)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -599,12 +579,9 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -663,16 +640,18 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) // render suspense fallback (Loading...) - await vi.waitFor(() => rendered.getByText('Loading...')) + rendered.getByText('Loading...') // resolve promise -> render Page (rendered) - await vi.waitFor(() => rendered.getByText('rendered')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('rendered') // change query key succeed = false // reset query -> and throw error fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await vi.waitFor(() => rendered.getByText('error boundary')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('error boundary') expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) @@ -734,16 +713,18 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) // render suspense fallback (Loading...) - await vi.waitFor(() => rendered.getByText('Loading...')) + rendered.getByText('Loading...') // resolve promise -> render Page (rendered) - await vi.waitFor(() => rendered.getByText('rendered')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('rendered') // change promise result to error succeed = false // change query key fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await vi.waitFor(() => rendered.getByText('error boundary')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('error boundary') expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) @@ -785,17 +766,13 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => - expect(state).toMatchObject({ - data: 1, - status: 'success', - }), - ) - + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(state).toMatchObject({ + data: 1, + status: 'success', + }) expect(renders).toBe(3) - await vi.waitFor(() => - expect(rendered.queryByText('rendered')).not.toBeNull(), - ) + expect(rendered.queryByText('rendered')).not.toBeNull() }) it('should not throw background errors to the error boundary', async () => { @@ -846,22 +823,18 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) // render suspense fallback (Loading...) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() // resolve promise -> render Page (rendered) - await vi.waitFor(() => - expect(rendered.getByText('rendered data success')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('rendered data success')).toBeInTheDocument() // change promise result to error succeed = false // refetch fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) // we are now in error state but still have data to show - await vi.waitFor(() => - expect(rendered.getByText('rendered data error')).toBeInTheDocument(), - ) + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('rendered data error')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -907,20 +880,15 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('loading')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('data: 1')).toBeInTheDocument(), - ) + + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(101)) + expect(rendered.getByText('data: 1')).toBeInTheDocument() fireEvent.click(rendered.getByLabelText('toggle')) - await vi.waitFor(() => - expect(rendered.getByText('loading')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('data: 2')).toBeInTheDocument(), - ) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(101)) + expect(rendered.getByText('data: 2')).toBeInTheDocument() }) it('should log an error when skipToken is passed as queryFn', () => { @@ -979,9 +947,12 @@ describe('useSuspenseQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('count: 1')) - await vi.waitFor(() => rendered.getByText('count: 2')) - await vi.waitFor(() => rendered.getByText('count: 3')) + await act(() => vi.advanceTimersByTimeAsync(2)) + rendered.getByText('count: 1') + await act(() => vi.advanceTimersByTimeAsync(12)) + rendered.getByText('count: 2') + await act(() => vi.advanceTimersByTimeAsync(12)) + rendered.getByText('count: 3') expect(count).toBeGreaterThanOrEqual(3) }) From f3cbfc51dad71eeeef28a3a72496df5ffd63c9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9A=B0=EB=B9=88?= <102154880+Ubinquitous@users.noreply.github.com> Date: Wed, 9 Jul 2025 23:59:41 +0900 Subject: [PATCH 215/432] feat(react-query): add mutationOptions (#8960) * feat(react-query): add mutationOptions * test(react-query): add DataTag test case * fix(react-query): remove unnecessary types from mutation * fix(react-query): remove unncessary type overload * chore(react-query): add mutationOptions to barrel file * fix(react-query): fix test eslint issue * docs(react-query): add more examples * test(react-query): add more test cases * chore(react-query): Change mutaitonKey to required * fix(react-query): fix test code type error * test(react-query): add testcase when used with other mutation util * fix(react-query): fix error test code and avoid use deprecateed method * fix(react-query): fix error test code and avoid use deprecateed method * fix(react-query): fix import detect error * fix(react-query): fix import detect error * fix(react-query): add function overload * test(react-query): fix mutation options test code * Update docs/framework/react/typescript.md * Update docs/framework/react/reference/mutationOptions.md * Update docs/framework/react/typescript.md * fix: update mutationOptions type definition to allow optional mutationKey with restricting filter when mutationKey wasn't passed * ci: apply automated fixes * chore: add Nick-Lucas as co-author Co-authored-by: Nick Lucas <8896153+Nick-Lucas@users.noreply.github.com> * test(react-query): fix test code and add used with useMutation without mutationKey * Update packages/react-query/src/__tests__/mutationOptions.test-d.tsx * docs: add mutationOptions to sidebar config --------- Co-authored-by: Dominik Dorfmeister Co-authored-by: Jonghyeon Ko Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Nick Lucas <8896153+Nick-Lucas@users.noreply.github.com> --- docs/config.json | 4 + .../react/reference/mutationOptions.md | 15 ++ docs/framework/react/typescript.md | 20 ++ .../src/__tests__/mutationOptions.test-d.tsx | 194 ++++++++++++++++++ .../src/__tests__/mutationOptions.test.tsx | 128 ++++++++++++ packages/react-query/src/index.ts | 1 + packages/react-query/src/mutationOptions.ts | 38 ++++ 7 files changed, 400 insertions(+) create mode 100644 docs/framework/react/reference/mutationOptions.md create mode 100644 packages/react-query/src/__tests__/mutationOptions.test-d.tsx create mode 100644 packages/react-query/src/__tests__/mutationOptions.test.tsx create mode 100644 packages/react-query/src/mutationOptions.ts diff --git a/docs/config.json b/docs/config.json index e09f9d1de9..8c2b4dcf3c 100644 --- a/docs/config.json +++ b/docs/config.json @@ -819,6 +819,10 @@ "label": "infiniteQueryOptions", "to": "framework/react/reference/infiniteQueryOptions" }, + { + "label": "mutationOptions", + "to": "framework/react/reference/mutationOptions" + }, { "label": "usePrefetchQuery", "to": "framework/react/reference/usePrefetchQuery" diff --git a/docs/framework/react/reference/mutationOptions.md b/docs/framework/react/reference/mutationOptions.md new file mode 100644 index 0000000000..6e1a6c9bdc --- /dev/null +++ b/docs/framework/react/reference/mutationOptions.md @@ -0,0 +1,15 @@ +--- +id: mutationOptions +title: mutationOptions +--- + +```tsx +mutationOptions({ + mutationFn, + ...options, +}) +``` + +**Options** + +You can generally pass everything to `mutationOptions` that you can also pass to [`useMutation`](../useMutation.md). diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md index 259ada640e..e362797d50 100644 --- a/docs/framework/react/typescript.md +++ b/docs/framework/react/typescript.md @@ -239,6 +239,26 @@ const data = queryClient.getQueryData(['groups']) [//]: # 'TypingQueryOptions' [//]: # 'Materials' +## Typing Mutation Options + +Similarly to `queryOptions`, you can use `mutationOptions` to extract mutation options into a separate function: + +```ts +function groupMutationOptions() { + return mutationOptions({ + mutationKey: ['addGroup'], + mutationFn: addGroup, + }) +} + +useMutation({ + ...groupMutationOptions() + onSuccess: () => queryClient.invalidateQueries({ queryKey: ['groups'] }) +}) +useIsMutating(groupMutationOptions()) +queryClient.isMutating(groupMutationOptions()) +``` + ## Further Reading For tips and tricks around type inference, have a look at [React Query and TypeScript](../community/tkdodos-blog.md#6-react-query-and-typescript) from diff --git a/packages/react-query/src/__tests__/mutationOptions.test-d.tsx b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx new file mode 100644 index 0000000000..21373fec31 --- /dev/null +++ b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx @@ -0,0 +1,194 @@ +import { assertType, describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { useIsMutating, useMutation, useMutationState } from '..' +import { mutationOptions } from '../mutationOptions' +import type { + DefaultError, + MutationState, + WithRequired, +} from '@tanstack/query-core' +import type { UseMutationOptions, UseMutationResult } from '../types' + +describe('mutationOptions', () => { + it('should not allow excess properties', () => { + // @ts-expect-error this is a good error, because onMutates does not exist! + mutationOptions({ + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onMutates: 1000, + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }) + }) + + it('should infer types for callbacks', () => { + mutationOptions({ + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }) + }) + + it('should infer types for onError callback', () => { + mutationOptions({ + mutationFn: () => { + throw new Error('fail') + }, + mutationKey: ['key'], + onError: (error) => { + expectTypeOf(error).toEqualTypeOf() + }, + }) + }) + + it('should infer types for variables', () => { + mutationOptions({ + mutationFn: (vars) => { + expectTypeOf(vars).toEqualTypeOf<{ id: string }>() + return Promise.resolve(5) + }, + mutationKey: ['with-vars'], + }) + }) + + it('should infer context type correctly', () => { + mutationOptions({ + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onMutate: () => { + return { name: 'context' } + }, + onSuccess: (_data, _variables, context) => { + expectTypeOf(context).toEqualTypeOf<{ name: string }>() + }, + }) + }) + + it('should error if mutationFn return type mismatches TData', () => { + assertType( + mutationOptions({ + // @ts-expect-error this is a good error, because return type is string, not number + mutationFn: async () => Promise.resolve('wrong return'), + }), + ) + }) + + it('should allow mutationKey to be omitted', () => { + return mutationOptions({ + mutationFn: () => Promise.resolve(123), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }) + }) + + it('should infer all types when not explicitly provided', () => { + expectTypeOf( + mutationOptions({ + mutationFn: (id: string) => Promise.resolve(id.length), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ).toEqualTypeOf< + WithRequired< + UseMutationOptions, + 'mutationKey' + > + >() + expectTypeOf( + mutationOptions({ + mutationFn: (id: string) => Promise.resolve(id.length), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ).toEqualTypeOf< + Omit, 'mutationKey'> + >() + }) + + it('should infer types when used with useMutation', () => { + const mutation = useMutation( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ) + expectTypeOf(mutation).toEqualTypeOf< + UseMutationResult + >() + + useMutation( + // should allow when used with useMutation without mutationKey + mutationOptions({ + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ) + }) + + it('should infer types when used with useIsMutating', () => { + const isMutating = useIsMutating( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + ) + expectTypeOf(isMutating).toEqualTypeOf() + + useIsMutating( + // @ts-expect-error filters should have mutationKey + mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + ) + }) + + it('should infer types when used with queryClient.isMutating', () => { + const queryClient = new QueryClient() + + const isMutating = queryClient.isMutating( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + ) + expectTypeOf(isMutating).toEqualTypeOf() + + queryClient.isMutating( + // @ts-expect-error filters should have mutationKey + mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + ) + }) + + it('should infer types when used with useMutationState', () => { + const mutationState = useMutationState({ + filters: mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + }) + expectTypeOf(mutationState).toEqualTypeOf< + Array> + >() + + useMutationState({ + // @ts-expect-error filters should have mutationKey + filters: mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + }) + }) +}) diff --git a/packages/react-query/src/__tests__/mutationOptions.test.tsx b/packages/react-query/src/__tests__/mutationOptions.test.tsx new file mode 100644 index 0000000000..0091c9d99e --- /dev/null +++ b/packages/react-query/src/__tests__/mutationOptions.test.tsx @@ -0,0 +1,128 @@ +import { describe, expect, it, vi } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' +import { fireEvent } from '@testing-library/react' +import { mutationOptions } from '../mutationOptions' +import { useIsMutating, useMutation, useMutationState } from '..' +import { renderWithClient } from './utils' +import type { MutationState } from '@tanstack/query-core' + +describe('mutationOptions', () => { + it('should return the object received as a parameter without any modification.', () => { + const object = { + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + } as const + + expect(mutationOptions(object)).toStrictEqual(object) + }) + + it('should return the number of fetching mutations when used with useIsMutating', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() + + function IsMutating() { + const isMutating = useIsMutating() + isMutatingArray.push(isMutating) + return null + } + + const mutationOpts = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data'), + }) + + function Mutation() { + const { mutate } = useMutation(mutationOpts) + + return ( +
+ +
+ ) + } + + function Page() { + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + + await vi.waitFor(() => expect(isMutatingArray[0]).toEqual(0)) + await vi.waitFor(() => expect(isMutatingArray[1]).toEqual(1)) + await vi.waitFor(() => expect(isMutatingArray[2]).toEqual(0)) + await vi.waitFor(() => + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0), + ) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() + + const mutationOpts = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data'), + }) + + function Mutation() { + const isMutating = queryClient.isMutating(mutationOpts) + const { mutate } = useMutation(mutationOpts) + isMutatingArray.push(isMutating) + + return ( +
+ +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + + await vi.waitFor(() => expect(isMutatingArray[0]).toEqual(0)) + await vi.waitFor(() => expect(isMutatingArray[1]).toEqual(1)) + await vi.waitFor(() => expect(isMutatingArray[2]).toEqual(0)) + await vi.waitFor(() => + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0), + ) + }) + + it('should return the number of fetching mutations when used with useMutationState', async () => { + const mutationStateArray: Array< + MutationState + > = [] + const queryClient = new QueryClient() + + const mutationOpts = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => Promise.resolve('data'), + }) + + function Mutation() { + const { mutate } = useMutation(mutationOpts) + const data = useMutationState({ + filters: { ...mutationOpts, status: 'success' }, + }) + mutationStateArray.push(...data) + + return ( +
+ +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + + await vi.waitFor(() => expect(mutationStateArray.length).toEqual(1)) + await vi.waitFor(() => expect(mutationStateArray[0]?.data).toEqual('data')) + }) +}) diff --git a/packages/react-query/src/index.ts b/packages/react-query/src/index.ts index 521929a5e6..36ea8da7af 100644 --- a/packages/react-query/src/index.ts +++ b/packages/react-query/src/index.ts @@ -51,5 +51,6 @@ export { export { useIsFetching } from './useIsFetching' export { useIsMutating, useMutationState } from './useMutationState' export { useMutation } from './useMutation' +export { mutationOptions } from './mutationOptions' export { useInfiniteQuery } from './useInfiniteQuery' export { useIsRestoring, IsRestoringProvider } from './IsRestoringProvider' diff --git a/packages/react-query/src/mutationOptions.ts b/packages/react-query/src/mutationOptions.ts new file mode 100644 index 0000000000..ffca2383aa --- /dev/null +++ b/packages/react-query/src/mutationOptions.ts @@ -0,0 +1,38 @@ +import type { DefaultError, WithRequired } from '@tanstack/query-core' +import type { UseMutationOptions } from './types' + +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TContext = unknown, +>( + options: WithRequired< + UseMutationOptions, + 'mutationKey' + >, +): WithRequired< + UseMutationOptions, + 'mutationKey' +> +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TContext = unknown, +>( + options: Omit< + UseMutationOptions, + 'mutationKey' + >, +): Omit, 'mutationKey'> +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TContext = unknown, +>( + options: UseMutationOptions, +): UseMutationOptions { + return options +} From 4287e68336e6602aea2e4c60511f983d15eb7c98 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 9 Jul 2025 15:03:13 +0000 Subject: [PATCH 216/432] release: v5.82.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e34ed42c23..ad1e458f6a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 0cddfbab63..f3b58b8ba1 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.81.5", + "@tanstack/query-async-storage-persister": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 8cf2efe96b..3ce62b4858 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 821464125d..83a138ee8e 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.81.5", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-devtools-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index b02162e8c9..0690a61359 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 878f2f87bf..776b8a0064 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 552f83cab0..0e98c63cf3 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index d37c993149..6bcb950924 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 022dc37411..bac8655d09 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index e4b999be9e..de3ea02c9c 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 1a36c1999f..b859c37a3b 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.81.5", + "@tanstack/angular-query-experimental": "^5.82.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 7efc8b3aef..80011b6925 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 1a1cf5036c..f03475bd46 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index f4232e317d..bb4b9ee3d4 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 471abd063e..a87b5de519 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.5", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", - "@tanstack/react-query-persist-client": "^5.81.5", + "@tanstack/query-async-storage-persister": "^5.82.0", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query-persist-client": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 31c87599cf..f8156d21cb 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 20e2ffc805..ccf0f5facc 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 2173ba9f42..5ddfd94be9 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 9643eaa257..ba50a7da75 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.5", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", - "@tanstack/react-query-persist-client": "^5.81.5", + "@tanstack/query-async-storage-persister": "^5.82.0", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query-persist-client": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 51188d0995..0841863d9a 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 948c0e2dae..43bf94c6a2 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 41c98cf8b5..9f64d3f482 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 4430581ba0..d83900dcff 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", - "@tanstack/react-query-next-experimental": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query-next-experimental": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index f4b0a33c87..0f22686fa2 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 7906cfd992..3b1717a1ab 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.5", + "@tanstack/query-async-storage-persister": "^5.82.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", - "@tanstack/react-query-persist-client": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query-persist-client": "^5.82.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 0953f8de78..82c977489b 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 62847ae7a5..a5bcbd260a 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 60b7c6b086..fb69c038f5 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 4eb93788af..c89f910a2c 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 67ac7b97f1..095f142f5f 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 457c4b1d1e..a2f97254d8 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index f6af62935e..4ed8cddecf 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 5adce13749..177ebfea04 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index c70c6f507d..51d4cdf96b 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 8fb887bab1..e63c49ec50 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index e276a421a1..231997d224 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index dd5975c3a1..f474d3ee22 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", + "@tanstack/react-query": "^5.82.0", + "@tanstack/react-query-devtools": "^5.82.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index b6031773e1..3e86753925 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.81.5", - "@tanstack/solid-query-devtools": "^5.81.5", + "@tanstack/solid-query": "^5.82.0", + "@tanstack/solid-query-devtools": "^5.82.0", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 7014a896c7..add11289d2 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.5", - "@tanstack/solid-query-devtools": "^5.81.5", + "@tanstack/solid-query": "^5.82.0", + "@tanstack/solid-query-devtools": "^5.82.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index fe25cd616a..b8d32b4ebc 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.5", - "@tanstack/solid-query-devtools": "^5.81.5", + "@tanstack/solid-query": "^5.82.0", + "@tanstack/solid-query-devtools": "^5.82.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 26705c7d0b..d25a551254 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.5", - "@tanstack/solid-query-devtools": "^5.81.5", + "@tanstack/solid-query": "^5.82.0", + "@tanstack/solid-query-devtools": "^5.82.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index e817926457..d8cce7419e 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.81.5", - "@tanstack/solid-query-devtools": "^5.81.5", + "@tanstack/solid-query": "^5.82.0", + "@tanstack/solid-query-devtools": "^5.82.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 4bd8e3974f..32aa46a117 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.81.5", - "@tanstack/solid-query-devtools": "^5.81.5", + "@tanstack/solid-query": "^5.82.0", + "@tanstack/solid-query-devtools": "^5.82.0", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index c6ad0a126b..cc6491e05b 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5" + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 8b71df6244..d8e689048b 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.81.5", - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5", - "@tanstack/svelte-query-persist-client": "^5.81.5" + "@tanstack/query-async-storage-persister": "^5.82.0", + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0", + "@tanstack/svelte-query-persist-client": "^5.82.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 253912fc68..a7f7468bf5 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5" + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index a880f0e001..6744c8d593 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5" + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 485739eef6..617d49f785 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5" + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 74159f9b68..d4ed860a9e 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5" + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 91048c5a5b..b0f52077c1 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5" + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 41e586556d..72f1ce1f50 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.81.5", - "@tanstack/svelte-query-devtools": "^5.81.5" + "@tanstack/svelte-query": "^5.82.0", + "@tanstack/svelte-query-devtools": "^5.82.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 1a4630217f..379d34d726 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.5", + "@tanstack/vue-query": "^5.82.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 10240c9e1c..da7f3b347d 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.5", + "@tanstack/vue-query": "^5.82.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index f8d77fe692..23f90a84ff 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.5", - "@tanstack/vue-query-devtools": "^5.81.5", + "@tanstack/vue-query": "^5.82.0", + "@tanstack/vue-query-devtools": "^5.82.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 95c6a26873..025025c326 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.5", + "@tanstack/vue-query": "^5.82.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index fdd0faf706..4e61e91658 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.81.5" + "@tanstack/vue-query": "^5.82.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index cfcb593146..ddc4835f8f 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.81.5", - "@tanstack/query-persist-client-core": "^5.81.5", - "@tanstack/query-sync-storage-persister": "^5.81.5", - "@tanstack/vue-query": "^5.81.5", + "@tanstack/query-core": "^5.82.0", + "@tanstack/query-persist-client-core": "^5.82.0", + "@tanstack/query-sync-storage-persister": "^5.82.0", + "@tanstack/vue-query": "^5.82.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index f324d1617f..0611766085 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.81.5", - "@tanstack/vue-query-devtools": "^5.81.5", + "@tanstack/vue-query": "^5.82.0", + "@tanstack/vue-query-devtools": "^5.82.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 37e9a351ec..1c7fabb3af 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.81.5", + "version": "5.82.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index d02575222a..bc823e6ef9 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.81.5", + "version": "5.82.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 5f1482ce27..4294f32700 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.81.5", + "version": "5.82.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index c8695f68f3..af89166881 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.81.5", + "version": "5.82.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 66f7f9c14a..8329d627ae 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.81.5", + "version": "5.82.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 8511998772..0ffaa3c737 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.81.5", + "version": "5.82.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index daf55c4be6..22ca5ae846 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.81.5", + "version": "5.82.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index a40b6cbdb6..efc30c2276 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.81.5", + "version": "5.82.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index c297a151ac..a7526d779c 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.81.5", + "version": "5.82.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 4ea4f5b11e..0c7d4be93a 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.81.5", + "version": "5.82.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 9d6ef05ed5..da263af2c5 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.81.5", + "version": "5.82.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index def86d0cdb..d41f3eae4b 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.81.5", + "version": "5.82.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 492739dd0a..1636b85f45 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.81.5", + "version": "5.82.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 0bd9392b82..a061a7d1f6 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.81.5", + "version": "5.82.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 50b10a85ec..7b8c98de50 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.81.5", + "version": "5.82.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 53119f0e5c..92d3aa0fc5 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.81.5", + "version": "5.82.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 69839dad30..535a70ce9a 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.81.5", + "version": "5.82.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index a3bdcba588..45b74122e8 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.81.5", + "version": "5.82.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 48ba1903a4..62c7b55528 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.81.5", + "version": "5.82.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From a0a0812c37421355528e66738e78c1f4c22e2b2c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 09:22:02 +0900 Subject: [PATCH 217/432] test(react-query/useSuspenseQueries): remove 'waitFor' and add 'advanceTimersByTimeAsync' (#9356) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useSuspenseQueries.test.tsx | 122 +++++++----------- 1 file changed, 48 insertions(+), 74 deletions(-) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 4b7f7dad93..818a96fed6 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -2,12 +2,13 @@ import { afterAll, afterEach, beforeAll, + beforeEach, describe, expect, it, vi, } from 'vitest' -import { act, fireEvent, render, waitFor } from '@testing-library/react' +import { act, fireEvent, render } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -178,20 +179,23 @@ describe('useSuspenseQueries', () => { , ) - await act(() => vi.advanceTimersByTimeAsync(10)) - rendered.getByText('loading...') - expect(spy).not.toHaveBeenCalled() - await act(() => vi.advanceTimersByTimeAsync(30)) rendered.getByText('data') - expect(spy).toHaveBeenCalled() }) }) describe('useSuspenseQueries 2', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('should suspend all queries in parallel', async () => { const key1 = queryKey() const key2 = queryKey() @@ -237,9 +241,9 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => rendered.getByText('loading')) - await waitFor(() => rendered.getByText('data: 1,2')) - + rendered.getByText('loading') + await act(() => vi.advanceTimersByTimeAsync(21)) + rendered.getByText('data: 1,2') expect(results).toEqual(['1', '2', 'loading']) }) @@ -291,9 +295,11 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => rendered.getByText('loading')) + + rendered.getByText('loading') expect(refs.length).toBe(2) - await waitFor(() => rendered.getByText('data: 1,2')) + await act(() => vi.advanceTimersByTimeAsync(21)) + rendered.getByText('data: 1,2') expect(refs[0]).toBe(refs[1]) }) @@ -328,27 +334,23 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => - expect(rendered.getByText('loading')).toBeInTheDocument(), - ) - await waitFor(() => rendered.getByText('Data 0')) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(0)) + rendered.getByText('Data 0') // go offline document.dispatchEvent(new CustomEvent('offline')) fireEvent.click(rendered.getByText('fetch')) - await waitFor(() => - expect(rendered.getByText('Data 0')).toBeInTheDocument(), - ) + expect(rendered.getByText('Data 0')).toBeInTheDocument() // go back online document.dispatchEvent(new CustomEvent('online')) - fireEvent.click(rendered.getByText('fetch')) + fireEvent.click(rendered.getByText('fetch')) + await act(() => vi.advanceTimersByTimeAsync(0)) // query should resume - await waitFor(() => - expect(rendered.getByText('Data 1')).toBeInTheDocument(), - ) + expect(rendered.getByText('Data 1')).toBeInTheDocument() }) it('should throw error when queryKey changes and new query fails', async () => { @@ -391,18 +393,15 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => rendered.getByText('Loading...')) - - await waitFor(() => rendered.getByText('rendered: data')) - + rendered.getByText('Loading...') + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('rendered: data') fireEvent.click(rendered.getByText('trigger fail')) - - await waitFor(() => rendered.getByText('error boundary')) - + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('error boundary') expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) - consoleMock.mockRestore() }) @@ -438,19 +437,13 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - - await waitFor(() => expect(rendered.getByText('data0')).toBeInTheDocument()) - + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('data0')).toBeInTheDocument() fireEvent.click(rendered.getByText('inc')) - - await waitFor(() => - expect(rendered.getByText('Pending...')).toBeInTheDocument(), - ) - - await waitFor(() => expect(rendered.getByText('data1')).toBeInTheDocument()) + expect(rendered.getByText('Pending...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('data1')).toBeInTheDocument() }) it('should not request old data inside transitions (issue #6486)', async () => { @@ -497,16 +490,12 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => rendered.getByText('Loading...')) - - await waitFor(() => rendered.getByText('data0')) - + rendered.getByText('Loading...') + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data0') fireEvent.click(rendered.getByText('inc')) - - await waitFor(() => rendered.getByText('data1')) - - await sleep(20) - + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data1') expect(queryFnCount).toBe(2) }) @@ -549,19 +538,13 @@ describe('useSuspenseQueries 2', () => { , ) - await waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - - await waitFor(() => expect(rendered.getByText('data0')).toBeInTheDocument()) - + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('data0')).toBeInTheDocument() fireEvent.click(rendered.getByText('inc')) - - await waitFor(() => - expect(rendered.getByText('Pending...')).toBeInTheDocument(), - ) - - await waitFor(() => expect(rendered.getByText('data1')).toBeInTheDocument()) + expect(rendered.getByText('Pending...')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(11)) + expect(rendered.getByText('data1')).toBeInTheDocument() }) it('should show error boundary even with gcTime:0 (#7853)', async () => { @@ -601,7 +584,8 @@ describe('useSuspenseQueries 2', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('There was an error!')) + await act(() => vi.advanceTimersByTimeAsync(0)) + rendered.getByText('There was an error!') expect(count).toBe(1) consoleMock.mockRestore() }) @@ -656,24 +640,16 @@ describe('useSuspenseQueries 2', () => { const rendered = renderWithClient(queryClient, ) await act(() => vi.advanceTimersByTimeAsync(200)) - rendered.getByText('loading') - // unmount while still fetching fireEvent.click(rendered.getByText('hide')) - await act(() => vi.advanceTimersByTimeAsync(800)) - rendered.getByText('page2') - // wait for query to be resolved await act(() => vi.advanceTimersByTimeAsync(2000)) - expect(queryClient.getQueryData(key)).toBe('data') - // wait for gc await act(() => vi.advanceTimersByTimeAsync(1000)) - expect(queryClient.getQueryData(key)).toBe(undefined) }) }) @@ -746,7 +722,6 @@ describe('useSuspenseQueries 2', () => { expect(consoleErrorSpy).toHaveBeenCalledWith( 'skipToken is not allowed for useSuspenseQueries', ) - consoleErrorSpy.mockRestore() process.env.NODE_ENV = envCopy }) @@ -781,7 +756,6 @@ describe('useSuspenseQueries 2', () => { ) expect(consoleErrorSpy).not.toHaveBeenCalled() - consoleErrorSpy.mockRestore() process.env.NODE_ENV = envCopy }) From eaf768b5ec8539a0799ef487dddef5561c31fd72 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 09:28:56 +0900 Subject: [PATCH 218/432] test(react-query/useQuery): remove 'vi.waitFor', add 'advanceTimersByTimeAsync' and replace 'findByText' with 'getByText' (#9363) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useQuery.test.tsx | 1195 ++++++++--------- 1 file changed, 548 insertions(+), 647 deletions(-) diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 893abb03b6..33b492d2ef 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -62,9 +62,8 @@ describe('useQuery', () => { expect(rendered.getByText('default')).toBeInTheDocument() - await vi.waitFor(() => - expect(rendered.getByText('test')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('test')).toBeInTheDocument() }) it('should return the correct states for a successful query', async () => { @@ -95,7 +94,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('test')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('test') expect(states.length).toEqual(2) @@ -186,7 +186,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Status: error')) + await vi.advanceTimersByTimeAsync(2) + rendered.getByText('Status: error') expect(states[0]).toEqual({ data: undefined, @@ -304,13 +305,10 @@ describe('useQuery', () => { expect(rendered.getByText('isFetched: true')).toBeInTheDocument() expect(rendered.getByText('isFetchedAfterMount: false')).toBeInTheDocument() - await vi.waitFor(() => { - expect(rendered.getByText('data: new data')).toBeInTheDocument() - expect(rendered.getByText('isFetched: true')).toBeInTheDocument() - expect( - rendered.getByText('isFetchedAfterMount: true'), - ).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: new data')).toBeInTheDocument() + expect(rendered.getByText('isFetched: true')).toBeInTheDocument() + expect(rendered.getByText('isFetchedAfterMount: true')).toBeInTheDocument() }) it('should not cancel an ongoing fetch when refetch is called with cancelRefetch=false if we have data already', async () => { @@ -477,11 +475,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.findByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') fireEvent.click(rendered.getByRole('button', { name: /toggle/i })) - await vi.waitFor(() => rendered.findByText('data: 2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 2') expect(states.length).toBe(4) // First load @@ -548,15 +548,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('data') - }) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('data') fireEvent.click(rendered.getByRole('button', { name: 'remove' })) - await vi.waitFor(() => { - rendered.getByText('data') - }) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('data') expect(states.length).toBe(4) // First load @@ -601,7 +599,8 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => expect(states.length).toBe(2)) + await vi.advanceTimersByTimeAsync(0) + expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) expect(states[1]).toMatchObject({ data: 'test' }) }) @@ -645,9 +644,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('test') - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('test') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) @@ -671,9 +669,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('test') - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('test') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) @@ -700,9 +697,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('error') - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('error') expect(states.length).toBe(2) @@ -737,13 +733,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('error: Select Error')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('error: Select Error') expect(runs).toEqual(1) fireEvent.click(rendered.getByRole('button', { name: 'rerender' })) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(runs).toEqual(1) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(runs).toEqual(2) }) @@ -774,11 +771,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('test1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('test1') fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => rendered.getByText('test2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('test2') expect(states.length).toBe(3) expect(states[0]).toMatchObject({ data: undefined }) @@ -809,7 +808,8 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => expect(renderCount).toBe(2)) + await vi.advanceTimersByTimeAsync(0) + expect(renderCount).toBe(2) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined }) expect(states[1]).toMatchObject({ data: 'test' }) @@ -843,12 +843,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: 1') fireEvent.click(rendered.getByRole('button', { name: /remove/i })) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(0) fireEvent.click(rendered.getByRole('button', { name: /rerender/i })) - await vi.waitFor(() => rendered.getByText('data: 2')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: 2') expect(states.length).toBe(4) // Initial @@ -893,12 +895,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') fireEvent.click(rendered.getByRole('button', { name: /remove/i })) - - await vi.advanceTimersByTimeAsync(50) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => rendered.getByText('data: 2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 2') expect(states.length).toBe(4) // Initial @@ -953,12 +955,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: false')) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: false') fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => rendered.getByText('data: true')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: true') - await vi.waitFor(() => expect(states.length).toBe(4)) + expect(states.length).toBe(4) const todos = states[2]?.data const todo1 = todos?.[0] @@ -1007,13 +1010,11 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('data: set')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data: set')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => - expect(rendered.getByText('data: fetched')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data: fetched')).toBeInTheDocument() }) it('should update query stale state and refetch when invalidated with invalidateQueries', async () => { @@ -1046,22 +1047,19 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect( - rendered.getByText('data: 1, isStale: false, isFetching: false'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('data: 1, isStale: false, isFetching: false'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await vi.waitFor(() => - expect( - rendered.getByText('data: 1, isStale: true, isFetching: true'), - ).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('data: 2, isStale: false, isFetching: false'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('data: 1, isStale: true, isFetching: true'), + ).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('data: 2, isStale: false, isFetching: false'), + ).toBeInTheDocument() }) it('should not update disabled query when refetching with refetchQueries', async () => { @@ -1093,7 +1091,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(50) + await vi.advanceTimersByTimeAsync(31) expect(states.length).toBe(1) expect(states[0]).toMatchObject({ @@ -1171,14 +1169,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: /increment/i })) - await vi.waitFor(() => { - rendered.getByText('count: 1') - rendered.getByText('data: undefined') - }) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('count: 1') + rendered.getByText('data: undefined') expect(states.length).toBe(3) @@ -1230,11 +1228,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') // Initial expect(states[0]).toMatchObject({ @@ -1299,11 +1299,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') // Initial expect(states[0]).toMatchObject({ @@ -1374,13 +1376,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => rendered.getByText('data: 3')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 3') const allPreviousKeysAreTheFirstQueryKey = keys.every( (k) => JSON.stringify(k) === JSON.stringify([key, 0]), @@ -1422,13 +1426,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => rendered.getByText('data: 3')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 3') // Initial expect(states[0]).toMatchObject({ data: undefined, @@ -1503,13 +1509,17 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) - act(() => rendered.rerender()) - await vi.waitFor(() => rendered.getByText('data: 1')) - act(() => rendered.rerender()) - await vi.waitFor(() => rendered.getByText('error: Error test')) - await vi.waitFor(() => expect(states.length).toBe(6)) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') + rendered.rerender() + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') + rendered.rerender() + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error: Error test') + + expect(states.length).toBe(6) // Initial expect(states[0]).toMatchObject({ data: undefined, @@ -1592,15 +1602,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('data: 0, count: 0, isFetching: false'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0, count: 0, isFetching: false') fireEvent.click(rendered.getByRole('button', { name: 'inc' })) - await vi.waitFor(() => - rendered.getByText('data: 1, count: 1, isFetching: false'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1, count: 1, isFetching: false') expect(states.length).toBe(4) @@ -1665,27 +1673,22 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('data: undefined') - }) + rendered.getByText('data: undefined') fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await vi.waitFor(() => { - rendered.getByText('data: 0') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => { - rendered.getByText('data: 0') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await vi.waitFor(() => { - rendered.getByText('data: 1') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') expect(states.length).toBe(6) @@ -1776,7 +1779,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(51) expect(states.length).toBe(5) @@ -1858,10 +1861,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => expect(states.length).toBe(4)) + await vi.advanceTimersByTimeAsync(11) + expect(states.length).toBe(4) expect(states[0]).toMatchObject({ data: undefined, @@ -2051,16 +2056,14 @@ describe('useQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /set id/i })) - await vi.waitFor(() => { - expect( - rendered.getByText('User fetching status is fetching'), - ).toBeInTheDocument() - }) - await vi.waitFor(() => { - expect( - rendered.getByText('UserInfo data is {"id":42,"name":"John"}'), - ).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('User fetching status is fetching'), + ).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('UserInfo data is {"id":42,"name":"John"}'), + ).toBeInTheDocument() expect( rendered.getByText('User fetching status is idle'), @@ -2092,15 +2095,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('test') - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('test') fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await vi.waitFor(() => { - rendered.getByText('test') - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('test') expect(states[0]).toMatchObject({ data: undefined }) expect(states[1]).toMatchObject({ data: 'test' }) @@ -2143,9 +2144,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('test') - }) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('test') fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) @@ -2200,9 +2200,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('test') - }) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('test') fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) @@ -2275,9 +2274,8 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('fetch counter: 1') - }) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('fetch counter: 1') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -2307,9 +2305,8 @@ describe('useQuery', () => { ) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await vi.waitFor(() => { - rendered.getByText('fetch counter: 3') - }) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('fetch counter: 3') await vi.advanceTimersByTimeAsync(20) expect(states.length).toBe(4) @@ -2408,9 +2405,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('data data') - }) + await vi.advanceTimersByTimeAsync(16) + rendered.getByText('data data') // Should be 2 instead of 3 expect(renders).toBe(2) @@ -2434,9 +2430,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('new')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('new')).toBeInTheDocument() }) // See https://github.com/tannerlinsley/react-query/issues/170 @@ -2447,10 +2442,19 @@ describe('useQuery', () => { function Page() { const first = useQuery({ queryKey: key1, - queryFn: () => 'data', + queryFn: async () => { + await sleep(10) + return 'data' + }, enabled: false, }) - const second = useQuery({ queryKey: key2, queryFn: () => 'data' }) + const second = useQuery({ + queryKey: key2, + queryFn: async () => { + await sleep(10) + return 'data' + }, + }) return (
@@ -2471,16 +2475,14 @@ describe('useQuery', () => { expect( rendered.getByText('First Status: pending, idle'), ).toBeInTheDocument() - await vi.waitFor(() => - expect( - rendered.getByText('Second Status: pending, fetching'), - ).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('Second Status: success, idle'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('Second Status: pending, fetching'), + ).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('Second Status: success, idle'), + ).toBeInTheDocument() }) // See https://github.com/tannerlinsley/react-query/issues/144 @@ -2526,7 +2528,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('default')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('default') act(() => { window.dispatchEvent(new Event('visibilitychange')) @@ -2656,21 +2659,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect( - rendered.getByText('data: 0, isFetching: false'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data: 0, isFetching: false')).toBeInTheDocument() act(() => { window.dispatchEvent(new Event('visibilitychange')) }) - await vi.waitFor(() => - expect( - rendered.getByText('data: 1, isFetching: false'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data: 1, isFetching: false')).toBeInTheDocument() }) it('should calculate focus behavior for `refetchOnWindowFocus` depending on function', async () => { @@ -2696,7 +2693,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.findByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ data: undefined, isFetching: true }) @@ -2706,7 +2704,8 @@ describe('useQuery', () => { window.dispatchEvent(new Event('visibilitychange')) }) - await vi.waitFor(() => rendered.findByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') // refetch should happen expect(states.length).toBe(4) @@ -2746,7 +2745,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -2770,7 +2769,7 @@ describe('useQuery', () => { queryFn: () => 'prefetched', }) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) function Page() { const state = useQuery({ @@ -2785,7 +2784,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -2825,13 +2824,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('error')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Error test')).toBeInTheDocument(), - ) - + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('error')).toBeInTheDocument() + expect(rendered.getByText('Error test')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -2864,9 +2859,8 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -2891,7 +2885,8 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => expect(queryClient.isFetching()).toBe(0)) + await vi.advanceTimersByTimeAsync(0) + expect(queryClient.isFetching()).toBe(0) expect(result?.data).toBe('data') }) @@ -2923,12 +2918,9 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Local Error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('error')).toBeInTheDocument() + expect(rendered.getByText('Local Error')).toBeInTheDocument() }) it('should throw error instead of setting status when error should be thrown', async () => { @@ -2969,12 +2961,9 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Remote Error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('Remote Error')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -3017,24 +3006,18 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('failureCount: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('failureReason: some error'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('failureCount: 1')).toBeInTheDocument() + expect(rendered.getByText('failureReason: some error')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(90) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await vi.waitFor(() => - expect( - rendered.getByRole('button', { name: /show/i }), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByRole('button', { name: /show/i })).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /show/i })) - await vi.waitFor(() => - expect(rendered.getByText('error: some error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + await vi.advanceTimersByTimeAsync(110) + await vi.advanceTimersByTimeAsync(110) + expect(rendered.getByText('error: some error')).toBeInTheDocument() expect(count).toBe(4) }) @@ -3081,25 +3064,17 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('failureCount: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('failureReason: some error'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('failureCount: 1')).toBeInTheDocument() + expect(rendered.getByText('failureReason: some error')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /hide/i })) fireEvent.click(rendered.getByRole('button', { name: /cancel/i })) - await vi.waitFor(() => - expect( - rendered.getByRole('button', { name: /show/i }), - ).toBeInTheDocument(), - ) + expect(rendered.getByRole('button', { name: /show/i })).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /show/i })) - await vi.waitFor(() => - expect(rendered.getByText('error: some error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + await vi.advanceTimersByTimeAsync(110) + await vi.advanceTimersByTimeAsync(110) + expect(rendered.getByText('error: some error')).toBeInTheDocument() // initial fetch (1), which will be cancelled, followed by new mount(2) + 2 retries = 4 expect(count).toBe(4) @@ -3133,8 +3108,10 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: data')) - await vi.waitFor(() => expect(states.length).toBe(3)) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: data') + await vi.advanceTimersByTimeAsync(52) + expect(states.length).toBe(3) expect(states[0]).toMatchObject({ data: 'prefetched', @@ -3169,7 +3146,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(50) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) @@ -3202,7 +3179,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(52) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -3237,7 +3214,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(52) expect(states.length).toBe(3) expect(states[0]).toMatchObject({ @@ -3275,7 +3252,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -3315,7 +3292,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(11) expect(states.length).toBe(2) // Initial @@ -3351,14 +3328,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('pending')) - await vi.waitFor(() => rendered.getByText('error')) + rendered.getByText('pending') + await vi.advanceTimersByTimeAsync(2) + rendered.getByText('error') // query should fail `retry + 1` times, since first time isn't a "retry" - await vi.waitFor(() => rendered.getByText('Failed 2 times')) - await vi.waitFor(() => - rendered.getByText('Failed because Error test Barrett'), - ) + rendered.getByText('Failed 2 times') + rendered.getByText('Failed because Error test Barrett') expect(queryFn).toHaveBeenCalledTimes(2) }) @@ -3396,13 +3372,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('pending')) - await vi.waitFor(() => rendered.getByText('error')) + rendered.getByText('pending') + await vi.advanceTimersByTimeAsync(2) + rendered.getByText('error') - await vi.waitFor(() => rendered.getByText('Failed 2 times')) - await vi.waitFor(() => rendered.getByText('Failed because NoRetry')) + rendered.getByText('Failed 2 times') + rendered.getByText('Failed because NoRetry') - await vi.waitFor(() => rendered.getByText('NoRetry')) + rendered.getByText('NoRetry') expect(queryFn).toHaveBeenCalledTimes(2) }) @@ -3436,14 +3413,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(1) - await vi.waitFor(() => - rendered.getByText('Failed because DelayError: 50ms'), - ) - await vi.waitFor(() => rendered.getByText('Failed 2 times')) + rendered.getByText('Failed because DelayError: 50ms') + await vi.advanceTimersByTimeAsync(51) + rendered.getByText('Failed 2 times') expect(queryFn).toHaveBeenCalledTimes(2) }) @@ -3481,31 +3457,20 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // The query should display the first error result - await vi.waitFor(() => - expect(rendered.getByText('failureCount 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('failureReason fetching error 1'), - ).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('status pending')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error null')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('failureCount 1')).toBeInTheDocument() + expect( + rendered.getByText('failureReason fetching error 1'), + ).toBeInTheDocument() + expect(rendered.getByText('status pending')).toBeInTheDocument() + expect(rendered.getByText('error null')).toBeInTheDocument() // Check if the query really paused - await vi.advanceTimersByTimeAsync(10) - await vi.waitFor(() => - expect(rendered.getByText('failureCount 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('failureReason fetching error 1'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('failureCount 1')).toBeInTheDocument() + expect( + rendered.getByText('failureReason fetching error 1'), + ).toBeInTheDocument() act(() => { // reset visibilityState to original value @@ -3514,31 +3479,20 @@ describe('useQuery', () => { }) // Wait for the final result - await vi.waitFor(() => - expect(rendered.getByText('failureCount 4')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('failureReason fetching error 4'), - ).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('status error')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error fetching error 4')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(4) + expect(rendered.getByText('failureCount 4')).toBeInTheDocument() + expect( + rendered.getByText('failureReason fetching error 4'), + ).toBeInTheDocument() + expect(rendered.getByText('status error')).toBeInTheDocument() + expect(rendered.getByText('error fetching error 4')).toBeInTheDocument() // Check if the query really stopped await vi.advanceTimersByTimeAsync(10) - await vi.waitFor(() => - expect(rendered.getByText('failureCount 4')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('failureReason fetching error 4'), - ).toBeInTheDocument(), - ) + expect(rendered.getByText('failureCount 4')).toBeInTheDocument() + expect( + rendered.getByText('failureReason fetching error 4'), + ).toBeInTheDocument() }) it('should fetch on mount when a query was already created with setQueryData', async () => { @@ -3555,7 +3509,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states).toMatchObject([ @@ -3600,7 +3554,8 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => expect(states.length).toBe(2)) + await vi.advanceTimersByTimeAsync(11) + expect(states.length).toBe(2) act(() => { // reset visibilityState to original value @@ -3608,7 +3563,8 @@ describe('useQuery', () => { window.dispatchEvent(new Event('visibilitychange')) }) - await vi.waitFor(() => expect(states.length).toBe(4)) + await vi.advanceTimersByTimeAsync(11) + expect(states.length).toBe(4) expect(states).toMatchObject([ { @@ -3661,7 +3617,8 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => expect(states.length).toBe(2)) + await vi.advanceTimersByTimeAsync(11) + expect(states.length).toBe(2) expect(prefetchQueryFn).toHaveBeenCalledTimes(1) expect(queryFn).toHaveBeenCalledTimes(1) @@ -3731,18 +3688,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('failureCount 2')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('failureReason error')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('failureCount 0')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('failureReason null')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('failureCount 2')).toBeInTheDocument() + expect(rendered.getByText('failureReason error')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('failureCount 0')).toBeInTheDocument() + expect(rendered.getByText('failureReason null')).toBeInTheDocument() }) // See https://github.com/tannerlinsley/react-query/issues/199 @@ -3787,17 +3738,13 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('isPrefetched')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isPrefetched')).toBeInTheDocument() fireEvent.click(rendered.getByText('setKey')) - await vi.waitFor(() => - expect(rendered.getByText('data: prefetched data')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('data: 1')).toBeInTheDocument(), - ) + expect(rendered.getByText('data: prefetched data')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data: 1')).toBeInTheDocument() expect(count).toBe(1) }) @@ -3809,7 +3756,10 @@ describe('useQuery', () => { const query = useQuery({ queryKey: key, - queryFn: () => 'data', + queryFn: async () => { + await sleep(10) + return 'data' + }, enabled: shouldFetch, }) @@ -3831,13 +3781,11 @@ describe('useQuery', () => { fireEvent.click(rendered.getByText('fetch')) - await vi.waitFor(() => - expect(rendered.getByText('FetchStatus: fetching')).toBeInTheDocument(), - ) - await vi.waitFor(() => [ - expect(rendered.getByText('FetchStatus: idle')).toBeInTheDocument(), - expect(rendered.getByText('Data: data')).toBeInTheDocument(), - ]) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('FetchStatus: fetching')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('FetchStatus: idle')).toBeInTheDocument() + expect(rendered.getByText('Data: data')).toBeInTheDocument() }) it('should mark query as fetching, when using initialData', async () => { @@ -3859,8 +3807,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: initialData')) - await vi.waitFor(() => rendered.getByText('data: serverData')) + rendered.getByText('data: initialData') + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: serverData') expect(results.length).toBe(2) expect(results[0]).toMatchObject({ data: 'initialData', isFetching: true }) @@ -3883,7 +3832,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(results.length).toBe(2) expect(results[0]).toMatchObject({ data: 0, isFetching: true }) @@ -3937,22 +3886,16 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect( - rendered.getByText('Current Todos, filter: all'), - ).toBeInTheDocument(), - ) + expect(rendered.getByText('Current Todos, filter: all')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /high/i })) - await vi.waitFor(() => - expect( - rendered.getByText('Current Todos, filter: high'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('Current Todos, filter: high'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /all/i })) - await vi.waitFor(() => - expect(rendered.getByText('todo B - medium')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('todo B - medium')).toBeInTheDocument() }) // // See https://github.com/tannerlinsley/react-query/issues/214 @@ -3989,17 +3932,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(rendered.getByText('fetched data')).toBeInTheDocument() - expect(rendered.getByText('enabled')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('fetched data')).toBeInTheDocument() + expect(rendered.getByText('enabled')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /enable/i })) - await vi.waitFor(() => { - expect(rendered.getByText('fetched data')).toBeInTheDocument() - expect(rendered.getByText('disabled')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('fetched data')).toBeInTheDocument() + expect(rendered.getByText('disabled')).toBeInTheDocument() expect(results.length).toBe(3) expect(results[0]).toMatchObject({ data: 'initial', isStale: true }) @@ -4051,9 +3992,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('status: pending, idle')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('status: pending, idle')).toBeInTheDocument() }) test('should not schedule garbage collection, if gcTimeout is set to `Infinity`', async () => { @@ -4070,7 +4010,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('fetched data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('fetched data') const setTimeoutSpy = vi.spyOn(globalThis.window, 'setTimeout') rendered.unmount() @@ -4092,7 +4033,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('fetched data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('fetched data') const setTimeoutSpy = vi.spyOn(globalThis.window, 'setTimeout') @@ -4142,11 +4084,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('status pending')) - await vi.waitFor(() => rendered.getByText('status success')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('status pending') + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status success') fireEvent.click(rendered.getByText('refetch')) - await vi.waitFor(() => rendered.getByText('isFetching true')) - await vi.waitFor(() => rendered.getByText('isFetching false')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('isFetching true') + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('isFetching false') expect(queryFn).toHaveBeenCalledTimes(2) expect(memoFn).toHaveBeenCalledTimes(2) }) @@ -4175,15 +4121,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) // mount - await vi.waitFor(() => - expect(rendered.getByText('count: 0')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('count: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('count: 2')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('count: 0')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(201) + expect(rendered.getByText('count: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(201) + expect(rendered.getByText('count: 2')).toBeInTheDocument() }) it('should refetch in an interval depending on function result', async () => { @@ -4215,7 +4158,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('count: 2')) + await vi.advanceTimersByTimeAsync(51) + rendered.getByText('count: 2') expect(states.length).toEqual(6) @@ -4269,7 +4213,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('count: 1')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('count: 1') await vi.advanceTimersByTimeAsync(10) // extra sleep to make sure we're not re-fetching @@ -4287,7 +4232,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => expect(rendered.getByText('')).toBeInTheDocument()) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('')).toBeInTheDocument() }) it('should accept an object as query key', async () => { @@ -4301,9 +4247,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('[{"a":"a"}]')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('[{"a":"a"}]')).toBeInTheDocument() }) it('should refetch if any query instance becomes enabled', async () => { @@ -4333,7 +4278,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) expect(queryFn).toHaveBeenCalledTimes(0) fireEvent.click(rendered.getByText('enable')) - await vi.waitFor(() => rendered.getByText('data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data') expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -4360,7 +4306,8 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data: data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Data: data') expect(states).toMatchObject([ { @@ -4406,7 +4353,8 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data: data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Data: data') expect(states).toMatchObject([ { @@ -4460,7 +4408,8 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data: 2')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Data: 2') expect(states).toMatchObject([ { @@ -4504,7 +4453,8 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data: 2')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Data: 2') rendered.rerender() @@ -4562,15 +4512,17 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data: selected 101')) // 99 + 2 + rendered.getByText('Data: selected 101') // 99 + 2 expect(selectRun).toBe(1) - await vi.waitFor(() => rendered.getByText('Data: selected 2')) // 0 + 2 + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Data: selected 2') // 0 + 2 expect(selectRun).toBe(2) fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await vi.waitFor(() => rendered.getByText('Data: selected 3')) // 0 + 3 + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Data: selected 3') // 0 + 3 expect(selectRun).toBe(3) }) @@ -4608,29 +4560,23 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('Data: selected 101')).toBeInTheDocument(), - ) // 99 + 2 - await vi.waitFor(() => - expect(rendered.getByText('Data: selected 2')).toBeInTheDocument(), - ) // 0 + 2 + expect(rendered.getByText('Data: selected 101')).toBeInTheDocument() // 99 + 2 + + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Data: selected 2')).toBeInTheDocument() // 0 + 2 fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await vi.waitFor(() => - expect(rendered.getByText('Data: selected 3')).toBeInTheDocument(), - ) // 0 + 3 + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Data: selected 3')).toBeInTheDocument() // 0 + 3 fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i })) - await vi.waitFor(() => - expect(rendered.getByText('forceValue: 2')).toBeInTheDocument(), - ) + expect(rendered.getByText('forceValue: 2')).toBeInTheDocument() // data should still be 3 after an independent re-render - await vi.waitFor(() => - expect(rendered.getByText('Data: selected 3')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Data: selected 3')).toBeInTheDocument() }) it('select should structurally share data', async () => { @@ -4666,13 +4612,16 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Data: [2,3]')) + + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Data: [2,3]') expect(states).toHaveLength(1) fireEvent.click(rendered.getByRole('button', { name: /forceUpdate/i })) - await vi.waitFor(() => rendered.getByText('forceValue: 2')) - await vi.waitFor(() => rendered.getByText('Data: [2,3]')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('forceValue: 2') + rendered.getByText('Data: [2,3]') // effect should not be triggered again due to structural sharing expect(states).toHaveLength(1) @@ -4708,7 +4657,8 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('off')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('off') expect(cancelFn).toHaveBeenCalled() }) @@ -4747,10 +4697,11 @@ describe('useQuery', () => { , ) - await vi.waitFor(() => rendered.getByText('off')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('off') await vi.advanceTimersByTimeAsync(20) - await vi.waitFor(() => expect(states).toHaveLength(4)) + expect(states).toHaveLength(4) expect(queryCache.find({ queryKey: [key, 0] })?.state).toMatchObject({ data: 'data 0', @@ -4804,7 +4755,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(51) expect(states.length).toBe(4) // Load query 1 expect(states[0]).toMatchObject({ @@ -4859,12 +4810,13 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - await vi.waitFor(() => expect(states.length).toBe(4)) - - await vi.waitFor(() => rendered.getByText('data: 2')) + await vi.advanceTimersByTimeAsync(11) + expect(states.length).toBe(4) + rendered.getByText('data: 2') expect(count).toBe(2) @@ -4933,14 +4885,16 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: null')) + rendered.getByText('data: null') fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - await vi.waitFor(() => rendered.getByText('data: null')) - await vi.waitFor(() => expect(states.length).toBe(4)) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: null') + expect(states.length).toBe(4) expect(count).toBe(1) @@ -4996,7 +4950,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(renders).toBe(hashes) }) @@ -5018,7 +4972,7 @@ describe('useQuery', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) const query = queryClient.getQueryCache().get(queryKeyHashFn(key)) expect(query?.state.data).toBe('test') @@ -5070,12 +5024,14 @@ describe('useQuery', () => { rendered.getByText('status: pending') // // render error state component - await vi.waitFor(() => rendered.getByText('error')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error') expect(queryFn).toBeCalledTimes(1) // change to enabled to false fireEvent.click(rendered.getByLabelText('retry')) - await vi.waitFor(() => rendered.getByText('error')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error') expect(queryFn).toBeCalledTimes(1) // // change to enabled to true @@ -5129,21 +5085,18 @@ describe('useQuery', () => { expect(rendered.getByText('status: pending')).toBeInTheDocument() // render error state component - await vi.waitFor(() => - expect(rendered.getByText('error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error')).toBeInTheDocument() // change to unmount query fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('rendered')).toBeInTheDocument() // change to mount new query fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => - expect(rendered.getByText('error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error')).toBeInTheDocument() }) it('should refetch when query key changed when switching between erroneous queries', async () => { @@ -5188,27 +5141,20 @@ describe('useQuery', () => { expect(rendered.getByText('status: fetching')).toBeInTheDocument() // render error state component - await vi.waitFor(() => - expect(rendered.getByText('error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error')).toBeInTheDocument() // change to mount second query fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => - expect(rendered.getByText('status: fetching')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error')).toBeInTheDocument(), - ) + expect(rendered.getByText('status: fetching')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error')).toBeInTheDocument() // change to mount first query again fireEvent.click(rendered.getByLabelText('change')) - await vi.waitFor(() => - expect(rendered.getByText('status: fetching')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error')).toBeInTheDocument(), - ) + expect(rendered.getByText('status: fetching')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('error')).toBeInTheDocument() }) it('should have no error in pending state when refetching after error occurred', async () => { @@ -5250,12 +5196,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('error')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error') fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await vi.waitFor(() => rendered.getByText('data: 5')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 5') - await vi.waitFor(() => expect(states.length).toBe(4)) + expect(states.length).toBe(4) expect(states[0]).toMatchObject({ status: 'pending', @@ -5314,19 +5262,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: pending, isPaused: true'), - ) + rendered.getByText('status: pending, isPaused: true') onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.waitFor(() => - rendered.getByText('status: success, isPaused: false'), - ) - await vi.waitFor(() => { - expect(rendered.getByText('data: data')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: success, isPaused: false') + expect(rendered.getByText('data: data')).toBeInTheDocument() expect(states).toEqual(['paused', 'fetching', 'idle']) onlineMock.mockRestore() @@ -5365,38 +5308,32 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: data1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: data1') const onlineMock = mockOnlineManagerIsOnline(false) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await vi.waitFor(() => - rendered.getByText( - 'status: success, fetchStatus: paused, failureCount: 0', - ), + await vi.advanceTimersByTimeAsync(11) + rendered.getByText( + 'status: success, fetchStatus: paused, failureCount: 0', ) - await vi.waitFor(() => rendered.getByText('failureReason: null')) + rendered.getByText('failureReason: null') onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.waitFor(() => - rendered.getByText( - 'status: success, fetchStatus: fetching, failureCount: 0', - ), - ) - await vi.waitFor(() => rendered.getByText('failureReason: null')) - await vi.waitFor(() => - rendered.getByText( - 'status: success, fetchStatus: idle, failureCount: 0', - ), + await vi.advanceTimersByTimeAsync(0) + rendered.getByText( + 'status: success, fetchStatus: fetching, failureCount: 0', ) - await vi.waitFor(() => rendered.getByText('failureReason: null')) + rendered.getByText('failureReason: null') + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: success, fetchStatus: idle, failureCount: 0') + rendered.getByText('failureReason: null') - await vi.waitFor(() => { - expect(rendered.getByText('data: data2')).toBeInTheDocument() - }) + expect(rendered.getByText('data: data2')).toBeInTheDocument() onlineMock.mockRestore() }) @@ -5432,21 +5369,19 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: data1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: data1') const onlineMock = mockOnlineManagerIsOnline(false) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: paused'), - ) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('status: success, fetchStatus: paused') window.dispatchEvent(new Event('visibilitychange')) - await vi.advanceTimersByTimeAsync(15) - await vi.waitFor(() => - expect(rendered.queryByText('data: data2')).not.toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.queryByText('data: data2')).not.toBeInTheDocument() expect(count).toBe(1) onlineMock.mockRestore() }) @@ -5484,18 +5419,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: pending, fetchStatus: paused'), - ) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('status: pending, fetchStatus: paused') fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await vi.advanceTimersByTimeAsync(15) - + await vi.advanceTimersByTimeAsync(11) // invalidation should not trigger a refetch - await vi.waitFor(() => - rendered.getByText('status: pending, fetchStatus: paused'), - ) + rendered.getByText('status: pending, fetchStatus: paused') expect(count).toBe(0) onlineMock.mockRestore() @@ -5535,21 +5466,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: paused'), - ) - await vi.waitFor(() => { - expect(rendered.getByText('data: initial')).toBeInTheDocument() - }) + rendered.getByText('status: success, fetchStatus: paused') + expect(rendered.getByText('data: initial')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await vi.advanceTimersByTimeAsync(15) + await vi.advanceTimersByTimeAsync(11) // invalidation should not trigger a refetch - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: paused'), - ) + rendered.getByText('status: success, fetchStatus: paused') expect(count).toBe(0) onlineMock.mockRestore() @@ -5589,21 +5514,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: paused'), - ) - await vi.waitFor(() => { - expect(rendered.getByText('data: initial')).toBeInTheDocument() - }) + rendered.getByText('status: success, fetchStatus: paused') + expect(rendered.getByText('data: initial')).toBeInTheDocument() // triggers one pause fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await vi.advanceTimersByTimeAsync(15) - - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: paused'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: success, fetchStatus: paused') // triggers a second pause act(() => { @@ -5613,12 +5531,9 @@ describe('useQuery', () => { onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: idle'), - ) - await vi.waitFor(() => { - expect(rendered.getByText('data: data1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: success, fetchStatus: idle') + expect(rendered.getByText('data: data1')).toBeInTheDocument() expect(count).toBe(1) @@ -5654,30 +5569,25 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText(/status: pending, fetchStatus: fetching/i), - ) + rendered.getByText(/status: pending, fetchStatus: fetching/i) const onlineMock = mockOnlineManagerIsOnline(false) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(31) - await vi.waitFor(() => - rendered.getByText( - 'status: pending, fetchStatus: paused, failureCount: 1', - ), + rendered.getByText( + 'status: pending, fetchStatus: paused, failureCount: 1', ) - await vi.waitFor(() => rendered.getByText('failureReason: failed1')) + rendered.getByText('failureReason: failed1') expect(count).toBe(1) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.waitFor(() => - rendered.getByText('status: error, fetchStatus: idle, failureCount: 3'), - ) - await vi.waitFor(() => rendered.getByText('failureReason: failed3')) + await vi.advanceTimersByTimeAsync(31) + rendered.getByText('status: error, fetchStatus: idle, failureCount: 3') + rendered.getByText('failureReason: failed3') expect(count).toBe(3) @@ -5723,24 +5633,20 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: pending, fetchStatus: paused'), - ) + rendered.getByText('status: pending, fetchStatus: paused') fireEvent.click(rendered.getByRole('button', { name: /hide/i })) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.waitFor(() => { - expect(queryClient.getQueryState(key)).toMatchObject({ - fetchStatus: 'idle', - status: 'success', - }) + await vi.advanceTimersByTimeAsync(11) + expect(queryClient.getQueryState(key)).toMatchObject({ + fetchStatus: 'idle', + status: 'success', }) // give it a bit more time to make sure queryFn is not called again - await vi.advanceTimersByTimeAsync(15) expect(count).toBe(1) onlineMock.mockRestore() @@ -5780,26 +5686,21 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: pending, fetchStatus: paused'), - ) + rendered.getByText('status: pending, fetchStatus: paused') fireEvent.click(rendered.getByRole('button', { name: /cancel/i })) - await vi.waitFor(() => - rendered.getByText('status: pending, fetchStatus: idle'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: pending, fetchStatus: idle') expect(count).toBe(0) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.advanceTimersByTimeAsync(15) + await vi.advanceTimersByTimeAsync(11) - await vi.waitFor(() => - rendered.getByText('status: pending, fetchStatus: idle'), - ) + rendered.getByText('status: pending, fetchStatus: idle') expect(count).toBe(0) @@ -5848,26 +5749,22 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: idle'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: success, fetchStatus: idle') const onlineMock = mockOnlineManagerIsOnline(false) fireEvent.click(rendered.getByRole('button', { name: /invalidate/i })) - await vi.waitFor(() => - rendered.getByText('status: success, fetchStatus: paused'), - ) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('status: success, fetchStatus: paused') fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await vi.advanceTimersByTimeAsync(15) - onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.advanceTimersByTimeAsync(15) + await vi.advanceTimersByTimeAsync(11) expect(queryClient.getQueryState(key)).toMatchObject({ fetchStatus: 'idle', @@ -5910,13 +5807,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: success, isPaused: false'), - ) - - await vi.waitFor(() => { - expect(rendered.getByText('data: data 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: success, isPaused: false') + expect(rendered.getByText('data: data 1')).toBeInTheDocument() onlineMock.mockRestore() }) @@ -5954,13 +5847,9 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: error, isPaused: false'), - ) - - await vi.waitFor(() => { - expect(rendered.getByText('error: error 2')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(26) + rendered.getByText('status: error, isPaused: false') + expect(rendered.getByText('error: error 2')).toBeInTheDocument() expect(count).toBe(2) @@ -6001,22 +5890,20 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText( - 'status: pending, fetchStatus: paused, failureCount: 1', - ), + await vi.advanceTimersByTimeAsync(12) + rendered.getByText( + 'status: pending, fetchStatus: paused, failureCount: 1', ) - await vi.waitFor(() => rendered.getByText('failureReason: failed1')) + rendered.getByText('failureReason: failed1') expect(count).toBe(1) onlineMock.mockReturnValue(true) queryClient.getQueryCache().onOnline() - await vi.waitFor(() => - rendered.getByText('status: error, fetchStatus: idle, failureCount: 3'), - ) - await vi.waitFor(() => rendered.getByText('failureReason: failed3')) + await vi.advanceTimersByTimeAsync(22) + rendered.getByText('status: error, fetchStatus: idle, failureCount: 3') + rendered.getByText('failureReason: failed3') expect(count).toBe(3) onlineMock.mockRestore() @@ -6043,7 +5930,8 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: data') expect( queryClient.getQueryCache().find({ queryKey: key })!.observers.length, @@ -6060,7 +5948,8 @@ describe('useQuery', () => { fireEvent.click(rendered.getByRole('button', { name: 'toggle' })) // background refetch when we re-subscribe - await vi.waitFor(() => expect(queryFn).toHaveBeenCalledTimes(2)) + await vi.advanceTimersByTimeAsync(0) + expect(queryFn).toHaveBeenCalledTimes(2) expect( queryClient.getQueryCache().find({ queryKey: key })!.observers.length, ).toBe(1) @@ -6083,7 +5972,9 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data:')) + + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data:') expect( queryClient.getQueryCache().find({ queryKey: key })!.observers.length, @@ -6115,13 +6006,14 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('no data')) - fireEvent.click(rendered.getByRole('button', { name: 'set data' })) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('no data') - await vi.advanceTimersByTimeAsync(10) + fireEvent.click(rendered.getByRole('button', { name: 'set data' })) - await vi.waitFor(() => rendered.getByText('no data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('no data') expect(renders).toBe(1) }) @@ -6152,7 +6044,8 @@ describe('useQuery', () => { await queryClient.prefetchQuery({ queryKey: key, queryFn }) renderWithClient(queryClient, ) - await vi.waitFor(() => expect(states).toHaveLength(1)) + await vi.advanceTimersByTimeAsync(0) + expect(states).toHaveLength(1) expect(states[0]).toMatchObject({ status: 'error', @@ -6184,12 +6077,12 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: data')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: data') fireEvent.click(rendered.getByRole('button', { name: /setQueryData/i })) - await vi.waitFor(() => rendered.getByText('data: newData')) - await vi.waitFor(() => { - expect(rendered.getByText('dataUpdatedAt: 100')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: newData') + expect(rendered.getByText('dataUpdatedAt: 100')).toBeInTheDocument() }) it('errorUpdateCount should increased on each fetch failure', async () => { @@ -6213,18 +6106,16 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(0) const fetchBtn = rendered.getByRole('button', { name: 'refetch' }) - await vi.waitFor(() => - expect(rendered.getByText('data: 1')).toBeInTheDocument(), - ) + expect(rendered.getByText('data: 1')).toBeInTheDocument() fireEvent.click(fetchBtn) - await vi.waitFor(() => - expect(rendered.getByText('data: 2')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: 2')).toBeInTheDocument() fireEvent.click(fetchBtn) - await vi.waitFor(() => - expect(rendered.getByText('data: 3')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: 3')).toBeInTheDocument() }) it('should use provided custom queryClient', async () => { @@ -6247,9 +6138,8 @@ describe('useQuery', () => { const rendered = render() - await vi.waitFor(() => - expect(rendered.getByText('data: custom client')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: custom client')).toBeInTheDocument() }) it('should be notified of updates between create and subscribe', async () => { @@ -6282,12 +6172,10 @@ describe('useQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('status: success')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('data: 1')).toBeInTheDocument(), - ) + + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('status: success')).toBeInTheDocument() + expect(rendered.getByText('data: 1')).toBeInTheDocument() }) it('should reuse same data object reference when queryKey changes back to some cached data', async () => { const key = queryKey() @@ -6331,24 +6219,29 @@ describe('useQuery', () => { expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() - await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 1') expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 2') expect(spy).toHaveBeenCalledTimes(2) // called with undefined because id changed spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /1/ })) - await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 1') expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 2') expect(spy).toHaveBeenCalledTimes(1) }) + it('should reuse same data object reference when queryKey changes and placeholderData is present', async () => { const key = queryKey() const spy = vi.fn() @@ -6392,26 +6285,31 @@ describe('useQuery', () => { expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() - await vi.waitFor(() => rendered.getByText('Rendered Id: 99')) - await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) + rendered.getByText('Rendered Id: 99') + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 1') expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await vi.waitFor(() => rendered.getByText('Rendered Id: 99')) - await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) + rendered.getByText('Rendered Id: 99') + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 2') expect(spy).toHaveBeenCalledTimes(2) // called with undefined because id changed spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /1/ })) - await vi.waitFor(() => rendered.getByText('Rendered Id: 1')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 1') expect(spy).toHaveBeenCalledTimes(1) spy.mockClear() fireEvent.click(rendered.getByRole('button', { name: /2/ })) - await vi.waitFor(() => rendered.getByText('Rendered Id: 2')) + await vi.advanceTimersByTimeAsync(6) + rendered.getByText('Rendered Id: 2') expect(spy).toHaveBeenCalledTimes(1) }) + it('should not cause an infinite render loop when using unstable callback ref', async () => { const key = queryKey() @@ -6431,9 +6329,8 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('Works')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Works')).toBeInTheDocument() }) it('should keep the previous data when placeholderData is set and cache is used', async () => { @@ -6466,19 +6363,23 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.waitFor(() => rendered.getByText('data: 2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 2') // Initial expect(states[0]).toMatchObject({ @@ -6592,20 +6493,15 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('status: pending')).toBeInTheDocument(), - ) + expect(rendered.getByText('status: pending')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: 'enable' })) - await vi.waitFor(() => - expect(rendered.getByText('status: success')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('data: data')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('status: success')).toBeInTheDocument() + expect(rendered.getByText('data: data')).toBeInTheDocument() }) - it('should allow enabled: true and queryFn: skipToken', async () => { + it('should allow enabled: true and queryFn: skipToken', () => { const consoleMock = vi .spyOn(console, 'error') .mockImplementation(() => undefined) @@ -6629,9 +6525,7 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.getByText('status: pending, fetchStatus: idle'), - ) + rendered.getByText('status: pending, fetchStatus: idle') // no warnings expected about skipToken / missing queryFn expect(consoleMock).toHaveBeenCalledTimes(0) @@ -6680,12 +6574,14 @@ describe('useQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('status: error, idle')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: error, idle') fireEvent.click(rendered.getByRole('button', { name: 'toggle' })) fireEvent.click(rendered.getByRole('button', { name: 'toggle' })) - await vi.waitFor(() => rendered.getByText('status: error, idle')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: error, idle') expect(results).toHaveLength(4) @@ -6780,12 +6676,14 @@ describe('useQuery', () => { const rendered = renderWithClient(clientQueryClient, ) - await vi.waitFor(() => rendered.getByText('data: server')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: server') expect(count).toBe(0) fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) - await vi.waitFor(() => rendered.getByText('data: client')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: client') expect(count).toBe(1) }) @@ -6837,8 +6735,11 @@ describe('useQuery', () => { hydrate(clientQueryClient, dehydrated) const rendered = renderWithClient(clientQueryClient, ) - await vi.waitFor(() => rendered.getByText('failure: redacted')) - await vi.waitFor(() => rendered.getByText('data: client')) + + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('failure: redacted') + await vi.advanceTimersByTimeAsync(21) + rendered.getByText('data: client') expect(count).toBe(1) const query = clientQueryClient.getQueryCache().find({ queryKey: key }) From f580f08933d711ef2c70325a89dcd66fb9eaf610 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 09:33:16 +0900 Subject: [PATCH 219/432] test(react-query/suspense): remove 'vi.waitFor' and add 'advanceTimersByTime' (#9350) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/suspense.test.tsx | 60 +++++++------------ 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index c00c036c0a..2ea7e61f2e 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -1,14 +1,6 @@ -import { act, render, waitFor } from '@testing-library/react' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { act, render } from '@testing-library/react' import { Suspense } from 'react' -import { - afterAll, - beforeAll, - beforeEach, - describe, - expect, - it, - vi, -} from 'vitest' import { queryKey } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, useSuspenseQuery } from '..' import type { QueryKey } from '..' @@ -43,15 +35,8 @@ describe('Suspense Timer Tests', () => { let queryClient: QueryClient let fetchCount: { count: number } - beforeAll(() => { - vi.useFakeTimers({ shouldAdvanceTime: true }) - }) - - afterAll(() => { - vi.useRealTimers() - }) - beforeEach(() => { + vi.useFakeTimers() queryClient = new QueryClient({ defaultOptions: { queries: { @@ -62,6 +47,10 @@ describe('Suspense Timer Tests', () => { fetchCount = { count: 0 } }) + afterEach(() => { + vi.useRealTimers() + }) + it('should enforce minimum staleTime of 1000ms when using suspense with number', async () => { const TestComponent = createTestQuery({ fetchCount, @@ -71,7 +60,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) + await act(() => vi.advanceTimersByTime(0)) + rendered.getByText('data: data') rendered.rerender( @@ -81,9 +71,7 @@ describe('Suspense Timer Tests', () => { , ) - act(() => { - vi.advanceTimersByTime(100) - }) + await act(() => vi.advanceTimersByTime(100)) expect(fetchCount.count).toBe(1) }) @@ -97,7 +85,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) + await act(() => vi.advanceTimersByTime(0)) + rendered.getByText('data: data') rendered.rerender( @@ -107,9 +96,7 @@ describe('Suspense Timer Tests', () => { , ) - act(() => { - vi.advanceTimersByTime(100) - }) + await act(() => vi.advanceTimersByTime(100)) expect(fetchCount.count).toBe(1) }) @@ -123,7 +110,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) + await act(() => vi.advanceTimersByTime(0)) + rendered.getByText('data: data') rendered.rerender( @@ -133,9 +121,7 @@ describe('Suspense Timer Tests', () => { , ) - act(() => { - vi.advanceTimersByTime(1500) - }) + await act(() => vi.advanceTimersByTime(1500)) expect(fetchCount.count).toBe(1) }) @@ -149,7 +135,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) + await act(() => vi.advanceTimersByTime(0)) + rendered.getByText('data: data') rendered.rerender( @@ -159,9 +146,7 @@ describe('Suspense Timer Tests', () => { , ) - act(() => { - vi.advanceTimersByTime(500) - }) + await act(() => vi.advanceTimersByTime(500)) expect(fetchCount.count).toBe(1) }) @@ -175,7 +160,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await waitFor(() => rendered.getByText('data: data')) + await act(() => vi.advanceTimersByTime(0)) + rendered.getByText('data: data') rendered.rerender( @@ -185,9 +171,7 @@ describe('Suspense Timer Tests', () => { , ) - act(() => { - vi.advanceTimersByTime(2000) - }) + await act(() => vi.advanceTimersByTime(2000)) expect(fetchCount.count).toBe(1) }) From 57653780bb6e39c524b9bd4f8bca52987897ac07 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 09:37:13 +0900 Subject: [PATCH 220/432] test(react-query/mutationOptions): switch to fake timers, remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9397) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/mutationOptions.test.tsx | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/packages/react-query/src/__tests__/mutationOptions.test.tsx b/packages/react-query/src/__tests__/mutationOptions.test.tsx index 0091c9d99e..118574cbeb 100644 --- a/packages/react-query/src/__tests__/mutationOptions.test.tsx +++ b/packages/react-query/src/__tests__/mutationOptions.test.tsx @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { QueryClient } from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' import { fireEvent } from '@testing-library/react' @@ -8,6 +8,14 @@ import { renderWithClient } from './utils' import type { MutationState } from '@tanstack/query-core' describe('mutationOptions', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('should return the object received as a parameter without any modification.', () => { const object = { mutationKey: ['key'], @@ -54,12 +62,12 @@ describe('mutationOptions', () => { const rendered = renderWithClient(queryClient, ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => expect(isMutatingArray[0]).toEqual(0)) - await vi.waitFor(() => expect(isMutatingArray[1]).toEqual(1)) - await vi.waitFor(() => expect(isMutatingArray[2]).toEqual(0)) - await vi.waitFor(() => - expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0), - ) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(1) + await vi.advanceTimersByTimeAsync(51) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) }) it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { @@ -86,12 +94,12 @@ describe('mutationOptions', () => { const rendered = renderWithClient(queryClient, ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => expect(isMutatingArray[0]).toEqual(0)) - await vi.waitFor(() => expect(isMutatingArray[1]).toEqual(1)) - await vi.waitFor(() => expect(isMutatingArray[2]).toEqual(0)) - await vi.waitFor(() => - expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0), - ) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(1) + await vi.advanceTimersByTimeAsync(501) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) }) it('should return the number of fetching mutations when used with useMutationState', async () => { @@ -122,7 +130,8 @@ describe('mutationOptions', () => { const rendered = renderWithClient(queryClient, ) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => expect(mutationStateArray.length).toEqual(1)) - await vi.waitFor(() => expect(mutationStateArray[0]?.data).toEqual('data')) + await vi.advanceTimersByTimeAsync(0) + expect(mutationStateArray.length).toEqual(1) + expect(mutationStateArray[0]?.data).toEqual('data') }) }) From c6808798f54235b946eebec3fe0c91ed39f12876 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 09:42:07 +0900 Subject: [PATCH 221/432] test(react-query/useMutation): remove 'vi.waitFor', add 'advanceTimersByTimeAsync' and replace 'findByText' with 'getByText' (#9352) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useMutation.test.tsx | 250 +++++++----------- 1 file changed, 93 insertions(+), 157 deletions(-) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index aea6bb7c52..4f3fdf5ccd 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -55,15 +55,13 @@ describe('useMutation', () => { fireEvent.click(getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => { - expect(getByRole('heading').textContent).toBe('mutation') - }) + await vi.advanceTimersByTimeAsync(0) + expect(getByRole('heading').textContent).toBe('mutation') fireEvent.click(getByRole('button', { name: /reset/i })) - await vi.waitFor(() => { - expect(getByRole('heading').textContent).toBe('empty') - }) + await vi.advanceTimersByTimeAsync(0) + expect(getByRole('heading').textContent).toBe('empty') }) it('should be able to reset `error`', async () => { @@ -87,23 +85,19 @@ describe('useMutation', () => { const { getByRole, queryByRole } = renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect(queryByRole('heading')).toBeNull() - }) + expect(queryByRole('heading')).toBeNull() fireEvent.click(getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => { - expect(getByRole('heading').textContent).toBe( - 'Expected mock error. All is well!', - ) - }) + await vi.advanceTimersByTimeAsync(0) + expect(getByRole('heading').textContent).toBe( + 'Expected mock error. All is well!', + ) fireEvent.click(getByRole('button', { name: /reset/i })) - await vi.waitFor(() => { - expect(queryByRole('heading')).toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(queryByRole('heading')).toBeNull() }) it('should be able to call `onSuccess` and `onSettled` after each successful mutate', async () => { @@ -139,21 +133,15 @@ describe('useMutation', () => { fireEvent.click(getByRole('button', { name: /mutate/i })) fireEvent.click(getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => { - expect(getByRole('heading').textContent).toBe('3') - }) - - await vi.waitFor(() => { - expect(onSuccessMock).toHaveBeenCalledTimes(3) - }) + await vi.advanceTimersByTimeAsync(0) + expect(getByRole('heading').textContent).toBe('3') + expect(onSuccessMock).toHaveBeenCalledTimes(3) expect(onSuccessMock).toHaveBeenCalledWith(1) expect(onSuccessMock).toHaveBeenCalledWith(2) expect(onSuccessMock).toHaveBeenCalledWith(3) - await vi.waitFor(() => { - expect(onSettledMock).toHaveBeenCalledTimes(3) - }) + expect(onSettledMock).toHaveBeenCalledTimes(3) expect(onSettledMock).toHaveBeenCalledWith(1) expect(onSettledMock).toHaveBeenCalledWith(2) @@ -193,42 +181,25 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('Data')).toBeInTheDocument(), - ) + expect(rendered.getByText('Data')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => - expect(rendered.getByText('Data')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Status error')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failed 1 times')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('Failed because Error test Jonas'), - ).toBeInTheDocument(), - ) + + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status error')).toBeInTheDocument() + expect(rendered.getByText('Failed 1 times')).toBeInTheDocument() + expect( + rendered.getByText('Failed because Error test Jonas'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => - expect(rendered.getByText('Status pending')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Status success')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Data 2')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failed 0 times')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failed because null')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status pending')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Status success')).toBeInTheDocument() + expect(rendered.getByText('Data 2')).toBeInTheDocument() + expect(rendered.getByText('Failed 0 times')).toBeInTheDocument() + expect(rendered.getByText('Failed because null')).toBeInTheDocument() }) it('should be able to call `onError` and `onSettled` after each failed mutate', async () => { @@ -269,13 +240,9 @@ describe('useMutation', () => { fireEvent.click(getByRole('button', { name: /mutate/i })) fireEvent.click(getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => { - expect(getByRole('heading').textContent).toBe('3') - }) - - await vi.waitFor(() => { - expect(onErrorMock).toHaveBeenCalledTimes(3) - }) + await vi.advanceTimersByTimeAsync(0) + expect(getByRole('heading').textContent).toBe('3') + expect(onErrorMock).toHaveBeenCalledTimes(3) expect(onErrorMock).toHaveBeenCalledWith( 'Expected mock error. All is well! 1', ) @@ -286,9 +253,7 @@ describe('useMutation', () => { 'Expected mock error. All is well! 3', ) - await vi.waitFor(() => { - expect(onSettledMock).toHaveBeenCalledTimes(3) - }) + expect(onSettledMock).toHaveBeenCalledTimes(3) expect(onSettledMock).toHaveBeenCalledWith( 'Expected mock error. All is well! 1', ) @@ -497,30 +462,26 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - expect( - rendered.getByText('error: null, status: idle, isPaused: false'), - ).toBeInTheDocument() - }) + expect( + rendered.getByText('error: null, status: idle, isPaused: false'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => { - expect( - rendered.getByText('error: null, status: pending, isPaused: true'), - ).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('error: null, status: pending, isPaused: true'), + ).toBeInTheDocument() expect(count).toBe(0) onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - await vi.waitFor(() => { - expect( - rendered.getByText('error: oops, status: error, isPaused: false'), - ).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect( + rendered.getByText('error: oops, status: error, isPaused: false'), + ).toBeInTheDocument() expect(count).toBe(2) onlineMock.mockRestore() @@ -554,23 +515,20 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - rendered.findByText('data: null, status: idle, isPaused: false') + rendered.getByText('data: null, status: idle, isPaused: false') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => - rendered.findByText('data: null, status: pending, isPaused: true'), - ) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: null, status: pending, isPaused: true') expect(onMutate).toHaveBeenCalledTimes(1) expect(onMutate).toHaveBeenCalledWith('todo') onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - - await vi.waitFor(() => - rendered.findByText('data: 1, status: success, isPaused: false'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1, status: success, isPaused: false') expect(onMutate).toHaveBeenCalledTimes(1) expect(count).toBe(1) @@ -607,15 +565,12 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.findByText('data: null, status: idle, isPaused: false'), - ) + rendered.getByText('data: null, status: idle, isPaused: false') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => - rendered.findByText('data: null, status: pending, isPaused: true'), - ) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: null, status: pending, isPaused: true') // no intermediate 'pending, false' state is expected because we don't start mutating! expect(states[0]).toBe('idle, false') @@ -624,9 +579,8 @@ describe('useMutation', () => { onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - await vi.waitFor(() => - rendered.findByText('data: 1, status: success, isPaused: false'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1, status: success, isPaused: false') onlineMock.mockRestore() }) @@ -664,9 +618,10 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('status: idle')) + rendered.getByText('status: idle') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => rendered.getByText('isPaused: true')) + await vi.advanceTimersByTimeAsync(16) + rendered.getByText('isPaused: true') expect( queryClient.getMutationCache().findAll({ mutationKey: key }).length, @@ -683,7 +638,8 @@ describe('useMutation', () => { onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() - await vi.waitFor(() => rendered.getByText('data: data2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: data2') expect( queryClient.getMutationCache().findAll({ mutationKey: key })[0]?.state, @@ -756,9 +712,8 @@ describe('useMutation', () => { fireEvent.click(getByText('mutate')) - await vi.waitFor(() => { - expect(queryByText('error')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(queryByText('error')).not.toBeNull() expect(consoleMock.mock.calls[0]?.[1]).toBe(err) @@ -805,16 +760,14 @@ describe('useMutation', () => { // first error goes to component fireEvent.click(getByText('mutate')) - await vi.waitFor(() => { - expect(queryByText('mock error')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(queryByText('mock error')).not.toBeNull() // second error goes to boundary boundary = true fireEvent.click(getByText('mutate')) - await vi.waitFor(() => { - expect(queryByText('error boundary')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(queryByText('error boundary')).not.toBeNull() consoleMock.mockRestore() }) @@ -866,10 +819,9 @@ describe('useMutation', () => { fireEvent.click(getByText('succeed')) fireEvent.click(getByText('error')) - await vi.waitFor(() => { - expect(queryByText('successTest')).not.toBeNull() - expect(queryByText('errorTest')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(queryByText('successTest')).not.toBeNull() + expect(queryByText('errorTest')).not.toBeNull() expect(successMock).toHaveBeenCalledTimes(1) expect(successMock).toHaveBeenCalledWith(metaSuccessMessage) @@ -930,18 +882,14 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - rendered.findByText('data: null, status: idle, isPaused: false'), - ) - + rendered.getByText('data: null, status: idle, isPaused: false') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - await vi.waitFor(() => { - expect( - queryClient.getMutationCache().findAll({ mutationKey }), - ).toHaveLength(0) - }) + await vi.advanceTimersByTimeAsync(11) + expect( + queryClient.getMutationCache().findAll({ mutationKey }), + ).toHaveLength(0) expect(count).toBe(1) @@ -1001,14 +949,13 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.findByText('data: null, status: idle')) + rendered.getByText('data: null, status: idle') fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) - await vi.waitFor(() => - rendered.findByText('data: result-todo2, status: success'), - ) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: result-todo2, status: success') expect(count).toBe(2) @@ -1065,11 +1012,12 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.findByText('status: idle')) + rendered.getByText('status: idle') rendered.getByRole('button', { name: /mutate/i }).click() - await vi.waitFor(() => rendered.findByText('status: error')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('status: error') expect(onError).toHaveBeenCalledWith(error, 'todo', undefined) }) @@ -1101,19 +1049,14 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect( - rendered.getByText('error: null, status: idle'), - ).toBeInTheDocument(), - ) + expect(rendered.getByText('error: null, status: idle')).toBeInTheDocument() rendered.getByRole('button', { name: /mutate/i }).click() - await vi.waitFor(() => - expect( - rendered.getByText('error: mutateFnError, status: error'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('error: mutateFnError, status: error'), + ).toBeInTheDocument() }) it('should go to error state if onSettled callback errors', async () => { @@ -1145,14 +1088,12 @@ describe('useMutation', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.findByText('error: null, status: idle')) + rendered.getByText('error: null, status: idle') rendered.getByRole('button', { name: /mutate/i }).click() - await vi.waitFor(() => - rendered.findByText('error: mutateFnError, status: error'), - ) - + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('error: mutateFnError, status: error') expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined) }) @@ -1181,18 +1122,13 @@ describe('useMutation', () => { const rendered = render() - await vi.waitFor(() => - expect( - rendered.getByText('data: null, status: idle'), - ).toBeInTheDocument(), - ) + expect(rendered.getByText('data: null, status: idle')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => - expect( - rendered.getByText('data: custom client, status: success'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('data: custom client, status: success'), + ).toBeInTheDocument() }) }) From f6085d0f9979fcac59018bfc3d14febd2ec34d53 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 09:49:16 +0900 Subject: [PATCH 222/432] test(react-query/useInfiniteQuery): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9366) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useInfiniteQuery.test.tsx | 253 +++++++++--------- 1 file changed, 130 insertions(+), 123 deletions(-) diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index 26de8f3335..34ffaf7a47 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -159,7 +159,7 @@ describe('useInfiniteQuery', () => { it('should not throw when fetchNextPage returns an error', async () => { const key = queryKey() - let noThrow: boolean + let noThrow = false function Page() { const start = 1 @@ -194,7 +194,8 @@ describe('useInfiniteQuery', () => { renderWithClient(queryClient, ) - await vi.waitFor(() => expect(noThrow).toBe(true)) + await vi.advanceTimersByTimeAsync(31) + expect(noThrow).toBe(true) }) it('should keep the previous data when placeholderData is set', async () => { @@ -230,15 +231,16 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0-desc')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0-desc') fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - - await vi.waitFor(() => rendered.getByText('data: 0-desc,1-desc')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0-desc,1-desc') fireEvent.click(rendered.getByRole('button', { name: /order/i })) - - await vi.waitFor(() => rendered.getByText('data: 0-asc')) - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(6)) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0-asc') + rendered.getByText('isFetching: false') + expect(states.length).toBe(6) expect(states[0]).toMatchObject({ data: undefined, @@ -307,9 +309,8 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('count: 1') - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('count: 1') expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -356,9 +357,8 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('count: 1') - }) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('count: 1') expect(states.length).toBe(2) expect(selectCalled).toBe(1) @@ -405,12 +405,14 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 0') fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await vi.waitFor(() => rendered.getByText('data: 1,0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1,0') - await vi.waitFor(() => expect(states.length).toBe(4)) + expect(states.length).toBe(4) expect(states[0]).toMatchObject({ data: undefined, isSuccess: false, @@ -461,17 +463,15 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => { - rendered.getByText('data: 10') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 10') fireEvent.click( rendered.getByRole('button', { name: /fetch previous page/i }), ) - await vi.waitFor(() => { - rendered.getByText('data: 9,10') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 9,10') expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -546,18 +546,23 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 10')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 10') fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await vi.waitFor(() => rendered.getByText('data: 10,11')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 10,11') fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) - await vi.waitFor(() => rendered.getByText('data: 9,10,11')) + + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 9,10,11') fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(8)) + rendered.getByText('isFetching: false') + await vi.advanceTimersByTimeAsync(31) + expect(states.length).toBe(8) // Initial fetch expect(states[0]).toMatchObject({ @@ -664,11 +669,13 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 10')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 10') fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(4)) + rendered.getByText('isFetching: false') + await vi.advanceTimersByTimeAsync(31) + expect(states.length).toBe(4) // Initial fetch expect(states[0]).toMatchObject({ @@ -751,11 +758,13 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 10')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 10') fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(4)) + rendered.getByText('isFetching: false') + await vi.advanceTimersByTimeAsync(31) + expect(states.length).toBe(4) // Initial fetch expect(states[0]).toMatchObject({ @@ -840,13 +849,15 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: 10')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 10') fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(4)) + rendered.getByText('isFetching: false') + await vi.advanceTimersByTimeAsync(31) + expect(states.length).toBe(4) // Initial fetch expect(states[0]).toMatchObject({ @@ -924,31 +935,23 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect(rendered.getByText('status: success, idle')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('data: {"pages":[10],"pageParams":[10]}'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(51) + expect(rendered.getByText('status: success, idle')).toBeInTheDocument() + expect( + rendered.getByText('data: {"pages":[10],"pageParams":[10]}'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => - expect( - rendered.getByText('status: success, fetching'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('status: success, fetching')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await vi.waitFor(() => - expect(rendered.getByText('status: success, idle')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('data: {"pages":[10,11],"pageParams":[10,11]}'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(51) + expect(rendered.getByText('status: success, idle')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(51) + expect( + rendered.getByText('data: {"pages":[10,11],"pageParams":[10,11]}'), + ).toBeInTheDocument() }) it('should silently cancel an ongoing fetchNextPage request when another fetchNextPage is invoked', async () => { @@ -1231,29 +1234,26 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => - expect( - rendered.getByText('data: {"pages":[0],"pageParams":[0]}'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('data: {"pages":[0],"pageParams":[0]}'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /setPages/i })) - await vi.waitFor(() => - expect( - rendered.getByText('data: {"pages":[7,8],"pageParams":[7,8]}'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('data: {"pages":[7,8],"pageParams":[7,8]}'), + ).toBeInTheDocument() multiplier = 2 fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.waitFor(() => - expect( - rendered.getByText('data: {"pages":[14,30],"pageParams":[7,15]}'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(21) + expect( + rendered.getByText('data: {"pages":[14,30],"pageParams":[7,15]}'), + ).toBeInTheDocument() }) it('should only refetch the first page when initialData is provided', async () => { @@ -1586,31 +1586,38 @@ describe('useInfiniteQuery', () => { rendered.getByText('Loading...') - await vi.waitFor(() => rendered.getByText('Item: 2')) - await vi.waitFor(() => rendered.getByText('Page 0: 0')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Item: 2') + rendered.getByText('Page 0: 0') fireEvent.click(rendered.getByText('Load More')) - await vi.waitFor(() => rendered.getByText('Loading more...')) - await vi.waitFor(() => rendered.getByText('Item: 5')) - await vi.waitFor(() => rendered.getByText('Page 0: 0')) - await vi.waitFor(() => rendered.getByText('Page 1: 1')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Item: 5') + rendered.getByText('Page 0: 0') + rendered.getByText('Page 1: 1') fireEvent.click(rendered.getByText('Load More')) - await vi.waitFor(() => rendered.getByText('Loading more...')) - await vi.waitFor(() => rendered.getByText('Item: 8')) - await vi.waitFor(() => rendered.getByText('Page 0: 0')) - await vi.waitFor(() => rendered.getByText('Page 1: 1')) - await vi.waitFor(() => rendered.getByText('Page 2: 2')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Item: 8') + rendered.getByText('Page 0: 0') + rendered.getByText('Page 1: 1') + rendered.getByText('Page 2: 2') fireEvent.click(rendered.getByText('Refetch')) - await vi.waitFor(() => rendered.getByText('Background Updating...')) - await vi.waitFor(() => rendered.getByText('Item: 8')) - await vi.waitFor(() => rendered.getByText('Page 0: 3')) - await vi.waitFor(() => rendered.getByText('Page 1: 4')) - await vi.waitFor(() => rendered.getByText('Page 2: 5')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Background Updating...') + await vi.advanceTimersByTimeAsync(31) + rendered.getByText('Item: 8') + rendered.getByText('Page 0: 3') + rendered.getByText('Page 1: 4') + rendered.getByText('Page 2: 5') // ensure that Item: 4 is rendered before removing it expect(rendered.queryAllByText('Item: 4')).toHaveLength(1) @@ -1618,12 +1625,14 @@ describe('useInfiniteQuery', () => { // remove Item: 4 fireEvent.click(rendered.getByText('Remove item')) - await vi.waitFor(() => rendered.getByText('Background Updating...')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Background Updating...') // ensure that an additional item is rendered (it means that cursors were properly rebuilt) - await vi.waitFor(() => rendered.getByText('Item: 9')) - await vi.waitFor(() => rendered.getByText('Page 0: 6')) - await vi.waitFor(() => rendered.getByText('Page 1: 7')) - await vi.waitFor(() => rendered.getByText('Page 2: 8')) + await vi.advanceTimersByTimeAsync(31) + rendered.getByText('Item: 9') + rendered.getByText('Page 0: 6') + rendered.getByText('Page 1: 7') + rendered.getByText('Page 2: 8') // ensure that Item: 4 is no longer rendered expect(rendered.queryAllByText('Item: 4')).toHaveLength(0) @@ -1711,31 +1720,30 @@ describe('useInfiniteQuery', () => { rendered.getByText('Loading...') - await vi.waitFor(() => { - rendered.getByText('Item: 9') - rendered.getByText('Page 0: 0') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Item: 9') + rendered.getByText('Page 0: 0') fireEvent.click(rendered.getByText('Load More')) - await vi.waitFor(() => rendered.getByText('Loading more...')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') - await vi.waitFor(() => { - rendered.getByText('Item: 19') - rendered.getByText('Page 0: 0') - rendered.getByText('Page 1: 1') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Item: 19') + rendered.getByText('Page 0: 0') + rendered.getByText('Page 1: 1') fireEvent.click(rendered.getByText('Load More')) - await vi.waitFor(() => rendered.getByText('Loading more...')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') - await vi.waitFor(() => { - rendered.getByText('Item: 29') - rendered.getByText('Page 0: 0') - rendered.getByText('Page 1: 1') - rendered.getByText('Page 2: 2') - }) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('Item: 29') + rendered.getByText('Page 0: 0') + rendered.getByText('Page 1: 1') + rendered.getByText('Page 2: 2') rendered.getByText('Nothing more to load') @@ -1743,12 +1751,12 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByText('Refetch')) - await vi.waitFor(() => rendered.getByText('Background Updating...')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Background Updating...') - await vi.waitFor(() => { - rendered.getByText('Page 0: 3') - rendered.getByText('Page 1: 4') - }) + await vi.advanceTimersByTimeAsync(21) + rendered.getByText('Page 0: 3') + rendered.getByText('Page 1: 4') expect(rendered.queryByText('Item: 29')).toBeNull() expect(rendered.queryByText('Page 2: 5')).toBeNull() @@ -1756,7 +1764,7 @@ describe('useInfiniteQuery', () => { rendered.getByText('Nothing more to load') }) - it('should cancel the query function when there are no more subscriptions', async () => { + it('should cancel the query function when there are no more subscriptions', () => { const key = queryKey() let cancelFn: Mock = vi.fn() @@ -1798,11 +1806,11 @@ describe('useInfiniteQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('visible')) + rendered.getByText('visible') fireEvent.click(rendered.getByRole('button', { name: 'hide' })) - await vi.waitFor(() => rendered.getByText('hidden')) + rendered.getByText('hidden') expect(cancelFn).toHaveBeenCalled() }) @@ -1829,9 +1837,8 @@ describe('useInfiniteQuery', () => { const rendered = render() - await vi.waitFor(() => - expect(rendered.getByText('data: custom client')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: custom client')).toBeInTheDocument() }) it('should work with React.use()', async () => { From fd7c6557d3d236102cf9a8a8a43e4ed9e257d07b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:13:08 +0900 Subject: [PATCH 223/432] test(react-query/useQueries): remove 'waitFor' and add 'advanceTimersByTimeAsync' (#9367) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useQueries.test.tsx | 181 +++++++++--------- 1 file changed, 92 insertions(+), 89 deletions(-) diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index b885def59c..5efd067df1 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -1,5 +1,13 @@ -import { describe, expect, expectTypeOf, it, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@testing-library/react' +import { + afterEach, + beforeEach, + describe, + expect, + expectTypeOf, + it, + vi, +} from 'vitest' +import { fireEvent, render } from '@testing-library/react' import * as React from 'react' import { ErrorBoundary } from 'react-error-boundary' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -21,6 +29,14 @@ import type { import type { QueryFunctionContext } from '@tanstack/query-core' describe('useQueries', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -62,7 +78,8 @@ describe('useQueries', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data1: 1, data2: 2')) + await vi.advanceTimersByTimeAsync(201) + rendered.getByText('data1: 1, data2: 2') expect(results.length).toBe(3) expect(results[0]).toMatchObject([{ data: undefined }, { data: undefined }]) @@ -100,7 +117,8 @@ describe('useQueries', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: 1')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 1') expect(results.length).toBe(2) expect(results[0]).toMatchObject([{ data: undefined }]) @@ -108,7 +126,8 @@ describe('useQueries', () => { fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('data: 2')) + await vi.advanceTimersByTimeAsync(11) + rendered.getByText('data: 2') // only one render for data update, no render for isFetching transition expect(results.length).toBe(3) @@ -842,12 +861,9 @@ describe('useQueries', () => { , ) - await waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await waitFor(() => - expect(rendered.getByText('single query error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('single query error')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -913,12 +929,9 @@ describe('useQueries', () => { , ) - await waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await waitFor(() => - expect(rendered.getByText('single query error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('single query error')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -946,9 +959,8 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => - expect(rendered.getByText('data: custom client')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: custom client')).toBeInTheDocument() }) it('should combine queries', async () => { @@ -989,11 +1001,10 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => - expect( - rendered.getByText('data: true first result,second result'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('data: true first result,second result'), + ).toBeInTheDocument() }) it('should not return new instances when called without queries', async () => { @@ -1035,14 +1046,16 @@ describe('useQueries', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => rendered.getByText('data: {"empty":"object"}')) - await waitFor(() => rendered.getByText('count: 0')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: {"empty":"object"}') + rendered.getByText('count: 0') expect(resultChanged).toBe(1) fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await waitFor(() => rendered.getByText('count: 1')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('count: 1') // there should be no further effect calls because the returned object is structurally shared expect(resultChanged).toBe(1) }) @@ -1064,7 +1077,7 @@ describe('useQueries', () => { renderWithClient(queryClient, ) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(renderCount).toBe(1) }) @@ -1102,13 +1115,13 @@ describe('useQueries', () => { } const rendered = renderWithClient(queryClient, ) - await waitFor(() => - expect( - rendered.getByText( - 'data: {"data":{"query1":"query1","query2":"query2"}}', - ), - ).toBeInTheDocument(), - ) + + await vi.advanceTimersByTimeAsync(21) + expect( + rendered.getByText( + 'data: {"data":{"query1":"query1","query2":"query2"}}', + ), + ).toBeInTheDocument() }) it('should track property access through combine function', async () => { @@ -1163,11 +1176,10 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => - expect( - rendered.getByText('data: true first result 0,second result 0'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(51) + expect( + rendered.getByText('data: true first result 0,second result 0'), + ).toBeInTheDocument() expect(results.length).toBe(3) @@ -1193,9 +1205,8 @@ describe('useQueries', () => { fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => - rendered.getByText('data: true first result 1,second result 1'), - ) + await vi.advanceTimersByTimeAsync(51) + rendered.getByText('data: true first result 1,second result 1') const length = results.length @@ -1209,7 +1220,7 @@ describe('useQueries', () => { fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) // no further re-render because data didn't change expect(results.length).toBe(length) }) @@ -1259,15 +1270,10 @@ describe('useQueries', () => { const rendered = renderWithClient(queryClient, ) - await waitFor(() => - expect( - rendered.getByText('Loading Status: Loading...'), - ).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading Status: Loading...')).toBeInTheDocument() - await waitFor(() => - expect(rendered.getByText('Loading Status: Loaded')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Loading Status: Loaded')).toBeInTheDocument() }) it('should not have stale closures with combine (#6648)', async () => { @@ -1305,13 +1311,13 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => rendered.getByText('data: 0 result')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: 0 result') fireEvent.click(rendered.getByRole('button', { name: /inc/i })) - await waitFor(() => - expect(rendered.getByText('data: 1 result')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: 1 result')).toBeInTheDocument() }) it('should optimize combine if it is a stable reference', async () => { @@ -1367,14 +1373,15 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => - rendered.getByText('data: true first result:0,second result:0'), - ) + await vi.advanceTimersByTimeAsync(21) + rendered.getByText('data: true first result:0,second result:0') // both pending, one pending, both resolved expect(spy).toHaveBeenCalledTimes(3) - await client.refetchQueries() + client.refetchQueries() + + await vi.advanceTimersByTimeAsync(21) // no increase because result hasn't changed expect(spy).toHaveBeenCalledTimes(3) @@ -1385,11 +1392,10 @@ describe('useQueries', () => { value = 1 - await client.refetchQueries() + client.refetchQueries() - await waitFor(() => - rendered.getByText('data: true first result:1,second result:1'), - ) + await vi.advanceTimersByTimeAsync(21) + rendered.getByText('data: true first result:1,second result:1') // two value changes = two re-renders expect(spy).toHaveBeenCalledTimes(5) @@ -1451,9 +1457,8 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => - rendered.getByText('data: 0 first result,second result'), - ) + await vi.advanceTimersByTimeAsync(21) + rendered.getByText('data: 0 first result,second result') // both pending, one pending, both resolved expect(spy).toHaveBeenCalledTimes(3) @@ -1510,11 +1515,10 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => rendered.getByText('data: foo')) + await vi.advanceTimersByTimeAsync(21) + rendered.getByText('data: foo') - await waitFor(() => - expect(queryFns).toEqual(['first result', 'second result']), - ) + expect(queryFns).toEqual(['first result', 'second result']) expect(renders).toBe(1) }) @@ -1574,8 +1578,10 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => rendered.getByText('data: pending')) - await waitFor(() => rendered.getByText('data: foo')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('data: pending') + await vi.advanceTimersByTimeAsync(21) + rendered.getByText('data: foo') // one with pending, one with foo expect(renders).toBe(2) @@ -1640,23 +1646,20 @@ describe('useQueries', () => { const rendered = render() - await waitFor(() => - expect(rendered.getByText('data: pending')).toBeInTheDocument(), - ) - await waitFor(() => - expect( - rendered.getByText('data: first result, second result, third result'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('data: pending')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(21) + expect( + rendered.getByText('data: first result, second result, third result'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /update/i })) - await waitFor(() => - expect( - rendered.getByText( - 'data: first result updated, second result, third result', - ), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(21) + expect( + rendered.getByText( + 'data: first result updated, second result, third result', + ), + ).toBeInTheDocument() }) }) From c9daf2cab24c66881756ca3acfae83e66aee2caf Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:27:00 +0900 Subject: [PATCH 224/432] test(react-query/usePrefetchQuery): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9355) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/usePrefetchQuery.test.tsx | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx index 2f8fdeca54..a010c851b5 100644 --- a/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx +++ b/packages/react-query/src/__tests__/usePrefetchQuery.test.tsx @@ -1,8 +1,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import React from 'react' -import { fireEvent } from '@testing-library/react' +import { act, fireEvent } from '@testing-library/react' import { ErrorBoundary } from 'react-error-boundary' -import { queryKey } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, @@ -18,7 +18,7 @@ const generateQueryFn = (data: string) => vi .fn<(...args: Array) => Promise>() .mockImplementation(async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return data }) @@ -72,7 +72,8 @@ describe('usePrefetchQuery', () => { const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: prefetchQuery')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: prefetchQuery') expect(queryOpts.queryFn).toHaveBeenCalledTimes(1) }) @@ -92,14 +93,13 @@ describe('usePrefetchQuery', () => { ) } - await queryClient.fetchQuery(queryOpts) + queryClient.fetchQuery(queryOpts) + await vi.advanceTimersByTimeAsync(10) queryOpts.queryFn.mockClear() const rendered = renderWithClient(queryClient, ) expect(rendered.queryByText('fetching: true')).not.toBeInTheDocument() - await vi.waitFor(() => - rendered.getByText('data: The usePrefetchQuery hook is smart!'), - ) + rendered.getByText('data: The usePrefetchQuery hook is smart!') expect(queryOpts.queryFn).not.toHaveBeenCalled() }) @@ -114,7 +114,7 @@ describe('usePrefetchQuery', () => { } queryFn.mockImplementationOnce(async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) throw new Error('Oops! Server error!') }) @@ -131,11 +131,12 @@ describe('usePrefetchQuery', () => { ) } - await queryClient.prefetchQuery(queryOpts) + queryClient.prefetchQuery(queryOpts) + await vi.advanceTimersByTimeAsync(10) queryFn.mockClear() const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Oops!')) + rendered.getByText('Oops!') expect(rendered.queryByText('data: Not an error')).not.toBeInTheDocument() expect(queryOpts.queryFn).not.toHaveBeenCalled() @@ -166,7 +167,8 @@ describe('usePrefetchQuery', () => { } const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('data: prefetchedQuery')) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: prefetchedQuery') expect(queryOpts.queryFn).toHaveBeenCalledTimes(1) }) @@ -181,7 +183,7 @@ describe('usePrefetchQuery', () => { } queryFn.mockImplementationOnce(async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) throw new Error('Oops! Server error!') }) @@ -207,16 +209,16 @@ describe('usePrefetchQuery', () => { ) } - await queryClient.prefetchQuery(queryOpts) + queryClient.prefetchQuery(queryOpts) + await vi.advanceTimersByTimeAsync(10) queryFn.mockClear() const rendered = renderWithClient(queryClient, ) - await vi.waitFor(() => rendered.getByText('Oops!')) + rendered.getByText('Oops!') fireEvent.click(rendered.getByText('Try again')) - await vi.waitFor(() => - rendered.getByText('data: This is fine :dog: :fire:'), - ) + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: This is fine :dog: :fire:') expect(queryOpts.queryFn).toHaveBeenCalledTimes(1) consoleMock.mockRestore() }) @@ -265,14 +267,11 @@ describe('usePrefetchQuery', () => { expect( queryClient.getQueryState(thirdQueryOpts.queryKey)?.fetchStatus, ).toBe('fetching') - await vi.waitFor(() => rendered.getByText('Loading...')) - await vi.waitFor(() => rendered.getByText('data: Prefetch is nice!')) - await vi.waitFor(() => - rendered.getByText('data: Prefetch is really nice!!'), - ) - await vi.waitFor(() => - rendered.getByText('data: Prefetch does not create waterfalls!!'), - ) + rendered.getByText('Loading...') + await act(() => vi.advanceTimersByTimeAsync(11)) + rendered.getByText('data: Prefetch is nice!') + rendered.getByText('data: Prefetch is really nice!!') + rendered.getByText('data: Prefetch does not create waterfalls!!') expect(Fallback).toHaveBeenCalledTimes(1) expect(firstQueryOpts.queryFn).toHaveBeenCalledTimes(1) expect(secondQueryOpts.queryFn).toHaveBeenCalledTimes(1) From fc2a95cfffb95c4fef3ebf8a6341fc95db3b9053 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:31:54 +0900 Subject: [PATCH 225/432] test(vue-query/useInfiniteQuery): switch to fake timers and replace 'sleep' with 'advanceTimersByTimeAsync' (#9368) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useInfiniteQuery.test.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts b/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts index a7c3b05b0d..d78eb3ad07 100644 --- a/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts +++ b/packages/vue-query/src/__tests__/useInfiniteQuery.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { sleep } from '@tanstack/query-test-utils' import { useInfiniteQuery } from '../useInfiniteQuery' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -6,6 +6,14 @@ import { infiniteQueryOptions } from '../infiniteQueryOptions' vi.mock('../useQueryClient') describe('useQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('should properly execute infinite query', async () => { const { data, fetchNextPage, status } = useInfiniteQuery({ queryKey: ['infiniteQuery'], @@ -18,7 +26,7 @@ describe('useQuery', () => { expect(data.value).toStrictEqual(undefined) expect(status.value).toStrictEqual('pending') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(data.value).toStrictEqual({ pageParams: [0], @@ -28,7 +36,7 @@ describe('useQuery', () => { fetchNextPage() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(data.value).toStrictEqual({ pageParams: [0, 12], @@ -50,7 +58,7 @@ describe('useQuery', () => { expect(data.value).toStrictEqual(undefined) expect(status.value).toStrictEqual('pending') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(data.value).toStrictEqual({ pageParams: [0], @@ -60,7 +68,7 @@ describe('useQuery', () => { fetchNextPage() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(data.value).toStrictEqual({ pageParams: [0, 12], From 79893c8bab8c72076fb43ffeb10ea68d8d73581b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:34:52 +0900 Subject: [PATCH 226/432] test(vue-query/queryClient): switch to fake timers and replace 'sleep' with 'advanceTimersByTimeAsync' (#9371) Co-authored-by: Jonghyeon Ko --- .../vue-query/src/__tests__/queryClient.test.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/vue-query/src/__tests__/queryClient.test.ts b/packages/vue-query/src/__tests__/queryClient.test.ts index a9b4753d18..da62c69e24 100644 --- a/packages/vue-query/src/__tests__/queryClient.test.ts +++ b/packages/vue-query/src/__tests__/queryClient.test.ts @@ -1,7 +1,6 @@ -import { describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { ref } from 'vue-demi' import { QueryClient as QueryClientOrigin } from '@tanstack/query-core' -import { sleep } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { infiniteQueryOptions } from '../infiniteQueryOptions' @@ -13,6 +12,14 @@ const queryKeyUnref = ['foo', 'bar'] const fn = () => 'mock' describe('QueryCache', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + describe('isFetching', () => { test('should properly unwrap 1 parameter', () => { const queryClient = new QueryClient() @@ -227,7 +234,7 @@ describe('QueryCache', () => { expect(invalidateQueries).toBeCalled() expect(refetchQueries).not.toBeCalled() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(refetchQueries).toBeCalled() }) @@ -252,7 +259,7 @@ describe('QueryCache', () => { expect(invalidateQueries).toBeCalled() expect(refetchQueries).not.toBeCalled() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(refetchQueries).not.toBeCalled() }) From fc0b23e1201ca30625b94eb5b5d57d8412de753e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:41:46 +0900 Subject: [PATCH 227/432] test(vue-query/useQueries): switch to fake timers and replace 'sleep' with 'advanceTimersByTimeAsync' (#9369) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useQueries.test.ts | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/packages/vue-query/src/__tests__/useQueries.test.ts b/packages/vue-query/src/__tests__/useQueries.test.ts index 53a773f20e..31b98e7b3d 100644 --- a/packages/vue-query/src/__tests__/useQueries.test.ts +++ b/packages/vue-query/src/__tests__/useQueries.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { onScopeDispose, ref } from 'vue-demi' import { sleep } from '@tanstack/query-test-utils' import { useQueries } from '../useQueries' @@ -11,6 +11,11 @@ vi.mock('../useQueryClient') describe('useQueries', () => { beforeEach(() => { vi.restoreAllMocks() + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() }) test('should return result for each query', () => { @@ -55,7 +60,7 @@ describe('useQueries', () => { ] const queriesState = useQueries({ queries }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queriesState.value).toMatchObject([ { @@ -87,7 +92,7 @@ describe('useQueries', () => { ] const queriesState = useQueries({ queries }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queriesState.value).toMatchObject([ { @@ -122,7 +127,7 @@ describe('useQueries', () => { ]) const queriesState = useQueries({ queries }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) queries.value.splice( 0, @@ -137,8 +142,8 @@ describe('useQueries', () => { }, ) - await sleep(0) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(0) expect(queriesState.value.length).toEqual(2) expect(queriesState.value).toMatchObject([ @@ -176,7 +181,7 @@ describe('useQueries', () => { }, ] const queriesState = useQueries({ queries }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queriesState.value).toMatchObject([ { @@ -208,7 +213,7 @@ describe('useQueries', () => { ] useQueries({ queries }, queryClient) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(useQueryClient).toHaveBeenCalledTimes(0) }) @@ -241,7 +246,7 @@ describe('useQueries', () => { }, queryClient, ) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queriesResult.value).toMatchObject({ combined: true, @@ -267,7 +272,7 @@ describe('useQueries', () => { checked.value = true - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalled() }) @@ -290,13 +295,13 @@ describe('useQueries', () => { key1.value = 'key3' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(2) key2.value = 'key4' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(3) }) @@ -335,31 +340,31 @@ describe('useQueries', () => { key1.value = 'key1-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(2) key2.value = 'key2-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(3) key3.value = 'key3-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(4) key4.value = 'key4-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(5) key5.value = 'key5-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(6) }) From 367a96e86ecbf070703b7341e77f4a28843ac310 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:49:17 +0900 Subject: [PATCH 228/432] test(vue-query/useIsFetching): switch to fake timers and replace 'sleep' with 'advanceTimersByTimeAsync' (#9370) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsFetching.test.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/vue-query/src/__tests__/useIsFetching.test.ts b/packages/vue-query/src/__tests__/useIsFetching.test.ts index f07d79a122..805f002404 100644 --- a/packages/vue-query/src/__tests__/useIsFetching.test.ts +++ b/packages/vue-query/src/__tests__/useIsFetching.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { onScopeDispose, reactive } from 'vue-demi' import { sleep } from '@tanstack/query-test-utils' import { useQuery } from '../useQuery' @@ -8,6 +8,14 @@ import type { MockedFunction } from 'vitest' vi.mock('../useQueryClient') describe('useIsFetching', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('should properly return isFetching state', async () => { const { isFetching: isFetchingQuery } = useQuery({ queryKey: ['isFetching1'], @@ -22,7 +30,7 @@ describe('useIsFetching', () => { expect(isFetchingQuery.value).toStrictEqual(true) expect(isFetching.value).toStrictEqual(2) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(isFetchingQuery.value).toStrictEqual(false) expect(isFetching.value).toStrictEqual(0) @@ -43,12 +51,12 @@ describe('useIsFetching', () => { expect(status.value).toStrictEqual('pending') expect(isFetching.value).toStrictEqual(1) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(status.value).toStrictEqual('pending') expect(isFetching.value).toStrictEqual(1) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(status.value).toStrictEqual('pending') expect(isFetching.value).toStrictEqual(1) @@ -72,7 +80,7 @@ describe('useIsFetching', () => { expect(isFetching.value).toStrictEqual(0) filter.stale = true - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(isFetching.value).toStrictEqual(1) }) From 47f7e8634b00cc6d861a7fb0fb8f1c655613ded6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:53:01 +0900 Subject: [PATCH 229/432] test(vue-query/useIsMutating): switch to fake timers and replace 'sleep' with 'advanceTimersByTimeAsync' (#9373) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsMutating.test.ts | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/vue-query/src/__tests__/useIsMutating.test.ts b/packages/vue-query/src/__tests__/useIsMutating.test.ts index 3961e6de6e..be6564608b 100644 --- a/packages/vue-query/src/__tests__/useIsMutating.test.ts +++ b/packages/vue-query/src/__tests__/useIsMutating.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' import { onScopeDispose, reactive } from 'vue-demi' import { sleep } from '@tanstack/query-test-utils' import { useMutation } from '../useMutation' @@ -9,12 +9,20 @@ import type { MockedFunction } from 'vitest' vi.mock('../useQueryClient') describe('useIsMutating', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('should properly return isMutating state', async () => { const mutation = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) const mutation2 = useMutation({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) const isMutating = useIsMutating() @@ -23,11 +31,11 @@ describe('useIsMutating', () => { mutation.mutateAsync('a') mutation2.mutateAsync('b') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(isMutating.value).toStrictEqual(2) - await sleep(0) + await vi.advanceTimersByTimeAsync(10) expect(isMutating.value).toStrictEqual(0) }) @@ -51,11 +59,11 @@ describe('useIsMutating', () => { mutation.mutateAsync('a') mutation2.mutateAsync('b') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(isMutating.value).toStrictEqual(0) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(isMutating.value).toStrictEqual(0) @@ -66,7 +74,7 @@ describe('useIsMutating', () => { const filter = reactive({ mutationKey: ['foo'] }) const { mutate } = useMutation({ mutationKey: ['isMutating'], - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), }) mutate('foo') @@ -76,7 +84,7 @@ describe('useIsMutating', () => { filter.mutationKey = ['isMutating'] - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(isMutating.value).toStrictEqual(1) }) From 8c797196816262eaebb8dc6c923c04797d0fb780 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 10:56:16 +0900 Subject: [PATCH 230/432] test(vue-query/vueQueryPlugin): switch to fake timers and replace 'sleep' with 'advanceTimersByTimeAsync' (#9372) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/vueQueryPlugin.test.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts index a47ae191ee..6835133ed0 100644 --- a/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts +++ b/packages/vue-query/src/__tests__/vueQueryPlugin.test.ts @@ -1,6 +1,5 @@ -import { describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { isVue2, isVue3, ref } from 'vue-demi' -import { sleep } from '@tanstack/query-test-utils' import { QueryClient } from '../queryClient' import { VueQueryPlugin } from '../vueQueryPlugin' import { VUE_QUERY_CLIENT } from '../utils' @@ -44,6 +43,14 @@ function getAppMock(withUnmountHook = false): TestApp { } describe('VueQueryPlugin', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + describe('devtools', () => { test('should NOT setup devtools', () => { const setupDevtoolsMock = setupDevtools as Mock @@ -271,7 +278,7 @@ describe('VueQueryPlugin', () => { expect(customClient.isRestoring?.value).toBeTruthy() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(customClient.isRestoring?.value).toBeFalsy() }) @@ -316,7 +323,7 @@ describe('VueQueryPlugin', () => { expect(query.data.value).toStrictEqual(undefined) expect(fnSpy).toHaveBeenCalledTimes(0) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(customClient.isRestoring?.value).toBeFalsy() expect(query.data.value).toStrictEqual({ foo: 'bar' }) @@ -382,7 +389,7 @@ describe('VueQueryPlugin', () => { expect(queries.value[0].data).toStrictEqual(undefined) expect(fnSpy).toHaveBeenCalledTimes(0) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(customClient.isRestoring?.value).toBeFalsy() expect(query.data.value).toStrictEqual({ foo1: 'bar1' }) From c66af8acc0d490c7da0e77ebd87072c9d7a94875 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:03:19 +0900 Subject: [PATCH 231/432] test(solid-query/QueryClientProvider): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9374) Co-authored-by: Jonghyeon Ko --- .../__tests__/QueryClientProvider.test.tsx | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx index 53bd1d0269..271e34af1e 100644 --- a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx @@ -1,10 +1,18 @@ -import { describe, expect, it, vi } from 'vitest' -import { render, waitFor } from '@solidjs/testing-library' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { render } from '@solidjs/testing-library' import { QueryCache } from '@tanstack/query-core' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, useQuery, useQueryClient } from '..' describe('QueryClientProvider', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('sets a specific cache for all queries to use', async () => { const key = queryKey() @@ -33,7 +41,7 @@ describe('QueryClientProvider', () => { )) - await waitFor(() => { + await vi.waitFor(() => { return rendered.getByText('test') }) @@ -92,8 +100,8 @@ describe('QueryClientProvider', () => { )) - await waitFor(() => rendered.getByText('test1')) - await waitFor(() => rendered.getByText('test2')) + await vi.waitFor(() => rendered.getByText('test1')) + await vi.waitFor(() => rendered.getByText('test2')) expect(queryCache1.find({ queryKey: key1 })).toBeDefined() expect(queryCache1.find({ queryKey: key2 })).not.toBeDefined() @@ -136,7 +144,7 @@ describe('QueryClientProvider', () => { )) - await waitFor(() => rendered.getByText('test')) + await vi.waitFor(() => rendered.getByText('test')) expect(queryCache.find({ queryKey: key })).toBeDefined() expect(queryCache.find({ queryKey: key })?.options.gcTime).toBe(Infinity) From a0aeac04c145e1410e8484fff07dcf1c69888d95 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:08:03 +0900 Subject: [PATCH 232/432] test(solid-query/useInfiniteQuery): switch to fake timers, and replace 'waitFor' with 'vi.waitFor' (#9391) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useInfiniteQuery.test.tsx | 156 ++++++++++-------- 1 file changed, 84 insertions(+), 72 deletions(-) diff --git a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx index 402e4bc22a..99408496a5 100644 --- a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' import { For, @@ -53,6 +53,14 @@ const fetchItems = async ( } describe('useInfiniteQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -79,7 +87,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toEqual({ @@ -196,7 +204,7 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => expect(noThrow).toBe(true)) + await vi.waitFor(() => expect(noThrow).toBe(true)) }) it('should keep the previous data when placeholderData is set', async () => { @@ -243,15 +251,15 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => rendered.getByText('data: 0-desc')) + await vi.waitFor(() => rendered.getByText('data: 0-desc')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('data: 0-desc,1-desc')) + await vi.waitFor(() => rendered.getByText('data: 0-desc,1-desc')) fireEvent.click(rendered.getByRole('button', { name: /order/i })) - await waitFor(() => rendered.getByText('data: 0-asc')) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(6)) + await vi.waitFor(() => rendered.getByText('data: 0-asc')) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(6)) expect(states[0]).toMatchObject({ data: undefined, @@ -325,7 +333,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -371,7 +379,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(20) + await vi.advanceTimersByTimeAsync(20) expect(states.length).toBe(2) expect(selectCalled).toBe(1) @@ -436,12 +444,12 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => rendered.getByText('data: 0')) + await vi.waitFor(() => rendered.getByText('data: 0')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('data: 1,0')) + await vi.waitFor(() => rendered.getByText('data: 1,0')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => expect(states.length).toBe(4)) expect(states[0]).toMatchObject({ data: undefined, isSuccess: false, @@ -507,7 +515,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -596,18 +604,18 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('data: 10,11')) + await vi.waitFor(() => rendered.getByText('data: 10,11')) fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) - await waitFor(() => rendered.getByText('data: 9,10,11')) + await vi.waitFor(() => rendered.getByText('data: 9,10,11')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(8)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(8)) // Initial fetch expect(states[0]).toMatchObject({ @@ -731,11 +739,11 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(4)) // Initial fetch expect(states[0]).toMatchObject({ @@ -834,11 +842,11 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(4)) // Initial fetch expect(states[0]).toMatchObject({ @@ -939,13 +947,13 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => rendered.getByText('data: 10')) + await vi.waitFor(() => rendered.getByText('data: 10')) fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) - await waitFor(() => rendered.getByText('isFetching: false')) - await waitFor(() => expect(states.length).toBe(4)) + await vi.waitFor(() => rendered.getByText('isFetching: false')) + await vi.waitFor(() => expect(states.length).toBe(4)) // Initial fetch expect(states[0]).toMatchObject({ @@ -1041,7 +1049,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(300) + await vi.advanceTimersByTimeAsync(300) expect(states.length).toBe(5) expect(states[0]).toMatchObject({ @@ -1127,7 +1135,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(300) + await vi.advanceTimersByTimeAsync(300) const expectedCallCount = 3 expect(fetchPage).toBeCalledTimes(expectedCallCount) @@ -1208,7 +1216,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(300) + await vi.advanceTimersByTimeAsync(300) const expectedCallCount = 2 expect(fetchPage).toBeCalledTimes(expectedCallCount) @@ -1272,7 +1280,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1334,7 +1342,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(300) + await vi.advanceTimersByTimeAsync(300) expect(fetches).toBe(2) expect(queryClient.getQueryState(key)).toMatchObject({ @@ -1395,7 +1403,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(5) expect(states[0]).toMatchObject({ @@ -1484,7 +1492,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -1542,7 +1550,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1586,7 +1594,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1630,7 +1638,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1678,7 +1686,7 @@ describe('useInfiniteQuery', () => { )) - await sleep(100) + await vi.advanceTimersByTimeAsync(100) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1795,31 +1803,33 @@ describe('useInfiniteQuery', () => { rendered.getByText('Loading...') - await waitFor(() => rendered.getByText('Item: 2')) - await waitFor(() => rendered.getByText('Page 0: 0')) + await vi.waitFor(() => rendered.getByText('Item: 2')) + await vi.waitFor(() => rendered.getByText('Page 0: 0')) fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) - await waitFor(() => rendered.getByText('Item: 5')) - await waitFor(() => rendered.getByText('Page 0: 0')) - await waitFor(() => rendered.getByText('Page 1: 1')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') + await vi.waitFor(() => rendered.getByText('Item: 5')) + await vi.waitFor(() => rendered.getByText('Page 0: 0')) + await vi.waitFor(() => rendered.getByText('Page 1: 1')) fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) - await waitFor(() => rendered.getByText('Item: 8')) - await waitFor(() => rendered.getByText('Page 0: 0')) - await waitFor(() => rendered.getByText('Page 1: 1')) - await waitFor(() => rendered.getByText('Page 2: 2')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') + await vi.waitFor(() => rendered.getByText('Item: 8')) + await vi.waitFor(() => rendered.getByText('Page 0: 0')) + await vi.waitFor(() => rendered.getByText('Page 1: 1')) + await vi.waitFor(() => rendered.getByText('Page 2: 2')) fireEvent.click(rendered.getByText('Refetch')) - await waitFor(() => rendered.getByText('Background Updating...')) - await waitFor(() => rendered.getByText('Item: 8')) - await waitFor(() => rendered.getByText('Page 0: 3')) - await waitFor(() => rendered.getByText('Page 1: 4')) - await waitFor(() => rendered.getByText('Page 2: 5')) + await vi.waitFor(() => rendered.getByText('Background Updating...')) + await vi.waitFor(() => rendered.getByText('Item: 8')) + await vi.waitFor(() => rendered.getByText('Page 0: 3')) + await vi.waitFor(() => rendered.getByText('Page 1: 4')) + await vi.waitFor(() => rendered.getByText('Page 2: 5')) // ensure that Item: 4 is rendered before removing it expect(rendered.queryAllByText('Item: 4')).toHaveLength(1) @@ -1827,12 +1837,12 @@ describe('useInfiniteQuery', () => { // remove Item: 4 fireEvent.click(rendered.getByText('Remove item')) - await waitFor(() => rendered.getByText('Background Updating...')) + await vi.waitFor(() => rendered.getByText('Background Updating...')) // ensure that an additional item is rendered (it means that cursors were properly rebuilt) - await waitFor(() => rendered.getByText('Item: 9')) - await waitFor(() => rendered.getByText('Page 0: 6')) - await waitFor(() => rendered.getByText('Page 1: 7')) - await waitFor(() => rendered.getByText('Page 2: 8')) + await vi.waitFor(() => rendered.getByText('Item: 9')) + await vi.waitFor(() => rendered.getByText('Page 0: 6')) + await vi.waitFor(() => rendered.getByText('Page 1: 7')) + await vi.waitFor(() => rendered.getByText('Page 2: 8')) // ensure that Item: 4 is no longer rendered expect(rendered.queryAllByText('Item: 4')).toHaveLength(0) @@ -1922,16 +1932,17 @@ describe('useInfiniteQuery', () => { rendered.getByText('Loading...') - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Item: 9') rendered.getByText('Page 0: 0') }) fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Item: 19') rendered.getByText('Page 0: 0') rendered.getByText('Page 1: 1') @@ -1939,9 +1950,10 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByText('Load More')) - await waitFor(() => rendered.getByText('Loading more...')) + await vi.advanceTimersByTimeAsync(0) + rendered.getByText('Loading more...') - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Item: 29') rendered.getByText('Page 0: 0') rendered.getByText('Page 1: 1') @@ -1952,13 +1964,13 @@ describe('useInfiniteQuery', () => { fireEvent.click(rendered.getByText('Remove Last Page')) - await sleep(10) + await vi.advanceTimersByTimeAsync(10) fireEvent.click(rendered.getByText('Refetch')) - await waitFor(() => rendered.getByText('Background Updating...')) + await vi.waitFor(() => rendered.getByText('Background Updating...')) - await waitFor(() => { + await vi.waitFor(() => { rendered.getByText('Page 0: 3') rendered.getByText('Page 1: 4') }) @@ -2005,7 +2017,7 @@ describe('useInfiniteQuery', () => { )) - await waitFor(() => rendered.getByText('off')) + await vi.waitFor(() => rendered.getByText('off')) expect(cancelFn).toHaveBeenCalled() }) @@ -2035,7 +2047,7 @@ describe('useInfiniteQuery', () => { const rendered = render(() => ) - await waitFor(() => { + await vi.waitFor(() => { const statusElement = rendered.getByText('Status: custom client') expect(statusElement).toBeInTheDocument() }) @@ -2064,7 +2076,7 @@ describe('useInfiniteQuery', () => { const rendered = render(() => ) - await waitFor(() => { + await vi.waitFor(() => { const statusElement = rendered.getByText('Status: 220') expect(statusElement).toBeInTheDocument() }) From 27d82a715cea606c48dbd7ab13148fadc4a20795 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:11:47 +0900 Subject: [PATCH 233/432] test(solid-query/transition): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9376) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/transition.test.tsx | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/solid-query/src/__tests__/transition.test.tsx b/packages/solid-query/src/__tests__/transition.test.tsx index f329f73efe..a078b4618c 100644 --- a/packages/solid-query/src/__tests__/transition.test.tsx +++ b/packages/solid-query/src/__tests__/transition.test.tsx @@ -1,10 +1,18 @@ -import { describe, expect, it } from 'vitest' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' import { Show, Suspense, createSignal, startTransition } from 'solid-js' import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, QueryClientProvider, useQuery } from '..' describe("useQuery's in Suspense mode with transitions", () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -50,13 +58,17 @@ describe("useQuery's in Suspense mode with transitions", () => { )) - await waitFor(() => expect(rendered.getByText('Show')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('Show')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Message')).toBeInTheDocument(), ) // verify that the button also updated. See https://github.com/solidjs/solid/issues/1249 - await waitFor(() => expect(rendered.getByText('Hide')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('Hide')).toBeInTheDocument(), + ) }) }) From 509064a33ceeada30e892ad591b52fc0c0c9eb52 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:16:04 +0900 Subject: [PATCH 234/432] test(solid-query/useIsMutating): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9378) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsMutating.test.tsx | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/solid-query/src/__tests__/useIsMutating.test.tsx b/packages/solid-query/src/__tests__/useIsMutating.test.tsx index 0a8dd6c199..e7e491342f 100644 --- a/packages/solid-query/src/__tests__/useIsMutating.test.tsx +++ b/packages/solid-query/src/__tests__/useIsMutating.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' import { Show, createEffect, createRenderEffect, createSignal } from 'solid-js' import * as QueryCore from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' @@ -12,6 +12,14 @@ import { import { setActTimeout } from './utils' describe('useIsMutating', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('should return the number of fetching mutations', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() @@ -64,7 +72,7 @@ describe('useIsMutating', () => { )) - await waitFor(() => expect(isMutatingArray).toEqual([0, 1, 2, 1, 0])) + await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 2, 1, 0])) }) it('should filter correctly by mutationKey', async () => { @@ -109,7 +117,7 @@ describe('useIsMutating', () => { )) // Unlike React, IsMutating Wont re-render twice with mutation2 - await waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) }) it('should filter correctly by predicate', async () => { @@ -158,7 +166,7 @@ describe('useIsMutating', () => { )) // Again, No unnecessary re-renders like React - await waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) }) it('should use provided custom queryClient', async () => { @@ -188,7 +196,7 @@ describe('useIsMutating', () => { const rendered = render(() => ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('mutating: 1')).toBeInTheDocument(), ) }) @@ -251,7 +259,7 @@ describe('useIsMutating', () => { // Should not display the console error // "Warning: Can't perform a React state update on an unmounted component" - await sleep(20) + await vi.advanceTimersByTimeAsync(20) MutationCacheSpy.mockRestore() }) }) From 94f2150ff163764d8e0d3c5e28e7fdddb38eb471 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:24:18 +0900 Subject: [PATCH 235/432] test(solid-query/useMutationState): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9379) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useMutationState.test.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/solid-query/src/__tests__/useMutationState.test.tsx b/packages/solid-query/src/__tests__/useMutationState.test.tsx index 47ee04c35a..b32016f490 100644 --- a/packages/solid-query/src/__tests__/useMutationState.test.tsx +++ b/packages/solid-query/src/__tests__/useMutationState.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it } from 'vitest' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' import { createEffect } from 'solid-js' import { sleep } from '@tanstack/query-test-utils' import { @@ -10,6 +10,14 @@ import { } from '..' describe('useMutationState', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + it('should return variables after calling mutate', async () => { const queryClient = new QueryClient() const variables: Array> = [] @@ -60,11 +68,11 @@ describe('useMutationState', () => { )) - await waitFor(() => rendered.getByText('data: null')) + await vi.waitFor(() => rendered.getByText('data: null')) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await waitFor(() => rendered.getByText('data: data1')) + await vi.waitFor(() => rendered.getByText('data: data1')) expect(variables).toEqual([[], [1], []]) }) From d1c8cff3c9ad59c05d08fa63bb4d205509a851e6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:27:28 +0900 Subject: [PATCH 236/432] test(solid-query/suspense): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9375) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/suspense.test.tsx | 118 ++++++++++-------- 1 file changed, 68 insertions(+), 50 deletions(-) diff --git a/packages/solid-query/src/__tests__/suspense.test.tsx b/packages/solid-query/src/__tests__/suspense.test.tsx index a0ac00b8e2..c5ee2cf171 100644 --- a/packages/solid-query/src/__tests__/suspense.test.tsx +++ b/packages/solid-query/src/__tests__/suspense.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' import { ErrorBoundary, Show, @@ -19,6 +19,14 @@ import { import type { InfiniteData, UseInfiniteQueryResult, UseQueryResult } from '..' describe("useQuery's in Suspense mode", () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -67,10 +75,10 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) expect(renders).toBe(4) expect(states.length).toBe(4) @@ -115,7 +123,7 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('data: 1')) + await vi.waitFor(() => rendered.getByText('data: 1')) // eslint-disable-next-line cspell/spellchecker // TODO(lukemurray): in react this is 1 in solid this is 2 because suspense @@ -127,7 +135,7 @@ describe("useQuery's in Suspense mode", () => { }) fireEvent.click(rendered.getByText('next')) - await waitFor(() => rendered.getByText('data: 2')) + await vi.waitFor(() => rendered.getByText('data: 2')) // eslint-disable-next-line cspell/spellchecker // TODO(lukemurray): in react this is 2 and in solid it is 4 @@ -161,7 +169,7 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -205,7 +213,7 @@ describe("useQuery's in Suspense mode", () => { expect(queryCache.find({ queryKey: key })).toBeFalsy() fireEvent.click(rendered.getByLabelText('toggle')) - await waitFor(() => rendered.getByText('rendered')) + await vi.waitFor(() => rendered.getByText('rendered')) expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(1) @@ -268,19 +276,21 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) }) @@ -336,21 +346,25 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('retry')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('retry')).toBeInTheDocument(), + ) succeed = true fireEvent.click(rendered.getByText('retry')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) }) @@ -402,26 +416,30 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data: 1')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('fetching: false')).toBeInTheDocument(), ) - await waitFor(() => expect(rendered.getByText('hide')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('hide')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('hide')) - await waitFor(() => expect(rendered.getByText('show')).toBeInTheDocument()) + await vi.waitFor(() => + expect(rendered.getByText('show')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByText('show')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('fetching: true')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('data: 2')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('fetching: false')).toBeInTheDocument(), ) }) @@ -467,17 +485,17 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument(), ) fireEvent.click(rendered.getByText('switch')) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument(), ) }) @@ -530,10 +548,10 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) @@ -584,10 +602,10 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) }) @@ -640,10 +658,10 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) @@ -696,10 +714,10 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) }) @@ -739,10 +757,10 @@ describe("useQuery's in Suspense mode", () => { )) expect(queryFn).toHaveBeenCalledTimes(0) - await sleep(5) + await vi.advanceTimersByTimeAsync(5) fireEvent.click(rendered.getByRole('button', { name: /fire/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByRole('heading').textContent).toBe('23') }) @@ -806,11 +824,11 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) // resolve promise -> render Page (rendered) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) @@ -819,7 +837,7 @@ describe("useQuery's in Suspense mode", () => { // reset query -> and throw error fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) @@ -876,11 +894,11 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) // resolve promise -> render Page (rendered) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) @@ -889,7 +907,7 @@ describe("useQuery's in Suspense mode", () => { // change query key fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) @@ -948,7 +966,7 @@ describe("useQuery's in Suspense mode", () => { )) // render empty data with 'rendered' when enabled is false - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('rendered')).toBeInTheDocument(), ) @@ -956,12 +974,12 @@ describe("useQuery's in Suspense mode", () => { fireEvent.click(rendered.getByLabelText('fail')) // render pending fallback - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('Loading...')).toBeInTheDocument(), ) // render error boundary fallback (error boundary) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('error boundary')).toBeInTheDocument(), ) @@ -1007,7 +1025,7 @@ describe("useQuery's in Suspense mode", () => { )) - await waitFor(() => + await vi.waitFor(() => expect(state).toMatchObject({ data: 1, status: 'success', From f7c83c2045b72bd2b975e14fd8802d0318b47e17 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:31:28 +0900 Subject: [PATCH 237/432] test(solid-query/useQueries): switch to fake timers and replace 'waitFor' with 'vi.waitFor' (#9380) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useQueries.test.tsx | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index ad0a3ef2f3..a2c942a68e 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -1,5 +1,13 @@ -import { describe, expect, expectTypeOf, it, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { + afterEach, + beforeEach, + describe, + expect, + expectTypeOf, + it, + vi, +} from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' import * as QueryCore from '@tanstack/query-core' import { createRenderEffect, createSignal } from 'solid-js' import { queryKey, sleep } from '@tanstack/query-test-utils' @@ -19,6 +27,14 @@ import type { } from '..' describe('useQueries', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + const queryCache = new QueryCache() const queryClient = new QueryClient({ queryCache }) @@ -67,7 +83,7 @@ describe('useQueries', () => { )) - await waitFor(() => rendered.getByText('data1: 1, data2: 2')) + await vi.waitFor(() => rendered.getByText('data1: 1, data2: 2')) expect(results.length).toBe(3) expect(results[0]).toMatchObject([{ data: undefined }, { data: undefined }]) @@ -715,7 +731,7 @@ describe('useQueries', () => { // Should not display the console error // "Warning: Can't perform a React state update on an unmounted component" - await sleep(20) + await vi.advanceTimersByTimeAsync(20) QueriesObserverSpy.mockRestore() }) }) From c0fd94e50dcc95b5b5f5664d41ffd36bf6cee86d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:46:25 +0900 Subject: [PATCH 238/432] test(svelte-query/QueryClientProvider): switch to fake timers, replace 'waitFor' with 'vi.waitFor', and add 'expect' (#9385) Co-authored-by: Jonghyeon Ko --- .../QueryClientProvider.test.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts index f144e1c9f9..a4e58e5f0a 100644 --- a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts +++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts @@ -1,9 +1,17 @@ -import { describe, expect, test } from 'vitest' -import { render, waitFor } from '@testing-library/svelte' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { render } from '@testing-library/svelte' import { QueryCache } from '@tanstack/query-core' import ParentComponent from './ParentComponent.svelte' describe('QueryClientProvider', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('Sets a specific cache for all queries to use', async () => { const queryCache = new QueryCache() @@ -13,7 +21,9 @@ describe('QueryClientProvider', () => { }, }) - await waitFor(() => rendered.getByText('Data: test')) + await vi.waitFor(() => + expect(rendered.getByText('Data: test')).toBeInTheDocument(), + ) expect(queryCache.find({ queryKey: ['hello'] })).toBeDefined() }) From bce4d7ea51b17f9cab4ee8bafb77482aa899c7b6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:51:06 +0900 Subject: [PATCH 239/432] test(solid-query/useIsFetching): switch to fake timers, replace 'waitFor' with 'vi.waitFor' and 'findByText' with 'getByText' (#9377) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsFetching.test.tsx | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/packages/solid-query/src/__tests__/useIsFetching.test.tsx b/packages/solid-query/src/__tests__/useIsFetching.test.tsx index 313f74d7a3..a2eafa1400 100644 --- a/packages/solid-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/solid-query/src/__tests__/useIsFetching.test.tsx @@ -1,5 +1,5 @@ -import { describe, expect, it } from 'vitest' -import { fireEvent, render, waitFor } from '@solidjs/testing-library' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { fireEvent, render } from '@solidjs/testing-library' import { Show, createEffect, createRenderEffect, createSignal } from 'solid-js' import { queryKey, sleep } from '@tanstack/query-test-utils' import { @@ -12,6 +12,14 @@ import { import { setActTimeout } from './utils' describe('useIsFetching', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + // See https://github.com/tannerlinsley/react-query/issues/105 it('should update as queries start and stop fetching', async () => { const queryCache = new QueryCache() @@ -53,14 +61,14 @@ describe('useIsFetching', () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), ) }) @@ -130,7 +138,7 @@ describe('useIsFetching', () => { )) // unlike react, Updating renderSecond wont cause a rerender for FirstQuery - await waitFor(() => expect(isFetchingArray).toEqual([0, 1, 2, 1, 0])) + await vi.waitFor(() => expect(isFetchingArray).toEqual([0, 1, 2, 1, 0])) }) it('should be able to filter', async () => { @@ -192,10 +200,10 @@ describe('useIsFetching', () => { )) - await rendered.findByText('isFetching: 0') + await vi.waitFor(() => rendered.getByText('isFetching: 0')) fireEvent.click(rendered.getByRole('button', { name: /setStarted/i })) - await rendered.findByText('isFetching: 1') - await rendered.findByText('isFetching: 0') + await vi.waitFor(() => rendered.getByText('isFetching: 1')) + await vi.waitFor(() => rendered.getByText('isFetching: 0')) // at no point should we have isFetching: 2 expect(isFetchingArray).toEqual(expect.not.arrayContaining([2])) }) @@ -228,10 +236,10 @@ describe('useIsFetching', () => { )) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), ) }) @@ -263,7 +271,7 @@ describe('useIsFetching', () => { const rendered = render(() => ) - await waitFor(() => + await vi.waitFor(() => expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), ) }) From c597f76e5620e35a80c27f7402747d3abc19b4b2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 11:59:10 +0900 Subject: [PATCH 240/432] test(svelte-query/useIsMutating): switch to fake timers, add 'expect', 'vi.waitFor', and replace 'findByText' with 'getByText' (#9387) Co-authored-by: Jonghyeon Ko --- .../tests/useIsMutating/useIsMutating.test.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts index 85725d292d..d3ec08a5fe 100644 --- a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts +++ b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts @@ -1,14 +1,28 @@ -import { describe, test } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import BaseExample from './BaseExample.svelte' describe('useIsFetching', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('should update as queries start and stop fetching', async () => { const rendered = render(BaseExample) - await rendered.findByText('isMutating: 0') + await vi.waitFor(() => + expect(rendered.getByText('isMutating: 0')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /Trigger/i })) - await rendered.findByText('isMutating: 1') - await rendered.findByText('isMutating: 0') + await vi.waitFor(() => + expect(rendered.getByText('isMutating: 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('isMutating: 0')).toBeInTheDocument(), + ) }) }) From 32467aa330c6656e6f2281776341091549c6aa0f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 13:30:46 +0900 Subject: [PATCH 241/432] test(svelte-query/useMutationState): switch to fake timers, and replace 'waitFor' with 'vi.waitFor' (#9388) Co-authored-by: Jonghyeon Ko --- .../useMutationState/useMutationState.test.ts | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts index 24bc261cc9..afebff63c2 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts @@ -1,8 +1,16 @@ -import { describe, expect, test, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@testing-library/svelte' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { fireEvent, render } from '@testing-library/svelte' import BaseExample from './BaseExample.svelte' describe('useMutationState', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('Run few mutation functions and check from useMutationState', async () => { const successMutationFn = vi.fn() @@ -26,14 +34,14 @@ describe('useMutationState', () => { fireEvent.click(rendered.getByTestId('success')) - await waitFor(() => { + await vi.waitFor(() => { expect(successMutationFn).toHaveBeenCalledTimes(1) expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') }) fireEvent.click(rendered.getByTestId('error')) - await waitFor(() => { + await vi.waitFor(() => { expect(errorMutationFn).toHaveBeenCalledTimes(1) expect(rendered.getByTestId('result').innerHTML).toEqual( '["success","error"]', @@ -67,14 +75,14 @@ describe('useMutationState', () => { fireEvent.click(rendered.getByTestId('success')) - await waitFor(() => { + await vi.waitFor(() => { expect(successMutationFn).toHaveBeenCalledTimes(1) expect(rendered.getByTestId('result').innerHTML).toEqual('[]') }) fireEvent.click(rendered.getByTestId('error')) - await waitFor(() => { + await vi.waitFor(() => { expect(errorMutationFn).toHaveBeenCalledTimes(1) expect(rendered.getByTestId('result').innerHTML).toEqual('["error"]') }) @@ -106,14 +114,14 @@ describe('useMutationState', () => { fireEvent.click(rendered.getByTestId('success')) - await waitFor(() => { + await vi.waitFor(() => { expect(successMutationFn).toHaveBeenCalledTimes(1) expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') }) fireEvent.click(rendered.getByTestId('error')) - await waitFor(() => { + await vi.waitFor(() => { expect(errorMutationFn).toHaveBeenCalledTimes(1) expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') }) From 93978d326d166ced5058324b0f705fd0cee0f37b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 13:35:00 +0900 Subject: [PATCH 242/432] test(solid-query/QueryClientProvider): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync', 'expect' (#9401) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/QueryClientProvider.test.tsx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx index 271e34af1e..7ffcff0f37 100644 --- a/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/solid-query/src/__tests__/QueryClientProvider.test.tsx @@ -41,9 +41,8 @@ describe('QueryClientProvider', () => { )) - await vi.waitFor(() => { - return rendered.getByText('test') - }) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('test')).toBeInTheDocument() expect(queryCache.find({ queryKey: key })).toBeDefined() }) @@ -100,8 +99,9 @@ describe('QueryClientProvider', () => { )) - await vi.waitFor(() => rendered.getByText('test1')) - await vi.waitFor(() => rendered.getByText('test2')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('test1')).toBeInTheDocument() + expect(rendered.getByText('test2')).toBeInTheDocument() expect(queryCache1.find({ queryKey: key1 })).toBeDefined() expect(queryCache1.find({ queryKey: key2 })).not.toBeDefined() @@ -144,7 +144,8 @@ describe('QueryClientProvider', () => { )) - await vi.waitFor(() => rendered.getByText('test')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('test')).toBeInTheDocument() expect(queryCache.find({ queryKey: key })).toBeDefined() expect(queryCache.find({ queryKey: key })?.options.gcTime).toBe(Infinity) From eb1cab795ff578124d252db7ef11f153201858cf Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 13:41:52 +0900 Subject: [PATCH 243/432] test(solid-query/transition): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9402) Co-authored-by: Jonghyeon Ko --- .../solid-query/src/__tests__/transition.test.tsx | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/packages/solid-query/src/__tests__/transition.test.tsx b/packages/solid-query/src/__tests__/transition.test.tsx index a078b4618c..81a8c2d9b8 100644 --- a/packages/solid-query/src/__tests__/transition.test.tsx +++ b/packages/solid-query/src/__tests__/transition.test.tsx @@ -58,17 +58,12 @@ describe("useQuery's in Suspense mode with transitions", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Show')).toBeInTheDocument(), - ) + expect(rendered.getByText('Show')).toBeInTheDocument() fireEvent.click(rendered.getByLabelText('toggle')) - await vi.waitFor(() => - expect(rendered.getByText('Message')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Message')).toBeInTheDocument() // verify that the button also updated. See https://github.com/solidjs/solid/issues/1249 - await vi.waitFor(() => - expect(rendered.getByText('Hide')).toBeInTheDocument(), - ) + expect(rendered.getByText('Hide')).toBeInTheDocument() }) }) From e2bcbe8411b0e55001f041075409caea4f7d6fa9 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 13:47:39 +0900 Subject: [PATCH 244/432] test(solid-query/useIsFetching): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync', 'expect' (#9403) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsFetching.test.tsx | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/packages/solid-query/src/__tests__/useIsFetching.test.tsx b/packages/solid-query/src/__tests__/useIsFetching.test.tsx index a2eafa1400..cfdf1e98f0 100644 --- a/packages/solid-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/solid-query/src/__tests__/useIsFetching.test.tsx @@ -61,16 +61,12 @@ describe('useIsFetching', () => { )) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), - ) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(50) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) it('should not update state while rendering', async () => { @@ -138,7 +134,8 @@ describe('useIsFetching', () => { )) // unlike react, Updating renderSecond wont cause a rerender for FirstQuery - await vi.waitFor(() => expect(isFetchingArray).toEqual([0, 1, 2, 1, 0])) + await vi.advanceTimersByTimeAsync(300) + expect(isFetchingArray).toEqual([0, 1, 2, 1, 0]) }) it('should be able to filter', async () => { @@ -200,10 +197,12 @@ describe('useIsFetching', () => { )) - await vi.waitFor(() => rendered.getByText('isFetching: 0')) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /setStarted/i })) - await vi.waitFor(() => rendered.getByText('isFetching: 1')) - await vi.waitFor(() => rendered.getByText('isFetching: 0')) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(20) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() // at no point should we have isFetching: 2 expect(isFetchingArray).toEqual(expect.not.arrayContaining([2])) }) @@ -236,12 +235,10 @@ describe('useIsFetching', () => { )) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) it('should use provided custom queryClient', async () => { @@ -271,8 +268,7 @@ describe('useIsFetching', () => { const rendered = render(() => ) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() }) }) From b32904cd21909bfa513eb2809f3394a12faae3b8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 14:00:48 +0900 Subject: [PATCH 245/432] test(svelte-query/createInfiniteQuery): switch to fake timers, and replace 'waitFor' with 'vi.waitFor' (#9381) Co-authored-by: Jonghyeon Ko --- .../createInfiniteQuery.test.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts index d80bc9c706..91e16bf619 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts +++ b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest' -import { render, waitFor } from '@testing-library/svelte' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { render } from '@testing-library/svelte' import { get, writable } from 'svelte/store' import BaseExample from './BaseExample.svelte' import SelectExample from './SelectExample.svelte' @@ -7,6 +7,14 @@ import type { Writable } from 'svelte/store' import type { QueryObserverResult } from '@tanstack/query-core' describe('createInfiniteQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('Return the correct states for a successful query', async () => { const statesStore: Writable> = writable([]) @@ -16,7 +24,7 @@ describe('createInfiniteQuery', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Status: success')).toBeInTheDocument() }) @@ -106,7 +114,7 @@ describe('createInfiniteQuery', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('count: 1')).toBeInTheDocument() }) From daad8e30f946df12750ce7307718871aace83e27 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 16:16:10 +0900 Subject: [PATCH 246/432] test(solid-query/useQueries): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync', 'expect' (#9406) --- packages/solid-query/src/__tests__/useQueries.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/solid-query/src/__tests__/useQueries.test.tsx b/packages/solid-query/src/__tests__/useQueries.test.tsx index a2c942a68e..4a3b6322b9 100644 --- a/packages/solid-query/src/__tests__/useQueries.test.tsx +++ b/packages/solid-query/src/__tests__/useQueries.test.tsx @@ -83,7 +83,8 @@ describe('useQueries', () => { )) - await vi.waitFor(() => rendered.getByText('data1: 1, data2: 2')) + await vi.advanceTimersByTimeAsync(100) + expect(rendered.getByText('data1: 1, data2: 2')).toBeInTheDocument() expect(results.length).toBe(3) expect(results[0]).toMatchObject([{ data: undefined }, { data: undefined }]) From 89f948322aaceafd994a45d3c5f35aff32454531 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 16:16:44 +0900 Subject: [PATCH 247/432] test(solid-query/useMutationState): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync', 'expect' (#9405) --- .../solid-query/src/__tests__/useMutationState.test.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/solid-query/src/__tests__/useMutationState.test.tsx b/packages/solid-query/src/__tests__/useMutationState.test.tsx index b32016f490..5157e326ff 100644 --- a/packages/solid-query/src/__tests__/useMutationState.test.tsx +++ b/packages/solid-query/src/__tests__/useMutationState.test.tsx @@ -68,11 +68,11 @@ describe('useMutationState', () => { )) - await vi.waitFor(() => rendered.getByText('data: null')) + expect(rendered.getByText('data: null')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - - await vi.waitFor(() => rendered.getByText('data: data1')) + await vi.advanceTimersByTimeAsync(150) + expect(rendered.getByText('data: data1')).toBeInTheDocument() expect(variables).toEqual([[], [1], []]) }) From 9ecfbf79d0acb1f017454cedd70c6b09ecfa871d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 16:16:56 +0900 Subject: [PATCH 248/432] test(solid-query/useIsMutating): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9404) --- .../src/__tests__/useIsMutating.test.tsx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/solid-query/src/__tests__/useIsMutating.test.tsx b/packages/solid-query/src/__tests__/useIsMutating.test.tsx index e7e491342f..3442bd1214 100644 --- a/packages/solid-query/src/__tests__/useIsMutating.test.tsx +++ b/packages/solid-query/src/__tests__/useIsMutating.test.tsx @@ -72,7 +72,9 @@ describe('useIsMutating', () => { )) - await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 2, 1, 0])) + + await vi.advanceTimersByTimeAsync(150) + expect(isMutatingArray).toEqual([0, 1, 2, 1, 0]) }) it('should filter correctly by mutationKey', async () => { @@ -116,8 +118,10 @@ describe('useIsMutating', () => { )) + // Unlike React, IsMutating Wont re-render twice with mutation2 - await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.advanceTimersByTimeAsync(100) + expect(isMutatingArray).toEqual([0, 1, 0]) }) it('should filter correctly by predicate', async () => { @@ -166,7 +170,8 @@ describe('useIsMutating', () => { )) // Again, No unnecessary re-renders like React - await vi.waitFor(() => expect(isMutatingArray).toEqual([0, 1, 0])) + await vi.advanceTimersByTimeAsync(100) + expect(isMutatingArray).toEqual([0, 1, 0]) }) it('should use provided custom queryClient', async () => { @@ -196,9 +201,8 @@ describe('useIsMutating', () => { const rendered = render(() => ) - await vi.waitFor(() => - expect(rendered.getByText('mutating: 1')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('mutating: 1')).toBeInTheDocument() }) // eslint-disable-next-line vitest/expect-expect From 06cb8ebfe3600057e88107ffd33e527154fda722 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 16:17:15 +0900 Subject: [PATCH 249/432] test(svelte-query/useIsFetching): switch to fake timers, add 'expect', 'vi.waitFor', and replace 'findByText' with 'getByText' (#9386) --- .../tests/useIsFetching/useIsFetching.test.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts index 7ca6ca6322..51d323f450 100644 --- a/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts +++ b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts @@ -1,14 +1,28 @@ -import { describe, test } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import BaseExample from './BaseExample.svelte' describe('useIsFetching', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('should update as queries start and stop fetching', async () => { const rendered = render(BaseExample) - await rendered.findByText('isFetching: 0') + await vi.waitFor(() => + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) - await rendered.findByText('isFetching: 1') - await rendered.findByText('isFetching: 0') + await vi.waitFor(() => + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), + ) }) }) From 2212fff59ef8b506d4f51dbf0110a61f0082db7e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 16:17:23 +0900 Subject: [PATCH 250/432] test(svelte-query/createQuery): switch to fake timers, replace 'waitFor' with 'vi.waitFor', and add 'expect' (#9384) --- .../tests/createQuery/createQuery.test.ts | 56 +++++++++++++------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/packages/svelte-query/tests/createQuery/createQuery.test.ts b/packages/svelte-query/tests/createQuery/createQuery.test.ts index f2fc002516..29ffe61212 100644 --- a/packages/svelte-query/tests/createQuery/createQuery.test.ts +++ b/packages/svelte-query/tests/createQuery/createQuery.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest' -import { fireEvent, render, waitFor } from '@testing-library/svelte' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { fireEvent, render } from '@testing-library/svelte' import { derived, get, writable } from 'svelte/store' import { QueryClient } from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' @@ -11,6 +11,14 @@ import type { Writable } from 'svelte/store' import type { QueryObserverResult } from '@tanstack/query-core' describe('createQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('Return the correct states for a successful query', async () => { const statesStore: Writable> = writable([]) @@ -30,7 +38,7 @@ describe('createQuery', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Status: success')).toBeInTheDocument() }) @@ -111,7 +119,9 @@ describe('createQuery', () => { }, }) - await waitFor(() => rendered.getByText('Status: error')) + await vi.waitFor(() => + expect(rendered.getByText('Status: error')).toBeInTheDocument(), + ) const states = get(statesStore) @@ -218,7 +228,7 @@ describe('createQuery', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Status: success')).toBeInTheDocument() }) }) @@ -244,7 +254,7 @@ describe('createQuery', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Status: success')).toBeInTheDocument() }) }) @@ -272,21 +282,21 @@ describe('createQuery', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Data: 1')).toBeInTheDocument() expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() }) writableStore.set(2) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Data: 1')).not.toBeInTheDocument() expect(rendered.queryByText('Data: 2')).toBeInTheDocument() }) writableStore.set(1) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Data: 1')).toBeInTheDocument() expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() }) @@ -302,11 +312,15 @@ describe('createQuery', () => { }, }) - await waitFor(() => rendered.getByText('Data: 0')) + await vi.waitFor(() => + expect(rendered.getByText('Data: 0')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await waitFor(() => rendered.getByText('Data: 1')) + await vi.waitFor(() => + expect(rendered.getByText('Data: 1')).toBeInTheDocument(), + ) const states = get(statesStore) @@ -354,13 +368,15 @@ describe('createQuery', () => { }, }) - await waitFor(() => rendered.getByText('Data: 0')) + await vi.waitFor(() => + expect(rendered.getByText('Data: 0')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /Increment/i })) - await waitFor(() => { - rendered.getByText('Count: 1') - rendered.getByText('Data: undefined') + await vi.waitFor(() => { + expect(rendered.getByText('Count: 1')).toBeInTheDocument() + expect(rendered.getByText('Data: undefined')).toBeInTheDocument() }) const states = get(statesStore) @@ -398,13 +414,17 @@ describe('createQuery', () => { }, }) - await waitFor(() => rendered.getByText('Data: 1')) + await vi.waitFor(() => + expect(rendered.getByText('Data: 1')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /Remove/i })) - await sleep(5) + await vi.advanceTimersByTimeAsync(5) fireEvent.click(rendered.getByRole('button', { name: /Refetch/i })) - await waitFor(() => rendered.getByText('Data: 2')) + await vi.waitFor(() => + expect(rendered.getByText('Data: 2')).toBeInTheDocument(), + ) const states = get(statesStore) From ab7fd72802e3e824a50af30fe3ae49c7affcf807 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 16:17:37 +0900 Subject: [PATCH 251/432] test(svelte-query/createQueries): switch to fake timers, and replace 'waitFor' with 'vi.waitFor' (#9383) --- .../tests/createQueries/createQueries.test.ts | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/svelte-query/tests/createQueries/createQueries.test.ts b/packages/svelte-query/tests/createQueries/createQueries.test.ts index f67441bd66..ad4547d7da 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test.ts @@ -1,11 +1,19 @@ -import { describe, expect, test } from 'vitest' -import { render, waitFor } from '@testing-library/svelte' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { render } from '@testing-library/svelte' import { QueryClient } from '@tanstack/query-core' import { sleep } from '@tanstack/query-test-utils' import BaseExample from './BaseExample.svelte' import CombineExample from './CombineExample.svelte' describe('createQueries', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('Render and wait for success', async () => { const rendered = render(BaseExample, { props: { @@ -31,12 +39,12 @@ describe('createQueries', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('Status 1: pending')).toBeInTheDocument() expect(rendered.getByText('Status 2: pending')).toBeInTheDocument() }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('Status 1: success')).toBeInTheDocument() expect(rendered.getByText('Status 2: success')).toBeInTheDocument() }) @@ -49,11 +57,11 @@ describe('createQueries', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('isPending: true')).toBeInTheDocument() }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.getByText('Data: 1,2,3')).toBeInTheDocument() }) }) From d6930fdd74d9d0a988d6cd9991b611b7ce1362f2 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 16:17:54 +0900 Subject: [PATCH 252/432] test(svelte-query/createMutation): switch to fake timers, replace 'waitFor' with 'vi.waitFor', and add 'expect' (#9382) Co-authored-by: Jonghyeon Ko --- .../createMutation/createMutation.test.ts | 68 +++++++++++++------ 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/packages/svelte-query/tests/createMutation/createMutation.test.ts b/packages/svelte-query/tests/createMutation/createMutation.test.ts index 02650facdb..d3b3f1eff4 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.test.ts @@ -1,21 +1,29 @@ -import { describe, expect, test, vi } from 'vitest' -import { fireEvent, render, waitFor } from '@testing-library/svelte' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { fireEvent, render } from '@testing-library/svelte' import { sleep } from '@tanstack/query-test-utils' import ResetExample from './ResetExample.svelte' import OnSuccessExample from './OnSuccessExample.svelte' import FailureExample from './FailureExample.svelte' describe('createMutation', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('Able to reset `error`', async () => { const rendered = render(ResetExample) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() }) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect( rendered.queryByText('Error: Expected mock error'), ).toBeInTheDocument() @@ -23,7 +31,7 @@ describe('createMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /Reset/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() }) }) @@ -39,7 +47,7 @@ describe('createMutation', () => { }, }) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Count: 0')).toBeInTheDocument() }) @@ -47,11 +55,11 @@ describe('createMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await waitFor(() => { + await vi.waitFor(() => { expect(rendered.queryByText('Count: 3')).toBeInTheDocument() }) - await waitFor(() => { + await vi.waitFor(() => { expect(onSuccessMock).toHaveBeenCalledTimes(3) }) @@ -59,7 +67,7 @@ describe('createMutation', () => { expect(onSuccessMock).toHaveBeenCalledWith(2) expect(onSuccessMock).toHaveBeenCalledWith(3) - await waitFor(() => { + await vi.waitFor(() => { expect(onSettledMock).toHaveBeenCalledTimes(3) }) @@ -88,21 +96,41 @@ describe('createMutation', () => { }, }) - await waitFor(() => rendered.queryByText('Data: undefined')) + await vi.waitFor(() => + expect(rendered.queryByText('Data: undefined')).toBeInTheDocument(), + ) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await waitFor(() => rendered.getByText('Data: undefined')) - await waitFor(() => rendered.getByText('Status: error')) - await waitFor(() => rendered.getByText('Failure Count: 1')) - await waitFor(() => - rendered.getByText('Failure Reason: Expected mock error'), + await vi.waitFor(() => + expect(rendered.getByText('Data: undefined')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Status: error')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failure Count: 1')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect( + rendered.getByText('Failure Reason: Expected mock error'), + ).toBeInTheDocument(), ) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await waitFor(() => rendered.getByText('Status: pending')) - await waitFor(() => rendered.getByText('Status: success')) - await waitFor(() => rendered.getByText('Data: 2')) - await waitFor(() => rendered.getByText('Failure Count: 0')) - await waitFor(() => rendered.getByText('Failure Reason: null')) + await vi.waitFor(() => + expect(rendered.getByText('Status: pending')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Status: success')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Data: 2')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failure Count: 0')).toBeInTheDocument(), + ) + await vi.waitFor(() => + expect(rendered.getByText('Failure Reason: null')).toBeInTheDocument(), + ) }) }) From 0569891b77cdece70ec6f6a4749e4fad29d80cec Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 11 Jul 2025 20:08:35 +0900 Subject: [PATCH 253/432] test(solid-query/suspense): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync', 'expect' (#9407) --- .../src/__tests__/suspense.test.tsx | 236 +++++++----------- 1 file changed, 91 insertions(+), 145 deletions(-) diff --git a/packages/solid-query/src/__tests__/suspense.test.tsx b/packages/solid-query/src/__tests__/suspense.test.tsx index c5ee2cf171..170dcd01a9 100644 --- a/packages/solid-query/src/__tests__/suspense.test.tsx +++ b/packages/solid-query/src/__tests__/suspense.test.tsx @@ -75,10 +75,12 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => rendered.getByText('data: 1')) - fireEvent.click(rendered.getByLabelText('toggle')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 1')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('data: 2')) + fireEvent.click(rendered.getByLabelText('toggle')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 2')).toBeInTheDocument() expect(renders).toBe(4) expect(states.length).toBe(4) @@ -123,8 +125,8 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => rendered.getByText('data: 1')) - + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 1')).toBeInTheDocument() // eslint-disable-next-line cspell/spellchecker // TODO(lukemurray): in react this is 1 in solid this is 2 because suspense // occurs on read. @@ -135,8 +137,8 @@ describe("useQuery's in Suspense mode", () => { }) fireEvent.click(rendered.getByText('next')) - await vi.waitFor(() => rendered.getByText('data: 2')) - + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 2')).toBeInTheDocument() // eslint-disable-next-line cspell/spellchecker // TODO(lukemurray): in react this is 2 and in solid it is 4 expect(states.length).toBe(4) @@ -169,7 +171,8 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => rendered.getByText('rendered')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -213,13 +216,14 @@ describe("useQuery's in Suspense mode", () => { expect(queryCache.find({ queryKey: key })).toBeFalsy() fireEvent.click(rendered.getByLabelText('toggle')) - await vi.waitFor(() => rendered.getByText('rendered')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(1) fireEvent.click(rendered.getByLabelText('toggle')) - expect(rendered.queryByText('rendered')).toBeNull() + expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(0) }) @@ -276,23 +280,14 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(100) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() fireEvent.click(rendered.getByText('retry')) - - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() }) it('should retry fetch if the reset error boundary has been reset', async () => { @@ -346,27 +341,21 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('retry')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() }) it('should refetch when re-mounting', async () => { @@ -416,32 +405,22 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('data: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('fetching: false')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('hide')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(100) + expect(rendered.getByText('data: 1')).toBeInTheDocument() + expect(rendered.getByText('fetching: false')).toBeInTheDocument() + expect(rendered.getByText('hide')).toBeInTheDocument() + fireEvent.click(rendered.getByText('hide')) - await vi.waitFor(() => - expect(rendered.getByText('show')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(100) + expect(rendered.getByText('show')).toBeInTheDocument() + fireEvent.click(rendered.getByText('show')) - await vi.waitFor(() => - expect(rendered.getByText('fetching: true')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('data: 2')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('fetching: false')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('fetching: true')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(100) + expect(rendered.getByText('data: 2')).toBeInTheDocument() + expect(rendered.getByText('fetching: false')).toBeInTheDocument() }) it('should suspend when switching to a new query', async () => { @@ -485,19 +464,14 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(100) + expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument() + fireEvent.click(rendered.getByText('switch')) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(100) + expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument() }) it('should throw errors to the error boundary by default', async () => { @@ -548,12 +522,9 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -602,12 +573,9 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() }) it('should throw errors to the error boundary when a throwOnError function returns true', async () => { @@ -658,12 +626,9 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -714,12 +679,9 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() }) it('should not call the queryFn when not enabled', async () => { @@ -757,13 +719,11 @@ describe("useQuery's in Suspense mode", () => { )) expect(queryFn).toHaveBeenCalledTimes(0) - await vi.advanceTimersByTimeAsync(5) - fireEvent.click(rendered.getByRole('button', { name: /fire/i })) - - await vi.waitFor(() => { - expect(rendered.getByRole('heading').textContent).toBe('23') - }) + await vi.advanceTimersByTimeAsync(10) + fireEvent.click(rendered.getByRole('button', { name: /fire/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByRole('heading').textContent).toBe('23') expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -824,22 +784,19 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() // resolve promise -> render Page (rendered) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() // change query key succeed = false // reset query -> and throw error + fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -894,22 +851,19 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) + expect(rendered.getByText('Loading...')).toBeInTheDocument() // resolve promise -> render Page (rendered) - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() // change promise result to error succeed = false // change query key + fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -966,22 +920,16 @@ describe("useQuery's in Suspense mode", () => { )) // render empty data with 'rendered' when enabled is false - await vi.waitFor(() => - expect(rendered.getByText('rendered')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('rendered')).toBeInTheDocument() // change enabled to true fireEvent.click(rendered.getByLabelText('fail')) - // render pending fallback - await vi.waitFor(() => - expect(rendered.getByText('Loading...')).toBeInTheDocument(), - ) - + expect(rendered.getByText('Loading...')).toBeInTheDocument() // render error boundary fallback (error boundary) - await vi.waitFor(() => - expect(rendered.getByText('error boundary')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error boundary')).toBeInTheDocument() consoleMock.mockRestore() }) @@ -1025,13 +973,11 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.waitFor(() => - expect(state).toMatchObject({ - data: 1, - status: 'success', - }), - ) - + await vi.advanceTimersByTimeAsync(10) + expect(state).toMatchObject({ + data: 1, + status: 'success', + }) expect(renders).toBe(2) expect(rendered.queryByText('rendered')).not.toBeNull() }) From 23c89080864c41161541c5bb3dfb21b4af8b0330 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Fri, 11 Jul 2025 18:57:28 +0200 Subject: [PATCH 254/432] feat(core): QueryObserver returns isEnabled flag (#9408) * feat(core): QueryObserver returns isEnabled flag * test: solid and svelte --- docs/framework/react/reference/useQuery.md | 3 +++ .../src/__tests__/queryObserver.test.tsx | 23 +++++++++++++++++++ packages/query-core/src/queryObserver.ts | 1 + packages/query-core/src/types.ts | 4 ++++ .../src/__tests__/useInfiniteQuery.test.tsx | 2 ++ .../src/__tests__/useQuery.test.tsx | 5 ++++ .../src/__tests__/useInfiniteQuery.test.tsx | 2 ++ .../src/__tests__/useQuery.test.tsx | 5 ++++ .../createInfiniteQuery.test.ts | 2 ++ 9 files changed, 47 insertions(+) diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md index 5bda1e9e53..d4f1554e0e 100644 --- a/docs/framework/react/reference/useQuery.md +++ b/docs/framework/react/reference/useQuery.md @@ -26,6 +26,7 @@ const { isRefetching, isStale, isSuccess, + isEnabled, promise, refetch, status, @@ -234,6 +235,8 @@ const { - `isInitialLoading: boolean` - **deprecated** - An alias for `isLoading`, will be removed in the next major version. +- `isEnabled: boolean` + - Is `true` if this query observer is enabled, `false` otherwise. - `failureCount: number` - The failure count for the query. - Incremented every time the query fails. diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 6c88ecdaed..c7b18eba58 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -1405,4 +1405,27 @@ describe('queryObserver', () => { const result = observer.getCurrentResult() expect(result.fetchStatus).toBe('idle') }) + + test('should return isEnabled depending on enabled being resolved', () => { + const key = queryKey() + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: () => 'data', + enabled: () => false, + }) + + const result = observer.getCurrentResult() + expect(result.isEnabled).toBe(false) + }) + + test('should return isEnabled as true per default', () => { + const key = queryKey() + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: () => 'data', + }) + + const result = observer.getCurrentResult() + expect(result.isEnabled).toBe(true) + }) }) diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index f2b961eb27..ac0a3e079a 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -576,6 +576,7 @@ export class QueryObserver< isStale: isStale(query, options), refetch: this.refetch, promise: this.#currentThenable, + isEnabled: resolveEnabled(options.enabled, query) !== false, } const nextResult = result as QueryObserverResult diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index e4ed081539..df6ea8c173 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -717,6 +717,10 @@ export interface QueryObserverBaseResult< * - `true` if the query has received a response with no errors and is ready to display its data. */ isSuccess: boolean + /** + * `true` if this observer is enabled, `false` otherwise. + */ + isEnabled: boolean /** * A function to manually refetch the query. */ diff --git a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx index 34ffaf7a47..dbdd8a9fe2 100644 --- a/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/react-query/src/__tests__/useInfiniteQuery.test.tsx @@ -114,6 +114,7 @@ describe('useInfiniteQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -150,6 +151,7 @@ describe('useInfiniteQuery', () => { isRefetching: false, isStale: true, isSuccess: true, + isEnabled: true, refetch: expect.any(Function), status: 'success', fetchStatus: 'idle', diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 33b492d2ef..0b85ad136d 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -121,6 +121,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -149,6 +150,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: true, + isEnabled: true, refetch: expect.any(Function), status: 'success', fetchStatus: 'idle', @@ -211,6 +213,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -239,6 +242,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -267,6 +271,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'error', fetchStatus: 'idle', diff --git a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx index 99408496a5..9381175078 100644 --- a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx @@ -120,6 +120,7 @@ describe('useInfiniteQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -156,6 +157,7 @@ describe('useInfiniteQuery', () => { isRefetching: false, isStale: true, isSuccess: true, + isEnabled: true, refetch: expect.any(Function), status: 'success', fetchStatus: 'idle', diff --git a/packages/solid-query/src/__tests__/useQuery.test.tsx b/packages/solid-query/src/__tests__/useQuery.test.tsx index 7e3027afcc..799a8e240e 100644 --- a/packages/solid-query/src/__tests__/useQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useQuery.test.tsx @@ -301,6 +301,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -329,6 +330,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: true, + isEnabled: true, refetch: expect.any(Function), status: 'success', fetchStatus: 'idle', @@ -392,6 +394,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -420,6 +423,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -448,6 +452,7 @@ describe('useQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'error', fetchStatus: 'idle', diff --git a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts index 91e16bf619..850738f604 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts +++ b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts @@ -62,6 +62,7 @@ describe('createInfiniteQuery', () => { isRefetching: false, isStale: true, isSuccess: false, + isEnabled: true, refetch: expect.any(Function), status: 'pending', fetchStatus: 'fetching', @@ -98,6 +99,7 @@ describe('createInfiniteQuery', () => { isRefetching: false, isStale: true, isSuccess: true, + isEnabled: true, refetch: expect.any(Function), status: 'success', fetchStatus: 'idle', From 390424bcdd547d238148e72926f75c181e342976 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 11 Jul 2025 17:00:39 +0000 Subject: [PATCH 255/432] release: v5.83.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index ad1e458f6a..78763a625a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index f3b58b8ba1..0640b32b6a 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.82.0", + "@tanstack/query-async-storage-persister": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 3ce62b4858..36f4e34be8 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 83a138ee8e..3afc7a02b1 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.82.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-devtools-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 0690a61359..951b334ea6 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 776b8a0064..0f2b8f25a9 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 0e98c63cf3..cdb674a7a1 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 6bcb950924..7fcc581b7d 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index bac8655d09..93b5cc4f15 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index de3ea02c9c..92e10433fb 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index b859c37a3b..7267ec864d 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.82.0", + "@tanstack/angular-query-experimental": "^5.83.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 80011b6925..84fb00bb20 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index f03475bd46..438018413e 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index bb4b9ee3d4..a31a8a71c1 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index a87b5de519..0e8a3a1330 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.82.0", - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", - "@tanstack/react-query-persist-client": "^5.82.0", + "@tanstack/query-async-storage-persister": "^5.83.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query-persist-client": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index f8156d21cb..e61ad68a3f 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index ccf0f5facc..0a443fe5f6 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 5ddfd94be9..d418bc9025 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index ba50a7da75..32701770d5 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.82.0", - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", - "@tanstack/react-query-persist-client": "^5.82.0", + "@tanstack/query-async-storage-persister": "^5.83.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query-persist-client": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 0841863d9a..f09fd2d528 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 43bf94c6a2..059cbc266a 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 9f64d3f482..fcd48d4fa8 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index d83900dcff..88690ef293 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", - "@tanstack/react-query-next-experimental": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query-next-experimental": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 0f22686fa2..77af5c1761 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 3b1717a1ab..f35e81596f 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.82.0", + "@tanstack/query-async-storage-persister": "^5.83.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", - "@tanstack/react-query-persist-client": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query-persist-client": "^5.83.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 82c977489b..a072debf75 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index a5bcbd260a..f88bf6c39c 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index fb69c038f5..34850485da 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index c89f910a2c..7024615639 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 095f142f5f..bb3a7fa425 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index a2f97254d8..fd0bb168d8 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 4ed8cddecf..fc92cc62e4 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 177ebfea04..4e80a913e4 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 51d4cdf96b..b033defa31 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index e63c49ec50..5792dd5444 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 231997d224..033fb6665a 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index f474d3ee22..becc75c4ab 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.82.0", - "@tanstack/react-query-devtools": "^5.82.0", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 3e86753925..75fd36a776 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.82.0", - "@tanstack/solid-query-devtools": "^5.82.0", + "@tanstack/solid-query": "^5.83.0", + "@tanstack/solid-query-devtools": "^5.83.0", "astro": "^5.5.6", "solid-js": "^1.9.5", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index add11289d2..95bf6b8f32 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.82.0", - "@tanstack/solid-query-devtools": "^5.82.0", + "@tanstack/solid-query": "^5.83.0", + "@tanstack/solid-query-devtools": "^5.83.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.5" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index b8d32b4ebc..ef9aa44b00 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.82.0", - "@tanstack/solid-query-devtools": "^5.82.0", + "@tanstack/solid-query": "^5.83.0", + "@tanstack/solid-query-devtools": "^5.83.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index d25a551254..35417856dd 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.82.0", - "@tanstack/solid-query-devtools": "^5.82.0", + "@tanstack/solid-query": "^5.83.0", + "@tanstack/solid-query-devtools": "^5.83.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index d8cce7419e..6e9eae03d8 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.82.0", - "@tanstack/solid-query-devtools": "^5.82.0", + "@tanstack/solid-query": "^5.83.0", + "@tanstack/solid-query-devtools": "^5.83.0", "solid-js": "^1.9.5" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 32aa46a117..dbede8ebc5 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.82.0", - "@tanstack/solid-query-devtools": "^5.82.0", + "@tanstack/solid-query": "^5.83.0", + "@tanstack/solid-query-devtools": "^5.83.0", "solid-js": "^1.9.5", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index cc6491e05b..3045b6937d 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0" + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index d8e689048b..8e2ba673e9 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.82.0", - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0", - "@tanstack/svelte-query-persist-client": "^5.82.0" + "@tanstack/query-async-storage-persister": "^5.83.0", + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0", + "@tanstack/svelte-query-persist-client": "^5.83.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index a7f7468bf5..9654036fda 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0" + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 6744c8d593..1d26d2dc01 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0" + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 617d49f785..4da55a1e6f 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0" + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index d4ed860a9e..453977969a 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0" + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index b0f52077c1..3531ff1651 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0" + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 72f1ce1f50..ed1501260d 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.82.0", - "@tanstack/svelte-query-devtools": "^5.82.0" + "@tanstack/svelte-query": "^5.83.0", + "@tanstack/svelte-query-devtools": "^5.83.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 379d34d726..37c2de72e3 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.82.0", + "@tanstack/vue-query": "^5.83.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index da7f3b347d..42c19da8ef 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.82.0", + "@tanstack/vue-query": "^5.83.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 23f90a84ff..4dfd079b17 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.82.0", - "@tanstack/vue-query-devtools": "^5.82.0", + "@tanstack/vue-query": "^5.83.0", + "@tanstack/vue-query-devtools": "^5.83.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 025025c326..b8a72e3cfd 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.82.0", + "@tanstack/vue-query": "^5.83.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 4e61e91658..71076a3e92 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.82.0" + "@tanstack/vue-query": "^5.83.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index ddc4835f8f..f81d17f36e 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.82.0", - "@tanstack/query-persist-client-core": "^5.82.0", - "@tanstack/query-sync-storage-persister": "^5.82.0", - "@tanstack/vue-query": "^5.82.0", + "@tanstack/query-core": "^5.83.0", + "@tanstack/query-persist-client-core": "^5.83.0", + "@tanstack/query-sync-storage-persister": "^5.83.0", + "@tanstack/vue-query": "^5.83.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 0611766085..92b751d2b0 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.82.0", - "@tanstack/vue-query-devtools": "^5.82.0", + "@tanstack/vue-query": "^5.83.0", + "@tanstack/vue-query-devtools": "^5.83.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 1c7fabb3af..6624b1c9d7 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.82.0", + "version": "5.83.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index bc823e6ef9..2008ffe90b 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.82.0", + "version": "5.83.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 4294f32700..5e3687faa2 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.82.0", + "version": "5.83.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index af89166881..5dbf2025fc 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.82.0", + "version": "5.83.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 8329d627ae..1174756747 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.82.0", + "version": "5.83.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 0ffaa3c737..18676b548f 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.82.0", + "version": "5.83.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 22ca5ae846..ef9c4d40c8 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.82.0", + "version": "5.83.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index efc30c2276..82529a830f 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.82.0", + "version": "5.83.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index a7526d779c..d46addf514 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.82.0", + "version": "5.83.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 0c7d4be93a..8a3ac2da52 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.82.0", + "version": "5.83.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index da263af2c5..c143ee2f0b 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.82.0", + "version": "5.83.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index d41f3eae4b..674429ecaf 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.82.0", + "version": "5.83.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 1636b85f45..da9fd557ea 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.82.0", + "version": "5.83.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index a061a7d1f6..790586debe 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.82.0", + "version": "5.83.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 7b8c98de50..b41de08c48 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.82.0", + "version": "5.83.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 92d3aa0fc5..7d9063f916 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.82.0", + "version": "5.83.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 535a70ce9a..e6693977fb 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.82.0", + "version": "5.83.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 45b74122e8..49ea5ac78d 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.82.0", + "version": "5.83.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 62c7b55528..1a55321042 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.82.0", + "version": "5.83.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 4349e75aedf48981a1f9c134e444477143c7c612 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 12 Jul 2025 03:33:51 +0900 Subject: [PATCH 256/432] test(solid-query/useMutation): remove 'vi.waitFor', replace 'findByText' with 'getByText', and add 'advanceTimersByTimeAsync', 'expect' (#9409) --- .../src/__tests__/useMutation.test.tsx | 191 +++++++----------- 1 file changed, 73 insertions(+), 118 deletions(-) diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index 7c5149f900..8dfa11c9df 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -54,14 +54,10 @@ describe('useMutation', () => { expect(rendered.getByRole('heading').textContent).toBe('empty') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - - await vi.waitFor(() => { - expect(rendered.getByRole('heading').textContent).toBe('mutation') - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByRole('heading').textContent).toBe('mutation') fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - - await vi.waitFor(() => {}) expect(rendered.getByRole('heading').textContent).toBe('empty') }) @@ -97,18 +93,13 @@ describe('useMutation', () => { expect(rendered.queryByRole('heading')).toBeNull() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - - await vi.waitFor(() => { - expect(rendered.getByRole('heading').textContent).toBe( - 'Expected mock error. All is well!', - ) - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByRole('heading').textContent).toBe( + 'Expected mock error. All is well!', + ) fireEvent.click(rendered.getByRole('button', { name: /reset/i })) - - await vi.waitFor(() => { - expect(rendered.queryByRole('heading')).toBeNull() - }) + expect(rendered.queryByRole('heading')).toBeNull() consoleMock.mockRestore() }) @@ -155,22 +146,16 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByRole('heading').textContent).toBe('3') - await vi.waitFor(() => { - expect(rendered.getByRole('heading').textContent).toBe('3') - }) - - await vi.waitFor(() => { - expect(onSuccessMock).toHaveBeenCalledTimes(3) - }) + expect(onSuccessMock).toHaveBeenCalledTimes(3) expect(onSuccessMock).toHaveBeenCalledWith(1) expect(onSuccessMock).toHaveBeenCalledWith(2) expect(onSuccessMock).toHaveBeenCalledWith(3) - await vi.waitFor(() => { - expect(onSettledMock).toHaveBeenCalledTimes(3) - }) + expect(onSettledMock).toHaveBeenCalledTimes(3) expect(onSettledMock).toHaveBeenCalledWith(1) expect(onSettledMock).toHaveBeenCalledWith(2) @@ -222,34 +207,21 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) expect(rendered.getByText('Data')).toBeInTheDocument() - await vi.waitFor(() => - expect(rendered.getByText('Status error')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failed 1 times')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('Failed because Error test Jonas'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status error')).toBeInTheDocument() + expect(rendered.getByText('Failed 1 times')).toBeInTheDocument() + expect( + rendered.getByText('Failed because Error test Jonas'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.waitFor(() => - expect(rendered.getByText('Status pending')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Status success')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Data 2')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failed 0 times')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failed because null')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status pending')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Status success')).toBeInTheDocument() + expect(rendered.getByText('Data 2')).toBeInTheDocument() + expect(rendered.getByText('Failed 0 times')).toBeInTheDocument() + expect(rendered.getByText('Failed because null')).toBeInTheDocument() }) it('should be able to call `onError` and `onSettled` after each failed mutate', async () => { @@ -300,14 +272,10 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByRole('heading').textContent).toBe('3') - await vi.waitFor(() => { - expect(rendered.getByRole('heading').textContent).toBe('3') - }) - - await vi.waitFor(() => { - expect(onErrorMock).toHaveBeenCalledTimes(3) - }) + expect(onErrorMock).toHaveBeenCalledTimes(3) expect(onErrorMock).toHaveBeenCalledWith( 'Expected mock error. All is well! 1', ) @@ -318,9 +286,7 @@ describe('useMutation', () => { 'Expected mock error. All is well! 3', ) - await vi.waitFor(() => { - expect(onSettledMock).toHaveBeenCalledTimes(3) - }) + expect(onSettledMock).toHaveBeenCalledTimes(3) expect(onSettledMock).toHaveBeenCalledWith( 'Expected mock error. All is well! 1', ) @@ -604,13 +570,17 @@ describe('useMutation', () => { )) - await rendered.findByText('data: null, status: idle, isPaused: false') + expect( + rendered.getByText('data: null, status: idle, isPaused: false'), + ).toBeInTheDocument() window.dispatchEvent(new Event('offline')) fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - - await rendered.findByText('data: null, status: pending, isPaused: true') + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('data: null, status: pending, isPaused: true'), + ).toBeInTheDocument() expect(onMutate).toHaveBeenCalledTimes(1) expect(onMutate).toHaveBeenCalledWith('todo') @@ -619,7 +589,9 @@ describe('useMutation', () => { window.dispatchEvent(new Event('online')) await vi.advanceTimersByTimeAsync(10) - await rendered.findByText('data: 1, status: success, isPaused: false') + expect( + rendered.getByText('data: 1, status: success, isPaused: false'), + ).toBeInTheDocument() expect(onMutate).toHaveBeenCalledTimes(1) expect(count).toBe(1) @@ -660,11 +632,11 @@ describe('useMutation', () => { )) - await rendered.findByText('data: null, status: idle, isPaused: false') - + rendered.getByText('data: null, status: idle, isPaused: false') fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - - await rendered.findByText('data: null, status: pending, isPaused: true') + expect( + rendered.getByText('data: null, status: pending, isPaused: true'), + ).toBeInTheDocument() // no intermediate 'pending, false' state is expected because we don't start mutating! expect(states[0]).toBe('idle, false') @@ -674,7 +646,9 @@ describe('useMutation', () => { window.dispatchEvent(new Event('online')) await vi.advanceTimersByTimeAsync(10) - await rendered.findByText('data: 1, status: success, isPaused: false') + expect( + rendered.getByText('data: 1, status: success, isPaused: false'), + ).toBeInTheDocument() onlineMock.mockRestore() }) @@ -831,10 +805,8 @@ describe('useMutation', () => { )) fireEvent.click(rendered.getByText('mutate')) - - await vi.waitFor(() => { - expect(rendered.queryByText('error')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('error')).not.toBeNull() consoleMock.mockRestore() }) @@ -882,15 +854,13 @@ describe('useMutation', () => { // first error goes to component fireEvent.click(rendered.getByText('mutate')) - await vi.waitFor(() => { - expect(rendered.queryByText('mock error')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('mock error')).not.toBeNull() // second error goes to boundary fireEvent.click(rendered.getByText('mutate')) - await vi.waitFor(() => { - expect(rendered.queryByText('error boundary')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('error boundary')).not.toBeNull() consoleMock.mockRestore() }) @@ -943,14 +913,13 @@ describe('useMutation', () => { fireEvent.click(rendered.getByText('succeed')) fireEvent.click(rendered.getByText('error')) - - await vi.waitFor(() => { - expect(rendered.queryByText('successTest')).not.toBeNull() - expect(rendered.queryByText('errorTest')).not.toBeNull() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('successTest')).not.toBeNull() + expect(rendered.queryByText('errorTest')).not.toBeNull() expect(successMock).toHaveBeenCalledTimes(1) expect(successMock).toHaveBeenCalledWith(metaSuccessMessage) + expect(errorMock).toHaveBeenCalledTimes(1) expect(errorMock).toHaveBeenCalledWith(metaErrorMessage) }) @@ -1016,13 +985,10 @@ describe('useMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /hide/i })) - - await vi.waitFor(() => { - expect( - queryClient.getMutationCache().findAll({ mutationKey: mutationKey }), - ).toHaveLength(0) - }) - + await vi.advanceTimersByTimeAsync(10) + expect( + queryClient.getMutationCache().findAll({ mutationKey: mutationKey }), + ).toHaveLength(0) expect(count).toBe(1) expect(onSuccess).toHaveBeenCalledTimes(1) @@ -1166,20 +1132,14 @@ describe('useMutation', () => { )) - await vi.waitFor(() => - expect( - rendered.getByText('error: null, status: idle'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('error: null, status: idle')).toBeInTheDocument() rendered.getByRole('button', { name: /mutate/i }).click() - await vi.advanceTimersByTimeAsync(10) - await vi.waitFor(() => - expect( - rendered.getByText('error: mutateFnError, status: error'), - ).toBeInTheDocument(), - ) + expect( + rendered.getByText('error: mutateFnError, status: error'), + ).toBeInTheDocument() }) it('should go to error state if onSettled callback errors', async () => { @@ -1215,12 +1175,13 @@ describe('useMutation', () => { )) - await rendered.findByText('error: null, status: idle') + expect(rendered.getByText('error: null, status: idle')).toBeInTheDocument() rendered.getByRole('button', { name: /mutate/i }).click() - await vi.advanceTimersByTimeAsync(10) - await rendered.findByText('error: mutateFnError, status: error') + expect( + rendered.getByText('error: mutateFnError, status: error'), + ).toBeInTheDocument() expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined) }) @@ -1250,18 +1211,12 @@ describe('useMutation', () => { const rendered = render(() => ) - await vi.waitFor(() => - expect( - rendered.getByText('data: null, status: idle'), - ).toBeInTheDocument(), - ) + expect(rendered.getByText('data: null, status: idle')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - - await vi.waitFor(() => - expect( - rendered.getByText('data: custom client, status: success'), - ).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.getByText('data: custom client, status: success'), + ).toBeInTheDocument() }) }) From c5bd08352a6e290724df7b7643c0dfe77f82aee6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 12 Jul 2025 23:48:24 +0900 Subject: [PATCH 257/432] test(solid-query/useInfiniteQuery): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync', 'expect' (#9411) --- .../src/__tests__/useInfiniteQuery.test.tsx | 239 +++++++++--------- 1 file changed, 121 insertions(+), 118 deletions(-) diff --git a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx index 9381175078..1b86269073 100644 --- a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx @@ -87,7 +87,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toEqual({ @@ -167,7 +167,7 @@ describe('useInfiniteQuery', () => { it('should not throw when fetchNextPage returns an error', async () => { const key = queryKey() - let noThrow: boolean + let noThrow = false function Page() { const start = 1 @@ -206,7 +206,9 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => expect(noThrow).toBe(true)) + await vi.advanceTimersByTimeAsync(30) + + expect(noThrow).toBe(true) }) it('should keep the previous data when placeholderData is set', async () => { @@ -253,16 +255,19 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => rendered.getByText('data: 0-desc')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 0-desc')).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 0-desc,1-desc')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('data: 0-desc,1-desc')) fireEvent.click(rendered.getByRole('button', { name: /order/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 0-asc')).toBeInTheDocument() + expect(rendered.getByText('isFetching: false')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('data: 0-asc')) - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(6)) - + expect(states.length).toBe(6) expect(states[0]).toMatchObject({ data: undefined, isFetching: true, @@ -335,7 +340,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -381,7 +386,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(selectCalled).toBe(1) @@ -446,12 +451,14 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => rendered.getByText('data: 0')) - fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 0')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('data: 1,0')) + fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 1,0')).toBeInTheDocument() - await vi.waitFor(() => expect(states.length).toBe(4)) + expect(states.length).toBe(4) expect(states[0]).toMatchObject({ data: undefined, isSuccess: false, @@ -517,7 +524,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(30) expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -606,19 +613,24 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => rendered.getByText('data: 10')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 10')).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 10,11')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('data: 10,11')) fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) - await vi.waitFor(() => rendered.getByText('data: 9,10,11')) - fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 9,10,11')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(8)) + fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) + await vi.advanceTimersByTimeAsync(30) + expect(rendered.getByText('isFetching: false')).toBeInTheDocument() + expect(states.length).toBe(8) // Initial fetch expect(states[0]).toMatchObject({ data: undefined, @@ -741,12 +753,14 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => rendered.getByText('data: 10')) - fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 10')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(4)) + fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('isFetching: false')).toBeInTheDocument() + expect(states.length).toBe(4) // Initial fetch expect(states[0]).toMatchObject({ data: undefined, @@ -844,12 +858,14 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => rendered.getByText('data: 10')) - fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 10')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(4)) + fireEvent.click(rendered.getByRole('button', { name: /fetchNextPage/i })) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('isFetching: false')).toBeInTheDocument() + expect(states.length).toBe(4) // Initial fetch expect(states[0]).toMatchObject({ data: undefined, @@ -949,14 +965,16 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => rendered.getByText('data: 10')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('data: 10')).toBeInTheDocument() + fireEvent.click( rendered.getByRole('button', { name: /fetchPreviousPage/i }), ) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('isFetching: false')).toBeInTheDocument() - await vi.waitFor(() => rendered.getByText('isFetching: false')) - await vi.waitFor(() => expect(states.length).toBe(4)) - + expect(states.length).toBe(4) // Initial fetch expect(states[0]).toMatchObject({ data: undefined, @@ -1051,7 +1069,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(300) + await vi.advanceTimersByTimeAsync(160) expect(states.length).toBe(5) expect(states[0]).toMatchObject({ @@ -1137,7 +1155,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(300) + await vi.advanceTimersByTimeAsync(160) const expectedCallCount = 3 expect(fetchPage).toBeCalledTimes(expectedCallCount) @@ -1218,7 +1236,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(300) + await vi.advanceTimersByTimeAsync(160) const expectedCallCount = 2 expect(fetchPage).toBeCalledTimes(expectedCallCount) @@ -1282,7 +1300,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(60) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1344,7 +1362,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(300) + await vi.advanceTimersByTimeAsync(125) expect(fetches).toBe(2) expect(queryClient.getQueryState(key)).toMatchObject({ @@ -1405,7 +1423,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(70) expect(states.length).toBe(5) expect(states[0]).toMatchObject({ @@ -1494,7 +1512,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(30) expect(states.length).toBe(4) expect(states[0]).toMatchObject({ @@ -1552,7 +1570,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1596,7 +1614,8 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1640,7 +1659,8 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1688,7 +1708,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(0) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1803,48 +1823,50 @@ describe('useInfiniteQuery', () => { )) - rendered.getByText('Loading...') - - await vi.waitFor(() => rendered.getByText('Item: 2')) - await vi.waitFor(() => rendered.getByText('Page 0: 0')) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Item: 2')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 0')).toBeInTheDocument() fireEvent.click(rendered.getByText('Load More')) - await vi.advanceTimersByTimeAsync(0) - rendered.getByText('Loading more...') - await vi.waitFor(() => rendered.getByText('Item: 5')) - await vi.waitFor(() => rendered.getByText('Page 0: 0')) - await vi.waitFor(() => rendered.getByText('Page 1: 1')) + expect(rendered.getByText('Loading more...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Item: 5')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 0')).toBeInTheDocument() + expect(rendered.getByText('Page 1: 1')).toBeInTheDocument() fireEvent.click(rendered.getByText('Load More')) - await vi.advanceTimersByTimeAsync(0) rendered.getByText('Loading more...') - await vi.waitFor(() => rendered.getByText('Item: 8')) - await vi.waitFor(() => rendered.getByText('Page 0: 0')) - await vi.waitFor(() => rendered.getByText('Page 1: 1')) - await vi.waitFor(() => rendered.getByText('Page 2: 2')) + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Item: 8')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 0')).toBeInTheDocument() + expect(rendered.getByText('Page 1: 1')).toBeInTheDocument() + expect(rendered.getByText('Page 2: 2')).toBeInTheDocument() fireEvent.click(rendered.getByText('Refetch')) - - await vi.waitFor(() => rendered.getByText('Background Updating...')) - await vi.waitFor(() => rendered.getByText('Item: 8')) - await vi.waitFor(() => rendered.getByText('Page 0: 3')) - await vi.waitFor(() => rendered.getByText('Page 1: 4')) - await vi.waitFor(() => rendered.getByText('Page 2: 5')) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Background Updating...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(30) + expect(rendered.getByText('Item: 8')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 3')).toBeInTheDocument() + expect(rendered.getByText('Page 1: 4')).toBeInTheDocument() + expect(rendered.getByText('Page 2: 5')).toBeInTheDocument() // ensure that Item: 4 is rendered before removing it expect(rendered.queryAllByText('Item: 4')).toHaveLength(1) // remove Item: 4 fireEvent.click(rendered.getByText('Remove item')) - - await vi.waitFor(() => rendered.getByText('Background Updating...')) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Background Updating...')).toBeInTheDocument() // ensure that an additional item is rendered (it means that cursors were properly rebuilt) - await vi.waitFor(() => rendered.getByText('Item: 9')) - await vi.waitFor(() => rendered.getByText('Page 0: 6')) - await vi.waitFor(() => rendered.getByText('Page 1: 7')) - await vi.waitFor(() => rendered.getByText('Page 2: 8')) + await vi.advanceTimersByTimeAsync(30) + expect(rendered.getByText('Item: 9')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 6')).toBeInTheDocument() + expect(rendered.getByText('Page 1: 7')).toBeInTheDocument() + expect(rendered.getByText('Page 2: 8')).toBeInTheDocument() // ensure that Item: 4 is no longer rendered expect(rendered.queryAllByText('Item: 4')).toHaveLength(0) @@ -1932,55 +1954,39 @@ describe('useInfiniteQuery', () => { )) - rendered.getByText('Loading...') - - await vi.waitFor(() => { - rendered.getByText('Item: 9') - rendered.getByText('Page 0: 0') - }) + expect(rendered.getByText('Loading...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Item: 9')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 0')).toBeInTheDocument() fireEvent.click(rendered.getByText('Load More')) - await vi.advanceTimersByTimeAsync(0) - rendered.getByText('Loading more...') - - await vi.waitFor(() => { - rendered.getByText('Item: 19') - rendered.getByText('Page 0: 0') - rendered.getByText('Page 1: 1') - }) + expect(rendered.getByText('Loading more...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Item: 19')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 0')).toBeInTheDocument() + expect(rendered.getByText('Page 1: 1')).toBeInTheDocument() fireEvent.click(rendered.getByText('Load More')) - await vi.advanceTimersByTimeAsync(0) - rendered.getByText('Loading more...') - - await vi.waitFor(() => { - rendered.getByText('Item: 29') - rendered.getByText('Page 0: 0') - rendered.getByText('Page 1: 1') - rendered.getByText('Page 2: 2') - }) - - rendered.getByText('Nothing more to load') - - fireEvent.click(rendered.getByText('Remove Last Page')) - + expect(rendered.getByText('Loading more...')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Item: 29')).toBeInTheDocument() + expect(rendered.getByText('Page 0: 0')).toBeInTheDocument() + expect(rendered.getByText('Page 1: 1')).toBeInTheDocument() + expect(rendered.getByText('Page 2: 2')).toBeInTheDocument() + expect(rendered.getByText('Nothing more to load')).toBeInTheDocument() + fireEvent.click(rendered.getByText('Remove Last Page')) fireEvent.click(rendered.getByText('Refetch')) - - await vi.waitFor(() => rendered.getByText('Background Updating...')) - - await vi.waitFor(() => { - rendered.getByText('Page 0: 3') - rendered.getByText('Page 1: 4') - }) - + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Background Updating...')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(20) + expect(rendered.getByText('Page 0: 3')).toBeInTheDocument() + expect(rendered.getByText('Page 1: 4')).toBeInTheDocument() + expect(rendered.getByText('Nothing more to load')).toBeInTheDocument() expect(rendered.queryByText('Item: 29')).toBeNull() expect(rendered.queryByText('Page 2: 5')).toBeNull() - - rendered.getByText('Nothing more to load') }) it('should cancel the query function when there are no more subscriptions', async () => { @@ -2019,7 +2025,8 @@ describe('useInfiniteQuery', () => { )) - await vi.waitFor(() => rendered.getByText('off')) + await vi.advanceTimersByTimeAsync(5) + expect(rendered.getByText('off')).toBeInTheDocument() expect(cancelFn).toHaveBeenCalled() }) @@ -2049,10 +2056,8 @@ describe('useInfiniteQuery', () => { const rendered = render(() => ) - await vi.waitFor(() => { - const statusElement = rendered.getByText('Status: custom client') - expect(statusElement).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status: custom client')).toBeInTheDocument() }) it('should work with infiniteQueryOptions', async () => { @@ -2078,9 +2083,7 @@ describe('useInfiniteQuery', () => { const rendered = render(() => ) - await vi.waitFor(() => { - const statusElement = rendered.getByText('Status: 220') - expect(statusElement).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(220) + expect(rendered.getByText('Status: 220')).toBeInTheDocument() }) }) From 0cd4e7d2c6226006ff9eeb66988f4fcf56defe8d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 12 Jul 2025 23:50:45 +0900 Subject: [PATCH 258/432] test(svelte-query/createInfiniteQuery): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9413) Co-authored-by: Jonghyeon Ko --- .../createInfiniteQuery/createInfiniteQuery.test.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts index 850738f604..a4f5fea7a8 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts +++ b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts @@ -24,9 +24,8 @@ describe('createInfiniteQuery', () => { }, }) - await vi.waitFor(() => { - expect(rendered.queryByText('Status: success')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('Status: success')).toBeInTheDocument() const states = get(statesStore) @@ -116,9 +115,8 @@ describe('createInfiniteQuery', () => { }, }) - await vi.waitFor(() => { - expect(rendered.queryByText('count: 1')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('count: 1')).toBeInTheDocument() const states = get(statesStore) From c2ece73848bae9b7c885599b91bb65324c96ec46 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 12 Jul 2025 23:55:08 +0900 Subject: [PATCH 259/432] test(svelte-query/createMutation): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9414) Co-authored-by: Jonghyeon Ko --- .../createMutation/createMutation.test.ts | 85 ++++++------------- 1 file changed, 27 insertions(+), 58 deletions(-) diff --git a/packages/svelte-query/tests/createMutation/createMutation.test.ts b/packages/svelte-query/tests/createMutation/createMutation.test.ts index d3b3f1eff4..31995e1541 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.test.ts @@ -17,23 +17,17 @@ describe('createMutation', () => { test('Able to reset `error`', async () => { const rendered = render(ResetExample) - await vi.waitFor(() => { - expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() - }) + expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - - await vi.waitFor(() => { - expect( - rendered.queryByText('Error: Expected mock error'), - ).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect( + rendered.queryByText('Error: Expected mock error'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Reset/i })) - - await vi.waitFor(() => { - expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() }) test('Able to call `onSuccess` and `onSettled` after each successful mutate', async () => { @@ -47,29 +41,21 @@ describe('createMutation', () => { }, }) - await vi.waitFor(() => { - expect(rendered.queryByText('Count: 0')).toBeInTheDocument() - }) + expect(rendered.queryByText('Count: 0')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.queryByText('Count: 3')).toBeInTheDocument() - await vi.waitFor(() => { - expect(rendered.queryByText('Count: 3')).toBeInTheDocument() - }) - - await vi.waitFor(() => { - expect(onSuccessMock).toHaveBeenCalledTimes(3) - }) + expect(onSuccessMock).toHaveBeenCalledTimes(3) expect(onSuccessMock).toHaveBeenCalledWith(1) expect(onSuccessMock).toHaveBeenCalledWith(2) expect(onSuccessMock).toHaveBeenCalledWith(3) - await vi.waitFor(() => { - expect(onSettledMock).toHaveBeenCalledTimes(3) - }) + expect(onSettledMock).toHaveBeenCalledTimes(3) expect(onSettledMock).toHaveBeenCalledWith(1) expect(onSettledMock).toHaveBeenCalledWith(2) @@ -96,41 +82,24 @@ describe('createMutation', () => { }, }) - await vi.waitFor(() => - expect(rendered.queryByText('Data: undefined')).toBeInTheDocument(), - ) + expect(rendered.queryByText('Data: undefined')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await vi.waitFor(() => - expect(rendered.getByText('Data: undefined')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Status: error')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failure Count: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect( - rendered.getByText('Failure Reason: Expected mock error'), - ).toBeInTheDocument(), - ) + expect(rendered.getByText('Data: undefined')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status: error')).toBeInTheDocument() + expect(rendered.getByText('Failure Count: 1')).toBeInTheDocument() + expect( + rendered.getByText('Failure Reason: Expected mock error'), + ).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await vi.waitFor(() => - expect(rendered.getByText('Status: pending')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Status: success')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Data: 2')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failure Count: 0')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('Failure Reason: null')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status: pending')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Status: success')).toBeInTheDocument() + expect(rendered.getByText('Data: 2')).toBeInTheDocument() + expect(rendered.getByText('Failure Count: 0')).toBeInTheDocument() + expect(rendered.getByText('Failure Reason: null')).toBeInTheDocument() }) }) From a5c71cc9e9185c117f7236c1de263db387c058d3 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 12 Jul 2025 23:57:43 +0900 Subject: [PATCH 260/432] test(svelte-query/createQueries): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9415) Co-authored-by: Jonghyeon Ko --- .../tests/createQueries/createQueries.test.ts | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/packages/svelte-query/tests/createQueries/createQueries.test.ts b/packages/svelte-query/tests/createQueries/createQueries.test.ts index ad4547d7da..87cd7c24a2 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test.ts @@ -39,15 +39,13 @@ describe('createQueries', () => { }, }) - await vi.waitFor(() => { - expect(rendered.getByText('Status 1: pending')).toBeInTheDocument() - expect(rendered.getByText('Status 2: pending')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Status 1: pending')).toBeInTheDocument() + expect(rendered.getByText('Status 2: pending')).toBeInTheDocument() - await vi.waitFor(() => { - expect(rendered.getByText('Status 1: success')).toBeInTheDocument() - expect(rendered.getByText('Status 2: success')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Status 1: success')).toBeInTheDocument() + expect(rendered.getByText('Status 2: success')).toBeInTheDocument() }) test('Combine queries', async () => { @@ -57,12 +55,10 @@ describe('createQueries', () => { }, }) - await vi.waitFor(() => { - expect(rendered.getByText('isPending: true')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isPending: true')).toBeInTheDocument() - await vi.waitFor(() => { - expect(rendered.getByText('Data: 1,2,3')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Data: 1,2,3')).toBeInTheDocument() }) }) From f285dee368809bd8723c8ebfa622615032307bb5 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 13:59:15 +0900 Subject: [PATCH 261/432] test(svelte-query/QueryClientProvider): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9417) Co-authored-by: Jonghyeon Ko --- .../tests/QueryClientProvider/QueryClientProvider.test.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts index a4e58e5f0a..f1b4fae371 100644 --- a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts +++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts @@ -21,9 +21,8 @@ describe('QueryClientProvider', () => { }, }) - await vi.waitFor(() => - expect(rendered.getByText('Data: test')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Data: test')).toBeInTheDocument() expect(queryCache.find({ queryKey: ['hello'] })).toBeDefined() }) From 5062c59a2979dbd1ff707d9b5d256ffb1d1b53cc Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 14:04:36 +0900 Subject: [PATCH 262/432] test(svelte-query/useIsFetching): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9418) Co-authored-by: Jonghyeon Ko --- .../tests/useIsFetching/useIsFetching.test.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts index 51d323f450..1a014c9996 100644 --- a/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts +++ b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts @@ -14,15 +14,12 @@ describe('useIsFetching', () => { test('should update as queries start and stop fetching', async () => { const rendered = render(BaseExample) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), - ) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('isFetching: 0')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) }) From 77a358ae0b39cc3b525d0f69f23b93f87aeec281 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 14:29:19 +0900 Subject: [PATCH 263/432] test(svelte-query/useIsMutating): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9419) Co-authored-by: Jonghyeon Ko --- .../tests/useIsMutating/useIsMutating.test.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts index d3ec08a5fe..e1c59803fd 100644 --- a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts +++ b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts @@ -14,15 +14,12 @@ describe('useIsFetching', () => { test('should update as queries start and stop fetching', async () => { const rendered = render(BaseExample) - await vi.waitFor(() => - expect(rendered.getByText('isMutating: 0')).toBeInTheDocument(), - ) + expect(rendered.getByText('isMutating: 0')).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /Trigger/i })) - await vi.waitFor(() => - expect(rendered.getByText('isMutating: 1')).toBeInTheDocument(), - ) - await vi.waitFor(() => - expect(rendered.getByText('isMutating: 0')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('isMutating: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('isMutating: 0')).toBeInTheDocument() }) }) From 91bbf4888fd6cebe0528b367de566d22738529d5 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 17:10:50 +0900 Subject: [PATCH 264/432] test(angular-query-experimental/inject-is-fetching): replace 'advanceTimersByTime' with 'advanceTimersByTimeAsync', and add 'expect' 'isFetching' to equal 0 (#9423) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/inject-is-fetching.test.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts index ded0d92630..329ef6d9e3 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-fetching.test.ts @@ -9,10 +9,6 @@ import { provideTanStackQuery, } from '..' -const QUERY_DURATION = 100 - -const resolveQueries = () => vi.advanceTimersByTimeAsync(QUERY_DURATION) - describe('injectIsFetching', () => { let queryClient: QueryClient @@ -41,10 +37,10 @@ describe('injectIsFetching', () => { return injectIsFetching() }) - vi.advanceTimersByTime(1) - + expect(isFetching()).toStrictEqual(0) + await vi.advanceTimersByTimeAsync(1) expect(isFetching()).toStrictEqual(1) - await resolveQueries() + await vi.advanceTimersByTimeAsync(100) expect(isFetching()).toStrictEqual(0) }) From 8e77701e04e7e8834ba98657217a14e16a752059 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 17:14:03 +0900 Subject: [PATCH 265/432] test(vue-query/useQuery): switch to fake timers, and replace 'sleep' with 'advanceTimersByTimeAsync' (#9421) Co-authored-by: Jonghyeon Ko --- .../vue-query/src/__tests__/useQuery.test.ts | 80 +++++++++++-------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/packages/vue-query/src/__tests__/useQuery.test.ts b/packages/vue-query/src/__tests__/useQuery.test.ts index bbae15ddf8..c62b6c06de 100644 --- a/packages/vue-query/src/__tests__/useQuery.test.ts +++ b/packages/vue-query/src/__tests__/useQuery.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test, vi } from 'vitest' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { computed, getCurrentInstance, @@ -16,6 +16,14 @@ vi.mock('../useQueryClient') vi.mock('../useBaseQuery') describe('useQuery', () => { + beforeEach(() => { + vi.useFakeTimers() + }) + + afterEach(() => { + vi.useRealTimers() + }) + test('should properly execute query', () => { const queryFn = () => sleep(0).then(() => 'Some data') @@ -56,7 +64,7 @@ describe('useQuery', () => { queryFn: () => sleep(0).then(() => 'result2'), }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ status: { value: 'success' }, @@ -75,7 +83,7 @@ describe('useQuery', () => { enabled: true, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ status: { value: 'success' }, @@ -94,7 +102,7 @@ describe('useQuery', () => { enabled: true, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ status: { value: 'success' }, @@ -113,7 +121,7 @@ describe('useQuery', () => { sleep(0).then(() => Promise.reject(new Error('Some error'))), }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ status: { value: 'error' }, @@ -132,24 +140,24 @@ describe('useQuery', () => { const secondKeyRef = ref('key7') const query = useQuery({ queryKey: ['key6', secondKeyRef], - queryFn: () => sleep(0).then(() => 'Some data'), + queryFn: () => sleep(10).then(() => 'Some data'), }) - await sleep(0) + await vi.advanceTimersByTimeAsync(10) expect(query).toMatchObject({ status: { value: 'success' }, }) secondKeyRef.value = 'key8' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ status: { value: 'pending' }, data: { value: undefined }, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(10) expect(query).toMatchObject({ status: { value: 'success' }, @@ -160,11 +168,11 @@ describe('useQuery', () => { const enabled = ref(false) const query = useQuery({ queryKey: ['key9'], - queryFn: () => sleep(0).then(() => 'Some data'), + queryFn: () => sleep(10).then(() => 'Some data'), enabled, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ fetchStatus: { value: 'idle' }, @@ -173,14 +181,14 @@ describe('useQuery', () => { enabled.value = true - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ fetchStatus: { value: 'fetching' }, data: { value: undefined }, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(10) expect(query).toMatchObject({ status: { value: 'success' }, @@ -197,7 +205,7 @@ describe('useQuery', () => { const dependentQueryFn = vi .fn() - .mockImplementation(() => sleep(0).then(() => 'Some data')) + .mockImplementation(() => sleep(10).then(() => 'Some data')) const { fetchStatus, status } = useQuery( reactive({ queryKey: ['dependant2'], @@ -210,12 +218,12 @@ describe('useQuery', () => { expect(fetchStatus.value).toStrictEqual('idle') expect(dependentQueryFn).not.toHaveBeenCalled() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(data.value).toStrictEqual('Some data') expect(fetchStatus.value).toStrictEqual('fetching') - await sleep(0) + await vi.advanceTimersByTimeAsync(10) expect(fetchStatus.value).toStrictEqual('idle') expect(status.value).toStrictEqual('success') @@ -238,11 +246,11 @@ describe('useQuery', () => { expect(status.value).toStrictEqual('pending') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(status.value).toStrictEqual('pending') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(status.value).toStrictEqual('pending') }) @@ -289,7 +297,7 @@ describe('useQuery', () => { checked.value = true - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalled() }) @@ -308,13 +316,13 @@ describe('useQuery', () => { key1.value = 'key3' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(2) key2.value = 'key4' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(3) }) @@ -349,31 +357,31 @@ describe('useQuery', () => { key1.value = 'key1-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(2) key2.value = 'key2-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(3) key3.value = 'key3-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(4) key4.value = 'key4-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(5) key5.value = 'key5-updated' - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(fetchFn).toHaveBeenCalledTimes(6) }) @@ -382,14 +390,14 @@ describe('useQuery', () => { test('should evaluate throwOnError when query is expected to throw', async () => { const boundaryFn = vi.fn() useQuery({ - queryKey: ['key0'], + queryKey: ['key'], queryFn: () => sleep(0).then(() => Promise.reject(new Error('Some error'))), retry: false, throwOnError: boundaryFn, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(boundaryFn).toHaveBeenCalledTimes(1) expect(boundaryFn).toHaveBeenCalledWith( @@ -415,7 +423,7 @@ describe('useQuery', () => { expect(result).toBeInstanceOf(Promise) }) - test('should resolve after being enabled', () => { + test('should resolve after being enabled', async () => { const getCurrentInstanceSpy = getCurrentInstance as Mock getCurrentInstanceSpy.mockImplementation(() => ({ suspense: {} })) @@ -432,9 +440,11 @@ describe('useQuery', () => { isEnabled.value = true }, 200) - return query.suspense().then(() => { - expect(afterTimeout).toBe(true) - }) + query.suspense() + + await vi.advanceTimersByTimeAsync(200) + + expect(afterTimeout).toBe(true) }) test('should resolve immediately when stale without refetching', () => { @@ -467,7 +477,7 @@ describe('useQuery', () => { staleTime: 10000, }) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(query).toMatchObject({ status: { value: 'error' }, @@ -488,7 +498,9 @@ describe('useQuery', () => { throwOnError: boundaryFn, }) - await query.suspense() + query.suspense() + + await vi.advanceTimersByTimeAsync(10000) expect(boundaryFn).toHaveBeenCalledTimes(2) expect(boundaryFn).toHaveBeenNthCalledWith( From 5a783b1b39904e6df592c4e70991e6ad742853bc Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 17:19:18 +0900 Subject: [PATCH 266/432] test(angular-query-experimental/inject-infinite-query): use precise time in 'advanceTimersByTimeAsync' (#9422) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/inject-infinite-query.test.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts index 93fddcc007..7873d5261c 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-infinite-query.test.ts @@ -5,10 +5,6 @@ import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectInfiniteQuery, provideTanStackQuery } from '..' import { expectSignals } from './test-utils' -const QUERY_DURATION = 1000 - -const resolveQueries = () => vi.advanceTimersByTimeAsync(QUERY_DURATION) - describe('injectInfiniteQuery', () => { let queryClient: QueryClient @@ -32,7 +28,7 @@ describe('injectInfiniteQuery', () => { return injectInfiniteQuery(() => ({ queryKey: ['infiniteQuery'], queryFn: ({ pageParam }) => - sleep(0).then(() => 'data on page ' + pageParam), + sleep(10).then(() => 'data on page ' + pageParam), initialPageParam: 0, getNextPageParam: () => 12, })) @@ -43,7 +39,7 @@ describe('injectInfiniteQuery', () => { status: 'pending', }) - await resolveQueries() + await vi.advanceTimersByTimeAsync(11) expectSignals(query, { data: { @@ -55,7 +51,7 @@ describe('injectInfiniteQuery', () => { void query.fetchNextPage() - await resolveQueries() + await vi.advanceTimersByTimeAsync(11) expectSignals(query, { data: { From 431784dff923199005991b2b07e5414b83e0ce2b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 17:26:54 +0900 Subject: [PATCH 267/432] test(svelte-query/useMutationState): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9420) Co-authored-by: Jonghyeon Ko --- .../useMutationState/useMutationState.test.ts | 53 +++++++------------ 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts index afebff63c2..14844c23d2 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts @@ -13,7 +13,6 @@ describe('useMutationState', () => { test('Run few mutation functions and check from useMutationState', async () => { const successMutationFn = vi.fn() - const errorMutationFn = vi.fn().mockImplementation(() => { throw 'error' }) @@ -33,20 +32,16 @@ describe('useMutationState', () => { }) fireEvent.click(rendered.getByTestId('success')) - - await vi.waitFor(() => { - expect(successMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') - }) + await vi.advanceTimersByTimeAsync(0) + expect(successMutationFn).toHaveBeenCalledTimes(1) + expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') fireEvent.click(rendered.getByTestId('error')) - - await vi.waitFor(() => { - expect(errorMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual( - '["success","error"]', - ) - }) + await vi.advanceTimersByTimeAsync(0) + expect(errorMutationFn).toHaveBeenCalledTimes(1) + expect(rendered.getByTestId('result').innerHTML).toEqual( + '["success","error"]', + ) }) test('Can select specific type of mutation ( i.e: error only )', async () => { @@ -74,18 +69,14 @@ describe('useMutationState', () => { }) fireEvent.click(rendered.getByTestId('success')) - - await vi.waitFor(() => { - expect(successMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('[]') - }) + await vi.advanceTimersByTimeAsync(0) + expect(successMutationFn).toHaveBeenCalledTimes(1) + expect(rendered.getByTestId('result').innerHTML).toEqual('[]') fireEvent.click(rendered.getByTestId('error')) - - await vi.waitFor(() => { - expect(errorMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["error"]') - }) + await vi.advanceTimersByTimeAsync(0) + expect(errorMutationFn).toHaveBeenCalledTimes(1) + expect(rendered.getByTestId('result').innerHTML).toEqual('["error"]') }) test('Can select specific mutation using mutation key', async () => { @@ -113,17 +104,13 @@ describe('useMutationState', () => { }) fireEvent.click(rendered.getByTestId('success')) - - await vi.waitFor(() => { - expect(successMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') - }) + await vi.advanceTimersByTimeAsync(0) + expect(successMutationFn).toHaveBeenCalledTimes(1) + expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') fireEvent.click(rendered.getByTestId('error')) - - await vi.waitFor(() => { - expect(errorMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') - }) + await vi.advanceTimersByTimeAsync(0) + expect(errorMutationFn).toHaveBeenCalledTimes(1) + expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') }) }) From f8a20ac143e7da3ddab363bea7493a50ce73a32a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 13 Jul 2025 17:31:02 +0900 Subject: [PATCH 268/432] test(svelte-query/createQuery): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' (#9416) Co-authored-by: Jonghyeon Ko --- .../tests/createQuery/createQuery.test.ts | 92 +++++++++---------- 1 file changed, 41 insertions(+), 51 deletions(-) diff --git a/packages/svelte-query/tests/createQuery/createQuery.test.ts b/packages/svelte-query/tests/createQuery/createQuery.test.ts index 29ffe61212..7a3a764d47 100644 --- a/packages/svelte-query/tests/createQuery/createQuery.test.ts +++ b/packages/svelte-query/tests/createQuery/createQuery.test.ts @@ -38,9 +38,8 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => { - expect(rendered.queryByText('Status: success')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.queryByText('Status: success')).toBeInTheDocument() const states = get(statesStore) @@ -106,7 +105,7 @@ describe('createQuery', () => { const options = { queryKey: ['test'], - queryFn: async () => Promise.reject(new Error('Rejected')), + queryFn: () => Promise.reject(new Error('Rejected')), retry: 1, retryDelay: 1, } @@ -119,9 +118,8 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => - expect(rendered.getByText('Status: error')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(2) + expect(rendered.getByText('Status: error')).toBeInTheDocument() const states = get(statesStore) @@ -228,9 +226,8 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => { - expect(rendered.queryByText('Status: success')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.queryByText('Status: success')).toBeInTheDocument() }) test('Accept a derived store for options', async () => { @@ -254,9 +251,8 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => { - expect(rendered.queryByText('Status: success')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.queryByText('Status: success')).toBeInTheDocument() }) test('Ensure reactivity when queryClient defaults are set', async () => { @@ -282,24 +278,21 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => { - expect(rendered.queryByText('Data: 1')).toBeInTheDocument() - expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.queryByText('Data: 1')).toBeInTheDocument() + expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() writableStore.set(2) - await vi.waitFor(() => { - expect(rendered.queryByText('Data: 1')).not.toBeInTheDocument() - expect(rendered.queryByText('Data: 2')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.queryByText('Data: 1')).not.toBeInTheDocument() + expect(rendered.queryByText('Data: 2')).toBeInTheDocument() writableStore.set(1) - await vi.waitFor(() => { - expect(rendered.queryByText('Data: 1')).toBeInTheDocument() - expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.queryByText('Data: 1')).toBeInTheDocument() + expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() }) test('Keep previous data when placeholderData is set', async () => { @@ -312,15 +305,12 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => - expect(rendered.getByText('Data: 0')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Data: 0')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - - await vi.waitFor(() => - expect(rendered.getByText('Data: 1')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Data: 1')).toBeInTheDocument() const states = get(statesStore) @@ -368,20 +358,17 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => - expect(rendered.getByText('Data: 0')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Data: 0')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Increment/i })) - - await vi.waitFor(() => { - expect(rendered.getByText('Count: 1')).toBeInTheDocument() - expect(rendered.getByText('Data: undefined')).toBeInTheDocument() - }) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Count: 1')).toBeInTheDocument() + expect(rendered.getByText('Data: undefined')).toBeInTheDocument() const states = get(statesStore) - expect(states).toHaveLength(3) + expect(states).toHaveLength(4) // Fetch query expect(states[0]).toMatchObject({ @@ -397,12 +384,19 @@ describe('createQuery', () => { isSuccess: true, }) - // Switch to disabled query + // Switch to query disable expect(states[2]).toMatchObject({ data: undefined, isFetching: false, isSuccess: false, }) + + // Fetched disabled query + expect(states[3]).toMatchObject({ + data: undefined, + isFetching: false, + isSuccess: false, + }) }) test('Create a new query when refetching a removed query', async () => { @@ -414,17 +408,13 @@ describe('createQuery', () => { }, }) - await vi.waitFor(() => - expect(rendered.getByText('Data: 1')).toBeInTheDocument(), - ) - fireEvent.click(rendered.getByRole('button', { name: /Remove/i })) - - await vi.advanceTimersByTimeAsync(5) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Data: 1')).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /Remove/i })) fireEvent.click(rendered.getByRole('button', { name: /Refetch/i })) - await vi.waitFor(() => - expect(rendered.getByText('Data: 2')).toBeInTheDocument(), - ) + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Data: 2')).toBeInTheDocument() const states = get(statesStore) From 357bafb30671c70ef996677d0c3aaa3cca22a47b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 14 Jul 2025 06:47:29 +0900 Subject: [PATCH 269/432] test(query-core/mutations): replace 'runAllTimersAsync' with 'advanceTimersByTimeAsync', and use precise time in 'advanceTimersByTimeAsync' (#9427) --- .../src/__tests__/mutations.test.tsx | 61 +++++++++++-------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index dfe05db55d..4201972c88 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -29,7 +29,8 @@ describe('mutations', () => { }, }) - await mutation.mutate(null) + mutation.mutate(null) + await vi.advanceTimersByTimeAsync(0) expect(variables).toBe(null) }) @@ -42,7 +43,7 @@ describe('mutations', () => { mutationFn: fn, }) - await executeMutation( + executeMutation( queryClient, { mutationKey: key, @@ -50,6 +51,7 @@ describe('mutations', () => { 'vars', ) + await vi.advanceTimersByTimeAsync(0) expect(fn).toHaveBeenCalledTimes(1) expect(fn).toHaveBeenCalledWith('vars') }) @@ -106,7 +108,7 @@ describe('mutations', () => { submittedAt: expect.any(Number), }) - await vi.advanceTimersByTimeAsync(5) + await vi.advanceTimersByTimeAsync(0) expect(states[1]).toEqual({ context: 'todo', @@ -126,7 +128,7 @@ describe('mutations', () => { submittedAt: expect.any(Number), }) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(10) expect(states[2]).toEqual({ context: 'todo', @@ -153,7 +155,7 @@ describe('mutations', () => { sleep(20).then(() => Promise.reject(new Error('err'))), onMutate: (text) => text, retry: 1, - retryDelay: 1, + retryDelay: 10, }) const states: Array> = [] @@ -184,7 +186,7 @@ describe('mutations', () => { submittedAt: expect.any(Number), }) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(states[1]).toEqual({ context: 'todo', @@ -292,7 +294,6 @@ describe('mutations', () => { }) void queryClient.resumePausedMutations() - await vi.advanceTimersByTimeAsync(0) // check that the mutation is correctly resumed expect(mutation.state).toEqual({ @@ -307,7 +308,7 @@ describe('mutations', () => { submittedAt: 1, }) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(10) expect(mutation.state).toEqual({ context: 'todo', @@ -371,7 +372,9 @@ describe('mutations', () => { }, }) - await mutation.mutate(undefined, { onSuccess, onSettled }) + mutation.mutate(undefined, { onSuccess, onSettled }) + + await vi.advanceTimersByTimeAsync(0) expect(mutation.getCurrentResult().data).toEqual('update') expect(onSuccess).not.toHaveBeenCalled() expect(onSettled).not.toHaveBeenCalled() @@ -387,7 +390,9 @@ describe('mutations', () => { }, }) - await mutation.mutate(undefined, { onSuccess, onSettled }) + mutation.mutate(undefined, { onSuccess, onSettled }) + + await vi.advanceTimersByTimeAsync(0) expect(mutation.getCurrentResult().data).toEqual('update') expect(onSuccess).not.toHaveBeenCalled() expect(onSettled).not.toHaveBeenCalled() @@ -479,7 +484,7 @@ describe('mutations', () => { isPaused: true, }) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(20) expect(results).toStrictEqual([ 'start-A', @@ -524,7 +529,7 @@ describe('mutations', () => { 'vars2', ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(10) expect(results).toStrictEqual([ 'start-A', @@ -601,7 +606,7 @@ describe('mutations', () => { 'vars2', ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(20) expect(results).toStrictEqual([ 'start-A1', @@ -620,7 +625,7 @@ describe('mutations', () => { const key = queryKey() const results: Array = [] - await executeMutation( + executeMutation( queryClient, { mutationKey: key, @@ -645,6 +650,8 @@ describe('mutations', () => { 'vars', ) + await vi.advanceTimersByTimeAsync(0) + expect(results).toEqual([ 'onMutate-sync', 'onSuccess-implicit-void', @@ -663,12 +670,12 @@ describe('mutations', () => { mutationFn: () => Promise.resolve('success'), onMutate: async () => { results.push('onMutate-async') - await sleep(1) + await sleep(10) return { backup: 'async-data' } }, onSuccess: async () => { results.push('onSuccess-async-start') - await sleep(2) + await sleep(20) results.push('onSuccess-async-end') // Implicit void return from async }, @@ -680,7 +687,7 @@ describe('mutations', () => { 'vars', ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(30) expect(results).toEqual([ 'onMutate-async', @@ -702,14 +709,14 @@ describe('mutations', () => { onSuccess: () => { results.push('onSuccess-start') return Promise.all([ - sleep(2).then(() => results.push('invalidate-queries')), - sleep(1).then(() => results.push('track-analytics')), + sleep(20).then(() => results.push('invalidate-queries')), + sleep(10).then(() => results.push('track-analytics')), ]) }, onSettled: () => { results.push('onSettled-start') return Promise.allSettled([ - sleep(1).then(() => results.push('cleanup-1')), + sleep(10).then(() => results.push('cleanup-1')), Promise.reject('error').catch(() => results.push('cleanup-2-failed'), ), @@ -719,7 +726,7 @@ describe('mutations', () => { 'vars', ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(30) expect(results).toEqual([ 'onSuccess-start', @@ -746,7 +753,7 @@ describe('mutations', () => { }, onSuccess: async () => { results.push('async-onSuccess') - await sleep(1) + await sleep(10) return 'success-return-ignored' }, onError: () => { @@ -764,7 +771,7 @@ describe('mutations', () => { 'vars', ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(10) const mutationResult = await mutationPromise @@ -798,11 +805,11 @@ describe('mutations', () => { }, onError: async () => { results.push('onError-async') - await sleep(1) + await sleep(10) // Test Promise.all() in error callback return Promise.all([ - sleep(1).then(() => results.push('error-cleanup-1')), - sleep(2).then(() => results.push('error-cleanup-2')), + sleep(10).then(() => results.push('error-cleanup-1')), + sleep(20).then(() => results.push('error-cleanup-2')), ]) }, onSettled: (_data, _error, _variables, context) => { @@ -818,7 +825,7 @@ describe('mutations', () => { mutationError = error }) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(30) expect(results).toEqual([ 'onMutate', From d5a4d359dfd64e924fee7117c6ca7589a3cd8227 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 14 Jul 2025 06:53:43 +0900 Subject: [PATCH 270/432] test(query-core/infiniteQueryBehavior): remove 'vi.waitFor', and add 'advanceTimersByTimeAsync' in infinite loop on retry test (#9426) Co-authored-by: Jonghyeon Ko --- .../__tests__/infiniteQueryBehavior.test.tsx | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index e7a9745bf8..5c365f5152 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -376,32 +376,32 @@ describe('InfiniteQueryBehavior', () => { }) // Fetch Page 1 - await vi.waitFor(async () => { - const page1Data = await observer.fetchNextPage() - expect(page1Data.data?.pageParams).toEqual([1]) - }) + const fetchPage1Promise = observer.fetchNextPage() + await vi.advanceTimersByTimeAsync(10) + const page1Data = await fetchPage1Promise + expect(page1Data.data?.pageParams).toEqual([1]) // Fetch Page 2, as per the queryFn, this will reject 2 times then resolves - await vi.waitFor(async () => { - const page2Data = await observer.fetchNextPage() - expect(page2Data.data?.pageParams).toEqual([1, 2]) - }) + const fetchPage2Promise = observer.fetchNextPage() + await vi.advanceTimersByTimeAsync(70) + const page2Data = await fetchPage2Promise + expect(page2Data.data?.pageParams).toEqual([1, 2]) // Fetch Page 3 - await vi.waitFor(async () => { - const page3Data = await observer.fetchNextPage() - expect(page3Data.data?.pageParams).toEqual([1, 2, 3]) - }) + const fetchPage3Promise = observer.fetchNextPage() + await vi.advanceTimersByTimeAsync(10) + const page3Data = await fetchPage3Promise + expect(page3Data.data?.pageParams).toEqual([1, 2, 3]) // Now the real deal; re-fetching this query **should not** stamp into an // infinite loop where the retryer every time restarts from page 1 // once it reaches the page where it errors. // For this to work, we'd need to reset the error count so we actually retry errorCount = 0 - await vi.waitFor(async () => { - const reFetchedData = await observer.refetch() - expect(reFetchedData.data?.pageParams).toEqual([1, 2, 3]) - }) + const reFetchPromise = observer.fetchNextPage() + await vi.advanceTimersByTimeAsync(10) + const reFetchedData = await reFetchPromise + expect(reFetchedData.data?.pageParams).toEqual([1, 2, 3]) }) test('should fetch even if initialPageParam is null', async () => { From d7f16213b7af7815f2c4c245fd4adfacd5c011ad Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 14 Jul 2025 07:05:38 +0900 Subject: [PATCH 271/432] test(svelte-query/useIsMutating): replace incorrect usage of 'fetching' with 'mutating' (#9424) Co-authored-by: Jonghyeon Ko --- .../svelte-query/tests/useIsMutating/useIsMutating.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts index e1c59803fd..f6c3c00762 100644 --- a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts +++ b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts @@ -2,7 +2,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import BaseExample from './BaseExample.svelte' -describe('useIsFetching', () => { +describe('useIsMutating', () => { beforeEach(() => { vi.useFakeTimers() }) @@ -11,7 +11,7 @@ describe('useIsFetching', () => { vi.useRealTimers() }) - test('should update as queries start and stop fetching', async () => { + test('should update as queries start and stop mutating', async () => { const rendered = render(BaseExample) expect(rendered.getByText('isMutating: 0')).toBeInTheDocument() From 35d5d55aa72a9e39284554852983b0745deecc52 Mon Sep 17 00:00:00 2001 From: jt_fox Date: Mon, 14 Jul 2025 17:25:12 +0900 Subject: [PATCH 272/432] docs(solid): fix incorrect link to state managers guide (#9430) Fix broken navigation where clicking "Does this replace state managers?" in Solid docs incorrectly redirected to Angular guide instead of the proper Solid guide page. --- docs/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config.json b/docs/config.json index 8c2b4dcf3c..5f1bc1913e 100644 --- a/docs/config.json +++ b/docs/config.json @@ -459,7 +459,7 @@ }, { "label": "Does this replace state managers?", - "to": "framework/angular/guides/does-this-replace-client-state" + "to": "framework/solid/guides/does-this-replace-client-state" } ] }, From 9dcd5885bf2cfb34f3f3fd3296f2ab84b901bb4b Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 15 Jul 2025 21:07:48 +0900 Subject: [PATCH 273/432] test(angular-query-experimental/inject-is-mutating): separate 'injectionContext' from testing, and add more 'expect' (#9425) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/inject-is-mutating.test.ts | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts index 4295efdc41..5a4694cb85 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-is-mutating.test.ts @@ -28,24 +28,26 @@ describe('injectIsMutating', () => { vi.useRealTimers() }) - test('should properly return isMutating state', () => { - TestBed.runInInjectionContext(() => { - const isMutating = injectIsMutating() - const mutation = injectMutation(() => ({ + test('should properly return isMutating state', async () => { + const [mutation, isMutating] = TestBed.runInInjectionContext(() => [ + injectMutation(() => ({ mutationKey: ['isMutating1'], - mutationFn: (params: { par1: string }) => sleep(0).then(() => params), - })) + mutationFn: (params: { par1: string }) => sleep(10).then(() => params), + })), + injectIsMutating(), + ]) - expect(isMutating()).toBe(0) + expect(isMutating()).toBe(0) - mutation.mutate({ - par1: 'par1', - }) - - vi.advanceTimersByTime(1) - - expect(isMutating()).toBe(1) + mutation.mutate({ + par1: 'par1', }) + + expect(isMutating()).toBe(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutating()).toBe(1) + await vi.advanceTimersByTimeAsync(11) + expect(isMutating()).toBe(0) }) describe('injection context', () => { From c65869e9f186237a9134c73ef5d31593d6203b1e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 15 Jul 2025 21:11:02 +0900 Subject: [PATCH 274/432] test(query-core/queriesObserver): use precise time in 'advanceTimersByTimeAsync' (#9429) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/queriesObserver.test.tsx | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index 7fb9790b39..a41c848393 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -30,8 +30,11 @@ describe('queriesObserver', () => { const unsubscribe = observer.subscribe((result) => { observerResult = result }) - await vi.advanceTimersByTimeAsync(1) + + await vi.advanceTimersByTimeAsync(0) + unsubscribe() + expect(observerResult).toMatchObject([{ data: 1 }, { data: 2 }]) }) @@ -49,10 +52,11 @@ describe('queriesObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + + await vi.advanceTimersByTimeAsync(0) queryClient.setQueryData(key2, 3) - await vi.advanceTimersByTimeAsync(1) unsubscribe() + expect(results.length).toBe(6) expect(results[0]).toMatchObject([ { status: 'pending', fetchStatus: 'idle', data: undefined }, @@ -94,10 +98,12 @@ describe('queriesObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + + await vi.advanceTimersByTimeAsync(0) observer.setQueries([{ queryKey: key2, queryFn: queryFn2 }]) - await vi.advanceTimersByTimeAsync(1) + const queryCache = queryClient.getQueryCache() + expect(queryCache.find({ queryKey: key1, type: 'active' })).toBeUndefined() expect(queryCache.find({ queryKey: key2, type: 'active' })).toBeDefined() unsubscribe() @@ -141,13 +147,15 @@ describe('queriesObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + + await vi.advanceTimersByTimeAsync(0) observer.setQueries([ { queryKey: key2, queryFn: queryFn2 }, { queryKey: key1, queryFn: queryFn1 }, ]) - await vi.advanceTimersByTimeAsync(1) + unsubscribe() + expect(results.length).toBe(6) expect(results[0]).toMatchObject([ { status: 'pending', fetchStatus: 'idle', data: undefined }, @@ -189,13 +197,15 @@ describe('queriesObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + + await vi.advanceTimersByTimeAsync(0) observer.setQueries([ { queryKey: key1, queryFn: queryFn1 }, { queryKey: key2, queryFn: queryFn2 }, ]) - await vi.advanceTimersByTimeAsync(1) + unsubscribe() + expect(results.length).toBe(5) expect(results[0]).toMatchObject([ { status: 'pending', fetchStatus: 'idle', data: undefined }, @@ -219,7 +229,7 @@ describe('queriesObserver', () => { ]) }) - test('should trigger all fetches when subscribed', async () => { + test('should trigger all fetches when subscribed', () => { const key1 = queryKey() const key2 = queryKey() const queryFn1 = vi.fn().mockReturnValue(1) @@ -228,9 +238,11 @@ describe('queriesObserver', () => { { queryKey: key1, queryFn: queryFn1 }, { queryKey: key2, queryFn: queryFn2 }, ]) + const unsubscribe = observer.subscribe(() => undefined) - await vi.advanceTimersByTimeAsync(1) + unsubscribe() + expect(queryFn1).toHaveBeenCalledTimes(1) expect(queryFn2).toHaveBeenCalledTimes(1) }) @@ -254,7 +266,9 @@ describe('queriesObserver', () => { const unsubscribe2 = observer.subscribe(subscription2Handler) unsubscribe1() + await vi.advanceTimersByTimeAsync(20) + // 1 call: pending expect(subscription1Handler).toBeCalledTimes(1) // 1 call: success @@ -277,6 +291,7 @@ describe('queriesObserver', () => { ]) const results: Array> = [] + results.push( observer.getOptimisticResult( [ @@ -292,7 +307,8 @@ describe('queriesObserver', () => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) + unsubscribe() expect(results.length).toBe(6) From 343501c7bb02b74c45f564b0a4cd303fbaa027fc Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 15 Jul 2025 21:15:59 +0900 Subject: [PATCH 275/432] test(query-core/queryObserver): use precise time in 'advanceTimersByTimeAsync' (#9432) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/queryObserver.test.tsx | 61 +++++++++---------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index c7b18eba58..706006786c 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -282,9 +282,9 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) observer.setOptions({ queryKey: key2, queryFn: () => 2 }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(results.length).toBe(4) expect(results[0]).toMatchObject({ data: undefined, status: 'pending' }) @@ -307,7 +307,7 @@ describe('queryObserver', () => { >() observerResult = result }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(observerResult).toMatchObject({ data: { myCount: 1 } }) }) @@ -337,7 +337,7 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { observerResult = result }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(observerResult).toMatchObject({ data: { myCount: 1 } }) }) @@ -381,13 +381,12 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) observer.setOptions({ queryKey: key, queryFn, select: select2, }) - await vi.advanceTimersByTimeAsync(1) await observer.refetch() unsubscribe() expect(count).toBe(2) @@ -436,13 +435,12 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) observer.setOptions({ queryKey: key, queryFn, select, }) - await vi.advanceTimersByTimeAsync(1) await observer.refetch() unsubscribe() expect(count).toBe(1) @@ -504,7 +502,7 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(50) + await vi.advanceTimersByTimeAsync(10) observer.refetch() await vi.advanceTimersByTimeAsync(10) unsubscribe() @@ -554,7 +552,7 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe((result) => { results.push(result) }) - await vi.advanceTimersByTimeAsync(50) + await vi.advanceTimersByTimeAsync(10) observer.refetch() await vi.advanceTimersByTimeAsync(10) unsubscribe() @@ -610,7 +608,7 @@ describe('queryObserver', () => { enabled: false, }) const unsubscribe = observer.subscribe(() => undefined) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(0) }) @@ -626,7 +624,7 @@ describe('queryObserver', () => { enabled: () => false, }) const unsubscribe = observer.subscribe(() => undefined) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(0) }) @@ -637,7 +635,7 @@ describe('queryObserver', () => { .fn<(...args: Array) => string>() .mockReturnValue('data') new QueryObserver(queryClient, { queryKey: key, queryFn }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) }) @@ -653,6 +651,7 @@ describe('queryObserver', () => { }) const unsubscribe = observer.subscribe(callback) await queryClient.fetchQuery({ queryKey: key, queryFn }) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(1) expect(callback).toHaveBeenCalledTimes(2) @@ -673,7 +672,7 @@ describe('queryObserver', () => { }) observer.setOptions({ queryKey: key, enabled: false, staleTime: 10 }) await queryClient.fetchQuery({ queryKey: key, queryFn }) - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(queryFn).toHaveBeenCalledTimes(1) expect(results.length).toBe(2) @@ -699,7 +698,7 @@ describe('queryObserver', () => { results2.push(x) }) await queryClient.fetchQuery({ queryKey: key, queryFn }) - await vi.advanceTimersByTimeAsync(50) + await vi.advanceTimersByTimeAsync(0) unsubscribe1() unsubscribe2() expect(queryFn).toHaveBeenCalledTimes(1) @@ -724,9 +723,9 @@ describe('queryObserver', () => { retryDelay: 50, }) const unsubscribe = observer.subscribe(() => undefined) - await vi.advanceTimersByTimeAsync(70) + await vi.advanceTimersByTimeAsync(50) unsubscribe() - await vi.advanceTimersByTimeAsync(200) + await vi.advanceTimersByTimeAsync(50) expect(count).toBe(2) }) @@ -746,7 +745,7 @@ describe('queryObserver', () => { }) const unsubscribe = observer.subscribe(() => undefined) expect(count).toBe(1) - await vi.advanceTimersByTimeAsync(15) + await vi.advanceTimersByTimeAsync(10) expect(count).toBe(2) unsubscribe() await vi.advanceTimersByTimeAsync(10) @@ -773,7 +772,7 @@ describe('queryObserver', () => { results.push(x) }) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(results.length).toBe(2) @@ -881,7 +880,7 @@ describe('queryObserver', () => { const unsubscribe = observer.subscribe(() => undefined) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(0) expect(observer.getCurrentResult().data).toBe(data) observer.setOptions({ @@ -958,7 +957,7 @@ describe('queryObserver', () => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) observer.setOptions({ queryKey: key2, @@ -970,7 +969,7 @@ describe('queryObserver', () => { select: (data) => data.value, }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(results.length).toBe(4) expect(keys.length).toBe(3) @@ -1025,7 +1024,7 @@ describe('queryObserver', () => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) observer.setOptions({ queryKey: key2, @@ -1037,7 +1036,7 @@ describe('queryObserver', () => { }, }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(results.length).toBe(4) @@ -1088,7 +1087,7 @@ describe('queryObserver', () => { results.push(result) }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) observer.setOptions({ queryKey: key2, @@ -1097,7 +1096,7 @@ describe('queryObserver', () => { select: stableSelect, }) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) unsubscribe() expect(results.length).toBe(4) @@ -1234,7 +1233,7 @@ describe('queryObserver', () => { results.push(observer.getCurrentResult()) }) - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(8) expect(results.at(-1)?.data).toBe('data') const numberOfUniquePromises = new Set( @@ -1266,7 +1265,7 @@ describe('queryObserver', () => { results.push(observer.getCurrentResult()) }) - await vi.advanceTimersByTimeAsync(5) + await vi.advanceTimersByTimeAsync(4) expect(results.at(-1)?.status).toBe('error') expect( @@ -1277,7 +1276,7 @@ describe('queryObserver', () => { // fail again const lengthBefore = results.length observer.refetch() - await vi.advanceTimersByTimeAsync(5) + await vi.advanceTimersByTimeAsync(4) expect(results.length).toBeGreaterThan(lengthBefore) expect(results.at(-1)?.status).toBe('error') @@ -1292,7 +1291,7 @@ describe('queryObserver', () => { succeeds = true observer.refetch() - await vi.advanceTimersByTimeAsync(5) + await vi.advanceTimersByTimeAsync(0) results.at(-1)?.status === 'success' const numberOfUniquePromises = new Set( @@ -1389,7 +1388,7 @@ describe('queryObserver', () => { refetchOnMount: 'always', }) const unsubscribe = observer.subscribe(() => undefined) - await vi.advanceTimersByTimeAsync(1) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) unsubscribe() }) From b67caee13ba1de61032a8ac2779fcfbfa2d574bd Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 15 Jul 2025 21:21:36 +0900 Subject: [PATCH 276/432] test(angular-query-experimental/inject-mutation): use precise time in 'advanceTimersByTimeAsync' (#9434) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/inject-mutation.test.ts | 68 +++++++++---------- 1 file changed, 32 insertions(+), 36 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 3ea18743d7..1909682d01 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -12,10 +12,6 @@ import { sleep } from '@tanstack/query-test-utils' import { QueryClient, injectMutation, provideTanStackQuery } from '..' import { expectSignals, setFixtureSignalInputs } from './test-utils' -const MUTATION_DURATION = 1000 - -const resolveMutations = () => vi.advanceTimersByTimeAsync(MUTATION_DURATION) - describe('injectMutation', () => { let queryClient: QueryClient @@ -49,19 +45,19 @@ describe('injectMutation', () => { }) }) - test('should change state after invoking mutate', () => { + test('should change state after invoking mutate', async () => { const result = 'Mock data' const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), })) }) TestBed.tick() mutation.mutate(result) - vi.advanceTimersByTime(1) + await vi.advanceTimersByTimeAsync(0) expectSignals(mutation, { isIdle: false, @@ -77,13 +73,13 @@ describe('injectMutation', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), })) }) mutation.mutate() - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expectSignals(mutation, { isIdle: false, @@ -99,13 +95,13 @@ describe('injectMutation', () => { const result = 'Mock data' const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), })) }) mutation.mutate(result) - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expectSignals(mutation, { isIdle: false, @@ -142,19 +138,19 @@ describe('injectMutation', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), })) }) mutation.mutate() - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(mutation.isError()).toBe(true) mutation.reset() - await resolveMutations() + await vi.advanceTimersByTimeAsync(0) expectSignals(mutation, { isIdle: true, @@ -175,14 +171,14 @@ describe('injectMutation', () => { const onMutate = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onMutate, })) }) mutation.mutate('') - await resolveMutations() + await vi.advanceTimersByTimeAsync(0) expect(onMutate).toHaveBeenCalledTimes(1) }) @@ -192,14 +188,14 @@ describe('injectMutation', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationFn: (_params: string) => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), onError, })) }) mutation.mutate('') - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(onError).toHaveBeenCalledTimes(1) }) @@ -208,14 +204,14 @@ describe('injectMutation', () => { const onSuccess = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onSuccess, })) }) mutation.mutate('') - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(onSuccess).toHaveBeenCalledTimes(1) }) @@ -224,14 +220,14 @@ describe('injectMutation', () => { const onSettled = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onSettled, })) }) mutation.mutate('') - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(onSettled).toHaveBeenCalledTimes(1) }) @@ -241,13 +237,13 @@ describe('injectMutation', () => { const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ mutationFn: (_params: string) => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), })) }) mutation.mutate('', { onError }) - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(onError).toHaveBeenCalledTimes(1) }) @@ -256,13 +252,13 @@ describe('injectMutation', () => { const onSuccess = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), })) }) mutation.mutate('', { onSuccess }) - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(onSuccess).toHaveBeenCalledTimes(1) }) @@ -271,13 +267,13 @@ describe('injectMutation', () => { const onSettled = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), })) }) mutation.mutate('', { onSettled }) - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(onSettled).toHaveBeenCalledTimes(1) }) @@ -287,14 +283,14 @@ describe('injectMutation', () => { const onSettledOnFunction = vi.fn() const mutation = TestBed.runInInjectionContext(() => { return injectMutation(() => ({ - mutationFn: (params: string) => sleep(0).then(() => params), + mutationFn: (params: string) => sleep(10).then(() => params), onSettled, })) }) mutation.mutate('', { onSettled: onSettledOnFunction }) - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) expect(onSettled).toHaveBeenCalledTimes(1) expect(onSettledOnFunction).toHaveBeenCalledTimes(1) @@ -317,7 +313,7 @@ describe('injectMutation', () => { mutation = injectMutation(() => ({ mutationKey: ['fake', this.name()], - mutationFn: () => sleep(0).then(() => this.name()), + mutationFn: () => sleep(10).then(() => this.name()), })) mutate(): void { @@ -332,7 +328,7 @@ describe('injectMutation', () => { const button = debugElement.query(By.css('button')) button.triggerEventHandler('click') - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) fixture.detectChanges() const text = debugElement.query(By.css('span')).nativeElement.textContent @@ -358,7 +354,7 @@ describe('injectMutation', () => { mutation = injectMutation(() => ({ mutationKey: ['fake', this.name()], - mutationFn: () => sleep(0).then(() => this.name()), + mutationFn: () => sleep(10).then(() => this.name()), })) mutate(): void { @@ -374,7 +370,7 @@ describe('injectMutation', () => { const span = debugElement.query(By.css('span')) button.triggerEventHandler('click') - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) fixture.detectChanges() expect(span.nativeElement.textContent).toEqual('value') @@ -382,7 +378,7 @@ describe('injectMutation', () => { setFixtureSignalInputs(fixture, { name: 'updatedValue' }) button.triggerEventHandler('click') - await resolveMutations() + await vi.advanceTimersByTimeAsync(11) fixture.detectChanges() expect(span.nativeElement.textContent).toEqual('updatedValue') @@ -412,7 +408,7 @@ describe('injectMutation', () => { mutate() - await resolveMutations() + await vi.advanceTimersByTimeAsync(0) expect(boundaryFn).toHaveBeenCalledTimes(1) expect(boundaryFn).toHaveBeenCalledWith(err) From b4a847e34ce855054dac7d10373145c517115126 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 15 Jul 2025 21:26:11 +0900 Subject: [PATCH 277/432] test(angular-query-experimental/inject-query): use precise time in 'advanceTimersByTimeAsync' (#9435) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/inject-query.test.ts | 52 ++++++++----------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 44964b7927..a0ed6229d6 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -22,10 +22,6 @@ import { QueryCache, QueryClient, injectQuery, provideTanStackQuery } from '..' import { setSignalInputs } from './test-utils' import type { CreateQueryOptions, OmitKeyof, QueryFunction } from '..' -const QUERY_DURATION = 100 - -const resolveQueries = () => vi.advanceTimersByTimeAsync(QUERY_DURATION) - describe('injectQuery', () => { let queryCache: QueryCache let queryClient: QueryClient @@ -265,7 +261,7 @@ describe('injectQuery', () => { const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['key1'], - queryFn: () => sleep(0).then(() => 'Some data'), + queryFn: () => sleep(10).then(() => 'Some data'), })) }) @@ -280,12 +276,11 @@ describe('injectQuery', () => { const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['key2'], - queryFn: () => sleep(0).then(() => 'result2'), + queryFn: () => sleep(10).then(() => 'result2'), })) }) - await resolveQueries() - + await vi.advanceTimersByTimeAsync(11) expect(query.status()).toBe('success') expect(query.data()).toBe('result2') expect(query.isPending()).toBe(false) @@ -300,12 +295,11 @@ describe('injectQuery', () => { retry: false, queryKey: ['key3'], queryFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), })) }) - await resolveQueries() - + await vi.advanceTimersByTimeAsync(11) expect(query.status()).toBe('error') expect(query.data()).toBe(undefined) expect(query.error()).toMatchObject({ message: 'Some error' }) @@ -318,7 +312,7 @@ describe('injectQuery', () => { test('should update query on options contained signal change', async () => { const key = signal(['key6', 'key7']) - const spy = vi.fn(() => sleep(0).then(() => 'Some data')) + const spy = vi.fn(() => sleep(10).then(() => 'Some data')) const query = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ @@ -327,10 +321,10 @@ describe('injectQuery', () => { })) }) - await resolveQueries() - + await vi.advanceTimersByTimeAsync(0) expect(spy).toHaveBeenCalledTimes(1) + await vi.advanceTimersByTimeAsync(11) expect(query.status()).toBe('success') key.set(['key8']) @@ -347,7 +341,7 @@ describe('injectQuery', () => { }) test('should only run query once enabled signal is set to true', async () => { - const spy = vi.fn(() => sleep(0).then(() => 'Some data')) + const spy = vi.fn(() => sleep(10).then(() => 'Some data')) const enabled = signal(false) const query = TestBed.runInInjectionContext(() => { @@ -362,7 +356,8 @@ describe('injectQuery', () => { expect(query.status()).toBe('pending') enabled.set(true) - await resolveQueries() + + await vi.advanceTimersByTimeAsync(11) expect(spy).toHaveBeenCalledTimes(1) expect(query.status()).toBe('success') }) @@ -371,7 +366,7 @@ describe('injectQuery', () => { const query1 = TestBed.runInInjectionContext(() => { return injectQuery(() => ({ queryKey: ['dependant1'], - queryFn: () => sleep(0).then(() => 'Some data'), + queryFn: () => sleep(10).then(() => 'Some data'), })) }) @@ -393,12 +388,12 @@ describe('injectQuery', () => { expect(query2.fetchStatus()).toStrictEqual('idle') expect(dependentQueryFn).not.toHaveBeenCalled() - await resolveQueries() + await vi.advanceTimersByTimeAsync(11) expect(query1.data()).toStrictEqual('Some data') expect(query2.fetchStatus()).toStrictEqual('fetching') - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(1002) expect(query2.fetchStatus()).toStrictEqual('idle') expect(query2.status()).toStrictEqual('success') @@ -409,7 +404,7 @@ describe('injectQuery', () => { }) test('should use the current value for the queryKey when refetch is called', async () => { - const fetchFn = vi.fn(() => sleep(0).then(() => 'Some data')) + const fetchFn = vi.fn(() => sleep(10).then(() => 'Some data')) const keySignal = signal('key11') const query = TestBed.runInInjectionContext(() => { @@ -431,10 +426,9 @@ describe('injectQuery', () => { ) }) - await resolveQueries() + await vi.advanceTimersByTimeAsync(11) keySignal.set('key12') - TestBed.tick() query.refetch().then(() => { @@ -446,7 +440,7 @@ describe('injectQuery', () => { ) }) - await resolveQueries() + await vi.advanceTimersByTimeAsync(11) }) describe('throwOnError', () => { @@ -456,13 +450,13 @@ describe('injectQuery', () => { return injectQuery(() => ({ queryKey: ['key12'], queryFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), + retry: false, throwOnError: boundaryFn, })) }) - await vi.runAllTimersAsync() - + await vi.advanceTimersByTimeAsync(11) expect(boundaryFn).toHaveBeenCalledTimes(1) expect(boundaryFn).toHaveBeenCalledWith( Error('Some error'), @@ -505,13 +499,13 @@ describe('injectQuery', () => { retry: false, queryKey: ['key15'], queryFn: () => - sleep(0).then(() => Promise.reject(new Error('Some error'))), + sleep(10).then(() => Promise.reject(new Error('Some error'))), })) }) expect(query.status()).toBe('pending') - await resolveQueries() + await vi.advanceTimersByTimeAsync(11) expect(query.status()).toBe('error') }) @@ -537,7 +531,7 @@ describe('injectQuery', () => { }) fixture.detectChanges() - await resolveQueries() + await vi.advanceTimersByTimeAsync(0) expect(fixture.componentInstance.query.data()).toEqual( 'signal-input-required-test', From 4d8bbbfc2c53b676a3503d057872cb34d42772a8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 15 Jul 2025 21:29:38 +0900 Subject: [PATCH 278/432] test(query-core/queryCache): remove redundant 'advanceTimersByTimeAsync' (#9433) Co-authored-by: Jonghyeon Ko --- packages/query-core/src/__tests__/queryCache.test.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/query-core/src/__tests__/queryCache.test.tsx b/packages/query-core/src/__tests__/queryCache.test.tsx index 568326fb76..6edb5598f7 100644 --- a/packages/query-core/src/__tests__/queryCache.test.tsx +++ b/packages/query-core/src/__tests__/queryCache.test.tsx @@ -18,13 +18,12 @@ describe('queryCache', () => { }) describe('subscribe', () => { - test('should pass the correct query', async () => { + test('should pass the correct query', () => { const key = queryKey() const subscriber = vi.fn() const unsubscribe = queryCache.subscribe(subscriber) queryClient.setQueryData(key, 'foo') const query = queryCache.find({ queryKey: key }) - await vi.advanceTimersByTimeAsync(0) expect(subscriber).toHaveBeenCalledWith({ query, type: 'added' }) unsubscribe() }) @@ -88,8 +87,8 @@ describe('queryCache', () => { queryKey: key, queryFn: () => sleep(100).then(() => 'data'), }) - const query = queryCache.find({ queryKey: key }) await vi.advanceTimersByTimeAsync(100) + const query = queryCache.find({ queryKey: key }) expect(callback).toHaveBeenCalledWith({ query, type: 'added' }) }) @@ -130,13 +129,11 @@ describe('queryCache', () => { queryKey: ['key1'], queryFn: () => sleep(100).then(() => 'data1'), }) - await vi.advanceTimersByTimeAsync(100) expect(testCache.findAll().length).toBe(1) testClient.prefetchQuery({ queryKey: ['key2'], queryFn: () => sleep(100).then(() => 'data2'), }) - await vi.advanceTimersByTimeAsync(100) expect(testCache.findAll().length).toBe(2) testClient.prefetchQuery({ queryKey: ['key3'], @@ -183,17 +180,14 @@ describe('queryCache', () => { queryKey: key1, queryFn: () => sleep(100).then(() => 'data1'), }) - await vi.advanceTimersByTimeAsync(100) queryClient.prefetchQuery({ queryKey: key2, queryFn: () => sleep(100).then(() => 'data2'), }) - await vi.advanceTimersByTimeAsync(100) queryClient.prefetchQuery({ queryKey: [{ a: 'a', b: 'b' }], queryFn: () => sleep(100).then(() => 'data3'), }) - await vi.advanceTimersByTimeAsync(100) queryClient.prefetchQuery({ queryKey: ['posts', 1], queryFn: () => sleep(100).then(() => 'data4'), From 4daf6949aece02187ef2b8a30cb8f5a53e2162fd Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 17 Jul 2025 10:45:57 +0900 Subject: [PATCH 279/432] test(react-query/suspense): change 'queryFn' to return a 'Promise', replace 'advanceTimersByTime' with 'advanceTimersByTimeAsync', and add 'expect' (#9444) --- .../src/__tests__/suspense.test.tsx | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index 2ea7e61f2e..8123fff1a1 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -23,7 +23,7 @@ function createTestQuery(options: { queryKey: options.queryKey, queryFn: () => { options.fetchCount.count++ - return 'data' + return Promise.resolve('data') }, staleTime: options.staleTime, }) @@ -60,8 +60,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTime(0)) - rendered.getByText('data: data') + await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -71,7 +71,7 @@ describe('Suspense Timer Tests', () => { , ) - await act(() => vi.advanceTimersByTime(100)) + await act(() => vi.advanceTimersByTimeAsync(100)) expect(fetchCount.count).toBe(1) }) @@ -85,8 +85,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTime(0)) - rendered.getByText('data: data') + await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -96,7 +96,7 @@ describe('Suspense Timer Tests', () => { , ) - await act(() => vi.advanceTimersByTime(100)) + await act(() => vi.advanceTimersByTimeAsync(100)) expect(fetchCount.count).toBe(1) }) @@ -110,8 +110,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTime(0)) - rendered.getByText('data: data') + await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -121,7 +121,7 @@ describe('Suspense Timer Tests', () => { , ) - await act(() => vi.advanceTimersByTime(1500)) + await act(() => vi.advanceTimersByTimeAsync(1500)) expect(fetchCount.count).toBe(1) }) @@ -135,8 +135,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTime(0)) - rendered.getByText('data: data') + await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -146,7 +146,7 @@ describe('Suspense Timer Tests', () => { , ) - await act(() => vi.advanceTimersByTime(500)) + await act(() => vi.advanceTimersByTimeAsync(500)) expect(fetchCount.count).toBe(1) }) @@ -160,8 +160,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTime(0)) - rendered.getByText('data: data') + await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -171,7 +171,7 @@ describe('Suspense Timer Tests', () => { , ) - await act(() => vi.advanceTimersByTime(2000)) + await act(() => vi.advanceTimersByTimeAsync(2000)) expect(fetchCount.count).toBe(1) }) From bfcff0b51c79b416c0318403e463e0aa4045c55f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 17 Jul 2025 10:49:44 +0900 Subject: [PATCH 280/432] test(react-query/ssr): replace 'advanceTimersByTimeAsync' with 'sleep' in 'queryFn', remove 'await' from 'fetchQuery' and related methods (#9443) Co-authored-by: Jonghyeon Ko --- .../react-query/src/__tests__/ssr.test.tsx | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/react-query/src/__tests__/ssr.test.tsx b/packages/react-query/src/__tests__/ssr.test.tsx index b7523b3646..13b3ed6b9c 100644 --- a/packages/react-query/src/__tests__/ssr.test.tsx +++ b/packages/react-query/src/__tests__/ssr.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react' import { renderToString } from 'react-dom/server' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { queryKey } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryCache, QueryClient, @@ -56,11 +56,18 @@ describe('Server Side Rendering', () => { it('should add prefetched data to cache', async () => { const key = queryKey() - const fetchFn = () => Promise.resolve('data') - const data = await queryClient.fetchQuery({ + + const promise = queryClient.fetchQuery({ queryKey: key, - queryFn: fetchFn, + queryFn: async () => { + await sleep(10) + return 'data' + }, }) + await vi.advanceTimersByTimeAsync(10) + + const data = await promise + expect(data).toBe('data') expect(queryCache.find({ queryKey: key })?.state.data).toBe('data') queryCache.clear() @@ -69,7 +76,7 @@ describe('Server Side Rendering', () => { it('should return existing data from the cache', async () => { const key = queryKey() const queryFn = vi.fn(async () => { - await vi.advanceTimersByTimeAsync(10) + await sleep(10) return 'data' }) @@ -85,7 +92,8 @@ describe('Server Side Rendering', () => { ) } - await queryClient.prefetchQuery({ queryKey: key, queryFn }) + queryClient.prefetchQuery({ queryKey: key, queryFn }) + await vi.advanceTimersByTimeAsync(10) const markup = renderToString( @@ -132,7 +140,7 @@ describe('Server Side Rendering', () => { it('useInfiniteQuery should return the correct state', async () => { const key = queryKey() const queryFn = vi.fn(async () => { - await vi.advanceTimersByTimeAsync(5) + await sleep(5) return 'page 1' }) @@ -148,11 +156,12 @@ describe('Server Side Rendering', () => { ) } - await queryClient.prefetchInfiniteQuery({ + queryClient.prefetchInfiniteQuery({ queryKey: key, queryFn, initialPageParam: 0, }) + await vi.advanceTimersByTimeAsync(5) const markup = renderToString( From 958b0f0387c57d10e8ebd4d618e07f7c21c31f09 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 17 Jul 2025 10:53:53 +0900 Subject: [PATCH 281/432] test(react-query/QueryClientProvider): add 'expect' using 'toBeInTheDocument' (#9442) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/QueryClientProvider.test.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx index 3e2bfff2b1..be942a320c 100644 --- a/packages/react-query/src/__tests__/QueryClientProvider.test.tsx +++ b/packages/react-query/src/__tests__/QueryClientProvider.test.tsx @@ -44,7 +44,7 @@ describe('QueryClientProvider', () => { ) await vi.advanceTimersByTimeAsync(11) - rendered.getByText('test') + expect(rendered.getByText('test')).toBeInTheDocument() expect(queryCache.find({ queryKey: key })).toBeDefined() }) @@ -96,8 +96,8 @@ describe('QueryClientProvider', () => { ) await vi.advanceTimersByTimeAsync(11) - rendered.getByText('test1') - rendered.getByText('test2') + expect(rendered.getByText('test1')).toBeInTheDocument() + expect(rendered.getByText('test2')).toBeInTheDocument() expect(queryCache1.find({ queryKey: key1 })).toBeDefined() expect(queryCache1.find({ queryKey: key2 })).not.toBeDefined() @@ -138,7 +138,7 @@ describe('QueryClientProvider', () => { ) await vi.advanceTimersByTimeAsync(11) - rendered.getByText('test') + expect(rendered.getByText('test')).toBeInTheDocument() expect(queryCache.find({ queryKey: key })).toBeDefined() expect(queryCache.find({ queryKey: key })?.options.gcTime).toBe(Infinity) From 7c583928776f63ac424a7cebb7fc5431b5819dd0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 17 Jul 2025 10:58:21 +0900 Subject: [PATCH 282/432] test(react-query/fine-grained-persister): use precise time in 'advanceTimersByTimeAsync', and add 'expect' using 'toBeInTheDocument' (#9441) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/fine-grained-persister.test.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx index 72862200dd..e2b76a4c42 100644 --- a/packages/react-query/src/__tests__/fine-grained-persister.test.tsx +++ b/packages/react-query/src/__tests__/fine-grained-persister.test.tsx @@ -69,7 +69,7 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) await vi.advanceTimersByTimeAsync(0) - rendered.getByText('Works from persister') + expect(rendered.getByText('Works from persister')).toBeInTheDocument() expect(spy).not.toHaveBeenCalled() }) @@ -124,10 +124,10 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(5) - rendered.getByText('Works from persister') - await vi.advanceTimersByTimeAsync(1) - rendered.getByText('Works from queryFn') + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Works from persister')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(6) + expect(rendered.getByText('Works from queryFn')).toBeInTheDocument() expect(spy).toHaveBeenCalledTimes(1) }) @@ -166,7 +166,7 @@ describe('fine grained persister', () => { const rendered = renderWithClient(queryClient, ) await vi.advanceTimersByTimeAsync(0) - rendered.getByText('Works from queryFn') + expect(rendered.getByText('Works from queryFn')).toBeInTheDocument() expect(spy).toHaveBeenCalledTimes(1) const storedItem = await storage.getItem(`${PERSISTER_KEY_PREFIX}-${hash}`) From 2d71a22c197c2db6284eea2ab919e667520ba8bd Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 17 Jul 2025 11:03:14 +0900 Subject: [PATCH 283/432] test(angular-query-experimental/inject-mutation-state): replace 'runAllTimersAsync', 'advanceTimersByTime' with 'advanceTimersByTimeAsync' (#9438) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/inject-mutation-state.test.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index bf3c37f39b..17469718a9 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -126,11 +126,12 @@ describe('injectMutationState', () => { return [ injectMutation(() => ({ mutationKey: mutationKey1, - mutationFn: () => Promise.resolve('myValue'), + mutationFn: () => sleep(10).then(() => 'myValue'), })), injectMutation(() => ({ mutationKey: mutationKey1, - mutationFn: () => Promise.reject('myValue2'), + mutationFn: () => + sleep(10).then(() => Promise.reject(new Error('myValue2'))), })), ] }) @@ -160,7 +161,7 @@ describe('injectMutationState', () => { const fixture = TestBed.createComponent(FakeComponent) const { debugElement } = fixture setFixtureSignalInputs(fixture, { name: fakeName }) - vi.advanceTimersByTime(0.1) + await vi.advanceTimersByTimeAsync(0) let spans = debugElement .queryAll(By.css('span')) @@ -168,7 +169,7 @@ describe('injectMutationState', () => { expect(spans).toEqual(['pending', 'pending']) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(11) fixture.detectChanges() spans = debugElement From bf77ab7e4878a4230b4d7632bea53cbd2e7dd162 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Thu, 17 Jul 2025 11:21:52 +0900 Subject: [PATCH 284/432] test(angular-query-experimental/providers): replace 'runAllTimersAsync' with 'advanceTimersByTimeAsync' (#9436) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/providers.test.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/angular-query-experimental/src/__tests__/providers.test.ts b/packages/angular-query-experimental/src/__tests__/providers.test.ts index 929cf1ea34..3a41f03fc2 100644 --- a/packages/angular-query-experimental/src/__tests__/providers.test.ts +++ b/packages/angular-query-experimental/src/__tests__/providers.test.ts @@ -126,7 +126,7 @@ describe('withDevtools feature', () => { }) TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) if (expectedCalled) { expect(mockTanstackQueryDevtools).toHaveBeenCalled() @@ -153,7 +153,7 @@ describe('withDevtools feature', () => { }) TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) TestBed.tick() @@ -188,7 +188,7 @@ describe('withDevtools feature', () => { }) TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) TestBed.tick() @@ -218,7 +218,7 @@ describe('withDevtools feature', () => { }) TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) TestBed.tick() @@ -248,7 +248,7 @@ describe('withDevtools feature', () => { }) TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) TestBed.tick() @@ -278,7 +278,7 @@ describe('withDevtools feature', () => { }) TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) TestBed.tick() @@ -307,7 +307,7 @@ describe('withDevtools feature', () => { }) TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) expect(mockDevtoolsInstance.mount).toHaveBeenCalledTimes(1) expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(0) From 3bcaa417ac302a93d17c4287d518121bb77d1b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B0=A8=EC=8A=B9=ED=95=98?= <75566149+ss0526100@users.noreply.github.com> Date: Fri, 18 Jul 2025 22:04:15 +0900 Subject: [PATCH 285/432] docs: add text regarding local environment recommendations for symlinks (#9451) --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 403242f96c..cb7ff182cc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,8 @@ If you are here to suggest a feature, first create an issue if it does not alrea ## Development +_TanStack/query uses **symlink-based** configuration files. For smooth development in a local environment, we recommend developing in an environment that supports symlinks(ex: Linux, macOS, Windows Subsystem for Linux / WSL)._ + If you have been assigned to fix an issue or develop a new feature, please follow these steps to get started: - Fork this repository. From 9133c101c8e83f3bbc517a07fa4d671392bb2de6 Mon Sep 17 00:00:00 2001 From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> Date: Sat, 19 Jul 2025 11:23:28 +1000 Subject: [PATCH 286/432] chore: manually update dependencies (#9464) * chore: update packages * Fix typescript-eslint type mismatch * Pin vitest * Update prettier --- .../react/guides/important-defaults.md | 1 - docs/framework/react/quick-start.md | 6 +- .../reference/usePrefetchInfiniteQuery.md | 4 - .../react/reference/usePrefetchQuery.md | 1 - docs/framework/solid/reference/useQuery.md | 1 - examples/solid/astro/package.json | 2 +- .../solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- .../solid/default-query-function/package.json | 2 +- examples/solid/simple/package.json | 2 +- .../solid/solid-start-streaming/package.json | 2 +- examples/svelte/auto-refetching/package.json | 10 +- examples/svelte/basic/package.json | 10 +- .../load-more-infinite-scroll/package.json | 10 +- .../svelte/optimistic-updates/package.json | 10 +- examples/svelte/playground/package.json | 10 +- examples/svelte/simple/package.json | 6 +- examples/svelte/ssr/package.json | 10 +- examples/svelte/star-wars/package.json | 14 +- integrations/solid-vite/package.json | 2 +- integrations/svelte-vite/package.json | 4 +- package.json | 16 +- packages/eslint-plugin-query/package.json | 6 +- .../query-core/src/__tests__/query.test.tsx | 4 +- packages/query-devtools/package.json | 4 +- .../react-query/src/__tests__/ssr.test.tsx | 6 +- packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 10 +- .../svelte-query-persist-client/package.json | 12 +- packages/svelte-query/package.json | 12 +- pnpm-lock.yaml | 5507 +++++------------ 33 files changed, 1667 insertions(+), 4027 deletions(-) diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md index 034944197a..ef5a3d366e 100644 --- a/docs/framework/react/guides/important-defaults.md +++ b/docs/framework/react/guides/important-defaults.md @@ -10,7 +10,6 @@ Out of the box, TanStack Query is configured with **aggressive but sane** defaul > To change this behavior, you can configure your queries both globally and per-query using the `staleTime` option. Specifying a longer `staleTime` means queries will not refetch their data as often - A Query that has a `staleTime` set is considered **fresh** until that `staleTime` has elapsed. - - set `staleTime` to e.g. `2 * 60 * 1000` to make sure data is read from the cache, without triggering any kinds of refetches, for 2 minutes, or until the Query is [invalidated manually](../query-invalidation.md). - set `staleTime` to `Infinity` to never trigger a refetch until the Query is [invalidated manually](../query-invalidation.md). - set `staleTime` to `'static'` to **never** trigger a refetch, even if the Query is [invalidated manually](../query-invalidation.md). diff --git a/docs/framework/react/quick-start.md b/docs/framework/react/quick-start.md index 4fdc72b820..645d092e68 100644 --- a/docs/framework/react/quick-start.md +++ b/docs/framework/react/quick-start.md @@ -53,7 +53,11 @@ function Todos() { return (
-
    {query.data?.map((todo) =>
  • {todo.title}
  • )}
+
    + {query.data?.map((todo) => ( +
  • {todo.title}
  • + ))} +
@@ -114,6 +112,7 @@ describe('useSuspenseQuery', () => { , ) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: 1')).toBeInTheDocument() @@ -124,6 +123,7 @@ describe('useSuspenseQuery', () => { }) fireEvent.click(rendered.getByText('next')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: 2')).toBeInTheDocument() @@ -137,11 +137,7 @@ describe('useSuspenseQuery', () => { it('should not call the queryFn twice when used in Suspense mode', async () => { const key = queryKey() - const queryFn = vi.fn<(...args: Array) => string>() - queryFn.mockImplementation(() => { - sleep(10) - return 'data' - }) + const queryFn = vi.fn(() => sleep(10).then(() => 'data')) function Page() { useSuspenseQuery({ queryKey: [key], queryFn }) @@ -156,6 +152,7 @@ describe('useSuspenseQuery', () => { , ) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered')).toBeInTheDocument() @@ -168,10 +165,7 @@ describe('useSuspenseQuery', () => { function Page() { useSuspenseQuery({ queryKey: key, - queryFn: () => { - sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) return <>rendered @@ -193,18 +187,21 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - expect(rendered.queryByText('rendered')).toBeNull() + expect(rendered.queryByText('loading')).not.toBeInTheDocument() + expect(rendered.queryByText('rendered')).not.toBeInTheDocument() expect(queryCache.find({ queryKey: key })).toBeFalsy() fireEvent.click(rendered.getByLabelText('toggle')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered')).toBeInTheDocument() expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(1) fireEvent.click(rendered.getByLabelText('toggle')) + expect(rendered.queryByText('loading')).not.toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) - expect(rendered.queryByText('rendered')).toBeNull() + expect(rendered.queryByText('rendered')).not.toBeInTheDocument() expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(0) }) @@ -220,15 +217,11 @@ describe('useSuspenseQuery', () => { function Page() { useSuspenseQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retryDelay: 10, }) @@ -255,7 +248,7 @@ describe('useSuspenseQuery', () => {
)} > - + @@ -263,11 +256,13 @@ describe('useSuspenseQuery', () => { , ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(70)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered')).toBeInTheDocument() @@ -289,14 +284,11 @@ describe('useSuspenseQuery', () => { function Page() { useSuspenseQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retry: false, }) return
rendered
@@ -321,7 +313,7 @@ describe('useSuspenseQuery', () => {
)} > - + @@ -329,18 +321,24 @@ describe('useSuspenseQuery', () => { , ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -351,11 +349,7 @@ describe('useSuspenseQuery', () => { function Component() { const result = useSuspenseQuery({ queryKey: key, - queryFn: async () => { - await sleep(5) - count++ - return count - }, + queryFn: () => sleep(10).then(() => ++count), staleTime: () => 60 * 1000, }) return ( @@ -367,7 +361,7 @@ describe('useSuspenseQuery', () => { function Page() { return ( - + ) @@ -375,8 +369,8 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() - await act(() => vi.advanceTimersByTimeAsync(5)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: 1')).toBeInTheDocument() expect( @@ -392,11 +386,7 @@ describe('useSuspenseQuery', () => { function Component(props: { queryKey: Array }) { const result = useSuspenseQuery({ queryKey: props.queryKey, - queryFn: async () => { - await sleep(100) - return props.queryKey - }, - + queryFn: () => sleep(10).then(() => props.queryKey), retry: false, }) return
data: {result.data}
@@ -413,7 +403,7 @@ describe('useSuspenseQuery', () => { > switch - +
@@ -422,12 +412,13 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() - await act(() => vi.advanceTimersByTimeAsync(100)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument() + fireEvent.click(rendered.getByText('switch')) - expect(rendered.getByText('Loading...')).toBeInTheDocument() - await act(() => vi.advanceTimersByTimeAsync(100)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument() }) @@ -442,14 +433,11 @@ describe('useSuspenseQuery', () => { function Page() { useSuspenseQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retry: false, }) return
rendered
@@ -473,7 +461,7 @@ describe('useSuspenseQuery', () => {
)} > - + @@ -482,18 +470,24 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -506,10 +500,8 @@ describe('useSuspenseQuery', () => { function Page() { useSuspenseQuery({ queryKey: key, - queryFn: async (): Promise => { - await sleep(10) - throw new Error('Suspense Error a1x') - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Suspense Error a1x'))), retry: false, }) return
rendered
@@ -524,7 +516,7 @@ describe('useSuspenseQuery', () => {
)} > - + @@ -533,9 +525,10 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -548,10 +541,7 @@ describe('useSuspenseQuery', () => { function Page() { useSuspenseQuery({ queryKey: key, - queryFn: () => { - const data = { a: { b: 'c' } } - return Promise.resolve(data) - }, + queryFn: () => sleep(10).then(() => ({ a: { b: 'c' } })), select: () => { throw new Error('foo') }, @@ -568,7 +558,7 @@ describe('useSuspenseQuery', () => {
)} > - + @@ -577,9 +567,10 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() - await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -596,25 +587,17 @@ describe('useSuspenseQuery', () => { const queryKeys = [`${key}-${succeed}`] const result = useSuspenseQuery({ queryKey: queryKeys, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return nonce - } - }, + }), retry: false, }) return (
rendered {result.data} -
@@ -628,7 +611,7 @@ describe('useSuspenseQuery', () => { onReset={reset} fallbackRender={() =>
error boundary
} > - + @@ -637,19 +620,21 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - // render suspense fallback (Loading...) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + // render suspense fallback (loading) + expect(rendered.getByText('loading')).toBeInTheDocument() // resolve promise -> render Page (rendered) await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered')).toBeInTheDocument() // change query key succeed = false + // reset query -> and throw error fireEvent.click(rendered.getByLabelText('fail')) // render error boundary fallback (error boundary) await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) @@ -669,14 +654,11 @@ describe('useSuspenseQuery', () => { const result = useSuspenseQuery({ queryKey: queryKeys, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retry: false, }) @@ -701,7 +683,7 @@ describe('useSuspenseQuery', () => { onReset={reset} fallbackRender={() =>
error boundary
} > - + @@ -710,19 +692,22 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - // render suspense fallback (Loading...) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + // render suspense fallback (loading) + expect(rendered.getByText('loading')).toBeInTheDocument() // resolve promise -> render Page (rendered) await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered')).toBeInTheDocument() // change promise result to error succeed = false + // change query key fireEvent.click(rendered.getByLabelText('fail')) + expect(rendered.getByText('loading')).toBeInTheDocument() // render error boundary fallback (error boundary) await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) @@ -742,11 +727,7 @@ describe('useSuspenseQuery', () => { state = useSuspenseQuery({ queryKey: key, - queryFn: async () => { - count++ - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => ++count), gcTime: 0, }) @@ -765,12 +746,13 @@ describe('useSuspenseQuery', () => { ) await act(() => vi.advanceTimersByTimeAsync(10)) + expect(rendered.getByText('rendered')).toBeInTheDocument() + expect(state).toMatchObject({ data: 1, status: 'success', }) expect(renders).toBe(3) - expect(rendered.queryByText('rendered')).not.toBeNull() }) it('should not throw background errors to the error boundary', async () => { @@ -783,14 +765,11 @@ describe('useSuspenseQuery', () => { function Page() { const result = useSuspenseQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retry: false, }) @@ -811,7 +790,7 @@ describe('useSuspenseQuery', () => { onReset={reset} fallbackRender={() =>
error boundary
} > - + @@ -820,14 +799,15 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient(queryClient, ) - // render suspense fallback (Loading...) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + // render suspense fallback (loading) + expect(rendered.getByText('loading')).toBeInTheDocument() // resolve promise -> render Page (rendered) await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered data success')).toBeInTheDocument() // change promise result to error succeed = false + // refetch fireEvent.click(rendered.getByRole('button', { name: 'refetch' })) // we are now in error state but still have data to show @@ -855,11 +835,7 @@ describe('useSuspenseQuery', () => { const state = useSuspenseQuery({ queryKey: stateKey, - queryFn: async () => { - count++ - await sleep(100) - return count - }, + queryFn: async () => sleep(10).then(() => ++count), }) states.push(state) @@ -880,12 +856,12 @@ describe('useSuspenseQuery', () => { ) expect(rendered.getByText('loading')).toBeInTheDocument() - await act(() => vi.advanceTimersByTimeAsync(100)) + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: 1')).toBeInTheDocument() - fireEvent.click(rendered.getByLabelText('toggle')) + fireEvent.click(rendered.getByLabelText('toggle')) expect(rendered.getByText('loading')).toBeInTheDocument() - await act(() => vi.advanceTimersByTimeAsync(100)) + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: 2')).toBeInTheDocument() }) @@ -907,7 +883,7 @@ describe('useSuspenseQuery', () => { function App() { return ( - + ) @@ -920,6 +896,7 @@ describe('useSuspenseQuery', () => { ) consoleErrorSpy.mockRestore() }) + it('should properly refresh data when refetchInterval is set', async () => { const key = queryKey() let count = 0 @@ -927,11 +904,7 @@ describe('useSuspenseQuery', () => { function Page() { const state = useSuspenseQuery({ queryKey: key, - queryFn: async () => { - count++ - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => ++count), refetchInterval: 10, }) @@ -940,11 +913,12 @@ describe('useSuspenseQuery', () => { const rendered = renderWithClient( queryClient, - + , ) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('count: 1')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(21)) @@ -975,7 +949,7 @@ describe('useSuspenseQuery', () => { renderWithClient( queryClient, - + , ) @@ -1008,7 +982,7 @@ describe('useSuspenseQuery', () => { renderWithClient( queryClient, - + , ) From 72c2a4cdb1687147b1a79dc2eaf8dea9b2f07dbe Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 03:29:59 +0900 Subject: [PATCH 300/432] test(react-query/ssr): simplify 'queryFn' and add 'sleep' for accurate testing (#9471) Co-authored-by: Jonghyeon Ko --- .../react-query/src/__tests__/ssr.test.tsx | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/packages/react-query/src/__tests__/ssr.test.tsx b/packages/react-query/src/__tests__/ssr.test.tsx index 3a2fe9e429..0738b8d290 100644 --- a/packages/react-query/src/__tests__/ssr.test.tsx +++ b/packages/react-query/src/__tests__/ssr.test.tsx @@ -29,7 +29,7 @@ describe('Server Side Rendering', () => { it('should not trigger fetch', () => { const key = queryKey() - const queryFn = vi.fn().mockReturnValue('data') + const queryFn = vi.fn(() => sleep(10).then(() => 'data')) function Page() { const query = useQuery({ queryKey: key, queryFn }) @@ -51,6 +51,7 @@ describe('Server Side Rendering', () => { expect(markup).toContain('status pending') expect(queryFn).toHaveBeenCalledTimes(0) + queryCache.clear() }) @@ -59,10 +60,7 @@ describe('Server Side Rendering', () => { const promise = queryClient.fetchQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), }) await vi.advanceTimersByTimeAsync(10) @@ -70,15 +68,13 @@ describe('Server Side Rendering', () => { expect(data).toBe('data') expect(queryCache.find({ queryKey: key })?.state.data).toBe('data') + queryCache.clear() }) it('should return existing data from the cache', async () => { const key = queryKey() - const queryFn = vi.fn(async () => { - await sleep(10) - return 'data' - }) + const queryFn = vi.fn(() => sleep(10).then(() => 'data')) function Page() { const query = useQuery({ queryKey: key, queryFn }) @@ -103,6 +99,7 @@ describe('Server Side Rendering', () => { expect(markup).toContain('status success') expect(queryFn).toHaveBeenCalledTimes(1) + queryCache.clear() }) @@ -113,7 +110,7 @@ describe('Server Side Rendering', () => { const [page, setPage] = React.useState(1) const { data } = useQuery({ queryKey: [key, page], - queryFn: () => Promise.resolve(page), + queryFn: () => sleep(10).then(() => page), initialData: 1, }) @@ -134,15 +131,13 @@ describe('Server Side Rendering', () => { const keys = queryCache.getAll().map((query) => query.queryKey) expect(keys).toEqual([[key, 1]]) + queryCache.clear() }) it('useInfiniteQuery should return the correct state', async () => { const key = queryKey() - const queryFn = vi.fn(async () => { - await sleep(5) - return 'page 1' - }) + const queryFn = vi.fn(() => sleep(10).then(() => 'page 1')) function Page() { const query = useInfiniteQuery({ @@ -165,7 +160,7 @@ describe('Server Side Rendering', () => { queryFn, initialPageParam: 0, }) - await vi.advanceTimersByTimeAsync(5) + await vi.advanceTimersByTimeAsync(10) const markup = renderToString( @@ -175,6 +170,7 @@ describe('Server Side Rendering', () => { expect(markup).toContain('page 1') expect(queryFn).toHaveBeenCalledTimes(1) + queryCache.clear() }) }) From cb9ab1eaee84c3c432d8cbfa80d31ce964ca076a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 03:33:56 +0900 Subject: [PATCH 301/432] test(react-query/suspense): add 'sleep' in 'queryFn', and add 'expect' for 'loading' text (#9468) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/suspense.test.tsx | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index 8123fff1a1..409cdfcbce 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { act, render } from '@testing-library/react' import { Suspense } from 'react' -import { queryKey } from '@tanstack/query-test-utils' +import { queryKey, sleep } from '@tanstack/query-test-utils' import { QueryClient, QueryClientProvider, useSuspenseQuery } from '..' import type { QueryKey } from '..' @@ -21,10 +21,11 @@ function createTestQuery(options: { return function TestComponent() { const { data } = useSuspenseQuery({ queryKey: options.queryKey, - queryFn: () => { - options.fetchCount.count++ - return Promise.resolve('data') - }, + queryFn: () => + sleep(10).then(() => { + options.fetchCount.count++ + return 'data' + }), staleTime: options.staleTime, }) return
data: {data}
@@ -60,7 +61,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -85,7 +87,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -110,7 +113,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -135,7 +139,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( @@ -160,7 +165,8 @@ describe('Suspense Timer Tests', () => { const rendered = renderWithSuspense(queryClient, ) - await act(() => vi.advanceTimersByTimeAsync(0)) + expect(rendered.getByText('loading')).toBeInTheDocument() + await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data: data')).toBeInTheDocument() rendered.rerender( From 937683508a0b96ae582b8bc39f792b4418837974 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 03:37:39 +0900 Subject: [PATCH 302/432] test(react-query/HydrationBoundary): use precise time in 'advanceTimersByTimeAsync', add 'expect' using 'toBeInTheDocument', and simplify 'queryFn' (#9472) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/HydrationBoundary.test.tsx | 51 ++++++++----------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx index 5e9bd1e3fc..796dfc958d 100644 --- a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx @@ -54,9 +54,9 @@ describe('React hydration', () => {
, ) - await vi.advanceTimersByTimeAsync(1) + expect(rendered.getByText('stringCached')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(21) expect(rendered.getByText('string')).toBeInTheDocument() queryClient.clear() }) @@ -89,9 +89,8 @@ describe('React hydration', () => { , ) - await vi.advanceTimersByTimeAsync(1) expect(rendered.getByText('stringCached')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(21) expect(rendered.getByText('string')).toBeInTheDocument() queryClientInner.clear() @@ -123,9 +122,8 @@ describe('React hydration', () => { , ) - await vi.advanceTimersByTimeAsync(1) expect(rendered.getByText('stringCached')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(21) expect(rendered.getByText('string')).toBeInTheDocument() const intermediateClient = new QueryClient() @@ -134,7 +132,6 @@ describe('React hydration', () => { queryKey: ['string'], queryFn: () => sleep(20).then(() => ['should change']), }) - await vi.advanceTimersByTimeAsync(20) intermediateClient.prefetchQuery({ queryKey: ['added'], queryFn: () => sleep(20).then(() => ['added']), @@ -158,9 +155,9 @@ describe('React hydration', () => { // New query data should be available immediately expect(rendered.getByText('added')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(0) // After effects phase has had time to run, the observer should have updated - expect(rendered.queryByText('string')).toBeNull() + expect(rendered.queryByText('string')).not.toBeInTheDocument() expect(rendered.getByText('should change')).toBeInTheDocument() queryClient.clear() @@ -196,9 +193,8 @@ describe('React hydration', () => { , ) - await vi.advanceTimersByTimeAsync(1) expect(rendered.getByText('stringCached')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(21) expect(rendered.getByText('string')).toBeInTheDocument() const intermediateClient = new QueryClient() @@ -206,7 +202,6 @@ describe('React hydration', () => { queryKey: ['string'], queryFn: () => sleep(20).then(() => ['should not change']), }) - await vi.advanceTimersByTimeAsync(20) intermediateClient.prefetchQuery({ queryKey: ['added'], queryFn: () => sleep(20).then(() => ['added']), @@ -238,7 +233,7 @@ describe('React hydration', () => {
, ) - rendered.getByText('loading') + expect(rendered.getByText('loading')).toBeInTheDocument() }) React.startTransition(() => { @@ -253,7 +248,9 @@ describe('React hydration', () => { // This query existed before the transition so it should stay the same expect(rendered.getByText('string')).toBeInTheDocument() - expect(rendered.queryByText('should not change')).toBeNull() + expect( + rendered.queryByText('should not change'), + ).not.toBeInTheDocument() // New query data should be available immediately because it was // hydrated in the previous transition, even though the new dehydrated // state did not contain it @@ -263,7 +260,7 @@ describe('React hydration', () => { await vi.advanceTimersByTimeAsync(20) // It should stay the same even after effects have had a chance to run expect(rendered.getByText('string')).toBeInTheDocument() - expect(rendered.queryByText('should not change')).toBeNull() + expect(rendered.queryByText('should not change')).not.toBeInTheDocument() queryClient.clear() }) @@ -292,9 +289,8 @@ describe('React hydration', () => { , ) - await vi.advanceTimersByTimeAsync(1) expect(rendered.getByText('stringCached')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(20) + await vi.advanceTimersByTimeAsync(21) expect(rendered.getByText('string')).toBeInTheDocument() const newClientQueryClient = new QueryClient() @@ -359,7 +355,7 @@ describe('React hydration', () => { , ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(0) expect(hydrateSpy).toHaveBeenCalledTimes(0) hydrateSpy.mockRestore() @@ -386,12 +382,11 @@ describe('React hydration', () => { // For the bug to trigger, there needs to already be a query in the cache, // with a dataUpdatedAt earlier than the dehydratedAt of the next query const clientQueryClient = new QueryClient() - await clientQueryClient.prefetchQuery({ + clientQueryClient.prefetchQuery({ queryKey: ['promise'], - queryFn: () => 'existing', + queryFn: () => sleep(20).then(() => 'existing'), }) - - await vi.advanceTimersByTimeAsync(100) + await vi.advanceTimersByTimeAsync(20) const prefetchQueryClient = new QueryClient({ defaultOptions: { @@ -402,10 +397,8 @@ describe('React hydration', () => { }) prefetchQueryClient.prefetchQuery({ queryKey: ['promise'], - queryFn: async () => { - await sleep(10) - throw new Error('Query failed') - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Query failed'))), }) const dehydratedState = dehydrate(prefetchQueryClient) @@ -422,7 +415,7 @@ describe('React hydration', () => { function Page() { const { data } = useQuery({ queryKey: ['promise'], - queryFn: () => sleep(10).then(() => ['new']), + queryFn: () => sleep(20).then(() => ['new']), }) return (
@@ -438,9 +431,9 @@ describe('React hydration', () => { , ) - await vi.advanceTimersByTimeAsync(1) + expect(rendered.getByText('existing')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(10) + await vi.advanceTimersByTimeAsync(21) expect(rendered.getByText('new')).toBeInTheDocument() process.removeListener('unhandledRejection', ignore) From c2e833006b61639875ab7845b9d7d8a13b3ada08 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 03:40:30 +0900 Subject: [PATCH 303/432] test(solid-query/useIsFetching): simplify 'queryFn' and add 'expect' for 'isFetching' state transitions (#9480) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsFetching.test.tsx | 53 ++++++++----------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/packages/solid-query/src/__tests__/useIsFetching.test.tsx b/packages/solid-query/src/__tests__/useIsFetching.test.tsx index cfdf1e98f0..19edce5e08 100644 --- a/packages/solid-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/solid-query/src/__tests__/useIsFetching.test.tsx @@ -28,6 +28,7 @@ describe('useIsFetching', () => { function IsFetching() { const isFetching = useIsFetching() + return
isFetching: {isFetching()}
} @@ -36,10 +37,7 @@ describe('useIsFetching', () => { useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(50) - return 'test' - }, + queryFn: () => sleep(50).then(() => 'test'), enabled: ready(), })) @@ -62,8 +60,8 @@ describe('useIsFetching', () => { )) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(50) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() @@ -80,31 +78,29 @@ describe('useIsFetching', () => { function IsFetching() { const isFetching = useIsFetching() + createRenderEffect(() => { isFetchingArray.push(isFetching()) }) + return null } function FirstQuery() { useQuery(() => ({ queryKey: key1, - queryFn: async () => { - await sleep(150) - return 'data' - }, + queryFn: () => sleep(150).then(() => 'data'), })) + return null } function SecondQuery() { useQuery(() => ({ queryKey: key2, - queryFn: async () => { - await sleep(200) - return 'data' - }, + queryFn: () => sleep(200).then(() => 'data'), })) + return null } @@ -133,8 +129,10 @@ describe('useIsFetching', () => { )) + // unlike react, Updating renderSecond wont cause a rerender for FirstQuery await vi.advanceTimersByTimeAsync(300) + expect(isFetchingArray).toEqual([0, 1, 2, 1, 0]) }) @@ -148,22 +146,18 @@ describe('useIsFetching', () => { function One() { useQuery(() => ({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), })) + return null } function Two() { useQuery(() => ({ queryKey: key2, - queryFn: async () => { - await sleep(20) - return 'test' - }, + queryFn: () => sleep(20).then(() => 'test'), })) + return null } @@ -198,11 +192,12 @@ describe('useIsFetching', () => { )) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /setStarted/i })) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(20) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() + // at no point should we have isFetching: 2 expect(isFetchingArray).toEqual(expect.not.arrayContaining([2])) }) @@ -214,10 +209,7 @@ describe('useIsFetching', () => { function Page() { useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), })) const isFetching = useIsFetching() @@ -235,7 +227,6 @@ describe('useIsFetching', () => { )) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() @@ -249,10 +240,7 @@ describe('useIsFetching', () => { useQuery( () => ({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }), () => queryClient, ) @@ -268,7 +256,8 @@ describe('useIsFetching', () => { const rendered = render(() => ) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) }) From 9041b41565b1ed741cea394a2f396b0b197eb7e0 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 03:41:36 +0900 Subject: [PATCH 304/432] test(react-query/useIsFetching): simplify 'queryFn' and add 'expect' using 'toBeInTheDocument (#9478) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useIsFetching.test.tsx | 46 ++++--------------- 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/packages/react-query/src/__tests__/useIsFetching.test.tsx b/packages/react-query/src/__tests__/useIsFetching.test.tsx index f2af2d27aa..3102b0a5df 100644 --- a/packages/react-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/react-query/src/__tests__/useIsFetching.test.tsx @@ -30,10 +30,7 @@ describe('useIsFetching', () => { useQuery({ queryKey: key, - queryFn: async () => { - await sleep(50) - return 'test' - }, + queryFn: () => sleep(50).then(() => 'test'), enabled: ready, }) @@ -54,10 +51,8 @@ describe('useIsFetching', () => { expect(getByText('isFetching: 0')).toBeInTheDocument() fireEvent.click(getByRole('button', { name: /setReady/i })) - await vi.advanceTimersByTimeAsync(0) expect(getByText('isFetching: 1')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(51) expect(getByText('isFetching: 0')).toBeInTheDocument() }) @@ -80,10 +75,7 @@ describe('useIsFetching', () => { function FirstQuery() { useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(100) - return 'data' - }, + queryFn: () => sleep(100).then(() => 'data'), }) return null } @@ -91,10 +83,7 @@ describe('useIsFetching', () => { function SecondQuery() { useQuery({ queryKey: key2, - queryFn: async () => { - await sleep(100) - return 'data' - }, + queryFn: () => sleep(100).then(() => 'data'), }) return null } @@ -133,10 +122,7 @@ describe('useIsFetching', () => { function One() { useQuery({ queryKey: key1, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) return null } @@ -144,10 +130,7 @@ describe('useIsFetching', () => { function Two() { useQuery({ queryKey: key2, - queryFn: async () => { - await sleep(20) - return 'test' - }, + queryFn: () => sleep(20).then(() => 'test'), }) return null } @@ -174,15 +157,13 @@ describe('useIsFetching', () => { const { getByText, getByRole } = renderWithClient(queryClient, ) - getByText('isFetching: 0') + expect(getByText('isFetching: 0')).toBeInTheDocument() fireEvent.click(getByRole('button', { name: /setStarted/i })) - await vi.advanceTimersByTimeAsync(0) - getByText('isFetching: 1') - + expect(getByText('isFetching: 1')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(11) - getByText('isFetching: 0') + expect(getByText('isFetching: 0')).toBeInTheDocument() // at no point should we have isFetching: 2 expect(isFetchingArray).toEqual(expect.not.arrayContaining([2])) @@ -195,10 +176,7 @@ describe('useIsFetching', () => { function Page() { useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) const isFetching = useIsFetching() @@ -214,7 +192,6 @@ describe('useIsFetching', () => { await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) @@ -227,10 +204,7 @@ describe('useIsFetching', () => { useQuery( { queryKey: key, - queryFn: async () => { - await sleep(10) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }, queryClient, ) From bf9f9dc7e927a302c5c980fb24b35f90f59c8b04 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 03:45:07 +0900 Subject: [PATCH 305/432] test(solid-query/useInfiniteQuery): add 'sleep', remove 'Number' in 'queryFn', and simplify it (#9484) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useInfiniteQuery.test.tsx | 186 +++++++----------- 1 file changed, 72 insertions(+), 114 deletions(-) diff --git a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx index 1b86269073..7e7c1590ce 100644 --- a/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx +++ b/packages/solid-query/src/__tests__/useInfiniteQuery.test.tsx @@ -37,20 +37,18 @@ interface Result { const pageSize = 10 -const fetchItems = async ( +const fetchItems = ( page: number, ts: number, noNext?: boolean, noPrev?: boolean, -): Promise => { - await sleep(10) - return { +): Promise => + sleep(10).then(() => ({ items: [...new Array(10)].fill(null).map((_, d) => page * pageSize + d), nextId: noNext ? undefined : page + 1, prevId: noPrev ? undefined : page - 1, ts, - } -} + })) describe('useInfiniteQuery', () => { beforeEach(() => { @@ -71,13 +69,15 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: ({ pageParam }) => Number(pageParam), + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: 0, })) + createRenderEffect(() => { states.push({ ...state }) }) + return null } @@ -87,7 +87,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toEqual({ @@ -126,7 +126,6 @@ describe('useInfiniteQuery', () => { fetchStatus: 'fetching', promise: expect.any(Promise), }) - expect(states[1]).toEqual({ data: { pages: [0], pageParams: [0] }, dataUpdatedAt: expect.any(Number), @@ -173,13 +172,11 @@ describe('useInfiniteQuery', () => { const start = 1 const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: ({ pageParam }) => { - if (pageParam === 2) { - throw new Error('error') - } - return Number(pageParam) - }, - + queryFn: ({ pageParam }) => + sleep(10).then(() => { + if (pageParam === 2) throw new Error('error') + return pageParam + }), retry: 1, retryDelay: 10, initialPageParam: start, @@ -206,7 +203,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(30) + await vi.advanceTimersByTimeAsync(50) expect(noThrow).toBe(true) }) @@ -221,11 +218,8 @@ describe('useInfiniteQuery', () => { const state = useInfiniteQuery(() => ({ queryKey: [key, order()], - queryFn: async ({ pageParam }) => { - await sleep(10) - return `${pageParam}-${order()}` - }, - + queryFn: ({ pageParam }) => + sleep(10).then(() => `${pageParam}-${order()}`), getNextPageParam: () => 1, initialPageParam: 0, placeholderData: keepPreviousData, @@ -320,7 +314,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: () => ({ count: 1 }), + queryFn: () => sleep(10).then(() => ({ count: 1 })), select: (data) => ({ pages: data.pages.map((x) => `count: ${x.count}`), pageParams: data.pageParams, @@ -328,9 +322,11 @@ describe('useInfiniteQuery', () => { getNextPageParam: () => undefined, initialPageParam: 0, })) + createRenderEffect(() => { states.push({ ...state }) }) + return null } @@ -340,7 +336,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -363,8 +359,8 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: () => ({ count: 1 }), - select: (data: InfiniteData<{ count: number }>) => { + queryFn: () => sleep(10).then(() => ({ count: 1 })), + select: (data) => { selectCalled++ return { pages: data.pages.map((x) => ({ ...x, id: Math.random() })), @@ -374,9 +370,11 @@ describe('useInfiniteQuery', () => { getNextPageParam: () => undefined, initialPageParam: 0, })) + createRenderEffect(() => { states.push({ ...state }) }) + return null } @@ -386,7 +384,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(selectCalled).toBe(1) @@ -408,11 +406,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(10) - return Number(pageParam) - }, - + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), select: (data) => ({ pages: [...data.pages].reverse(), pageParams: [...data.pageParams].reverse(), @@ -486,10 +480,7 @@ describe('useInfiniteQuery', () => { const start = 10 const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(10) - return Number(pageParam) - }, + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), getNextPageParam: (lastPage) => lastPage + 1, getPreviousPageParam: (firstPage) => firstPage - 1, initialPageParam: start, @@ -573,11 +564,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(10) - return Number(pageParam) - }, - + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), getPreviousPageParam: (firstPage) => firstPage - 1, getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: 10, @@ -703,14 +690,11 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(10) - if (isRefetch) { - throw new Error() - } else { - return Number(pageParam) - } - }, + queryFn: ({ pageParam }) => + sleep(10).then(() => { + if (isRefetch) throw new Error() + return pageParam + }), getPreviousPageParam: (firstPage) => firstPage - 1, getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: 10, @@ -815,14 +799,11 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(10) - if (pageParam !== 10) { - throw new Error() - } else { - return Number(pageParam) - } - }, + queryFn: ({ pageParam }) => + sleep(10).then(() => { + if (pageParam !== 10) throw new Error() + return pageParam + }), getPreviousPageParam: (firstPage) => firstPage - 1, getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: 10, @@ -920,14 +901,11 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(10) - if (pageParam !== 10) { - throw new Error() - } else { - return Number(pageParam) - } - }, + queryFn: ({ pageParam }) => + sleep(10).then(() => { + if (pageParam !== 10) throw new Error() + return pageParam + }), getPreviousPageParam: (firstPage) => firstPage - 1, getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: 10, @@ -1030,11 +1008,7 @@ describe('useInfiniteQuery', () => { const start = 10 const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(50) - return Number(pageParam) - }, - + queryFn: ({ pageParam }) => sleep(50).then(() => pageParam), getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: start, notifyOnChangeProps: 'all', @@ -1125,7 +1099,7 @@ describe('useInfiniteQuery', () => { signal.addEventListener('abort', abortListener) await sleep(50) - return Number(pageParam) + return pageParam }) function Page() { @@ -1206,7 +1180,7 @@ describe('useInfiniteQuery', () => { signal.addEventListener('abort', abortListener) await sleep(50) - return Number(pageParam) + return pageParam }) function Page() { @@ -1270,11 +1244,7 @@ describe('useInfiniteQuery', () => { const start = 10 const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(50) - return Number(pageParam) - }, - + queryFn: ({ pageParam }) => sleep(50).then(() => pageParam), getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: start, notifyOnChangeProps: 'all', @@ -1328,12 +1298,11 @@ describe('useInfiniteQuery', () => { function List() { useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam, signal: _ }) => { - fetches++ - await sleep(50) - return Number(pageParam) * 10 - }, - + queryFn: ({ pageParam }) => + sleep(50).then(() => { + fetches++ + return pageParam * 10 + }), initialData, getNextPageParam: (_, allPages) => { return allPages.length === 4 ? undefined : allPages.length @@ -1382,11 +1351,7 @@ describe('useInfiniteQuery', () => { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }) => { - await sleep(10) - return Number(pageParam) - }, - + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), getNextPageParam: (lastPage) => lastPage + 1, notifyOnChangeProps: 'all', initialPageParam: firstPage(), @@ -1475,11 +1440,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: async ({ pageParam }): Promise => { - await sleep(10) - return pageParam - }, - + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), initialData: { pages: [1], pageParams: [1] }, getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: 0, @@ -1552,7 +1513,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: ({ pageParam }) => Number(pageParam), + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), initialPageParam: 1, getNextPageParam: () => undefined, })) @@ -1570,7 +1531,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1596,7 +1557,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: ({ pageParam }): number => pageParam, + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), initialPageParam: 10, initialData: { pages: [10], pageParams: [10] }, getNextPageParam: (lastPage) => (lastPage === 10 ? 11 : undefined), @@ -1615,7 +1576,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1641,7 +1602,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: ({ pageParam }): number => pageParam, + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), initialPageParam: 10, initialData: { pages: [10], pageParams: [10] }, getNextPageParam: () => undefined, @@ -1660,7 +1621,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1686,7 +1647,7 @@ describe('useInfiniteQuery', () => { function Page() { const state = useInfiniteQuery(() => ({ queryKey: key, - queryFn: ({ pageParam }) => Number(pageParam), + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), initialPageParam: 1, getNextPageParam: (lastPage) => (lastPage === 1 ? 2 : undefined), select: (data) => ({ @@ -1708,7 +1669,7 @@ describe('useInfiniteQuery', () => { )) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(states.length).toBe(2) expect(states[0]).toMatchObject({ @@ -1735,14 +1696,12 @@ describe('useInfiniteQuery', () => { const items = genItems(15) const limit = 3 - const fetchItemsWithLimit = async (cursor = 0, ts: number) => { - await sleep(10) - return { + const fetchItemsWithLimit = (cursor = 0, ts: number) => + sleep(10).then(() => ({ nextId: cursor + limit, items: items.slice(cursor, cursor + limit), ts, - } - } + })) function Page() { let fetchCountRef = 0 @@ -1880,6 +1839,7 @@ describe('useInfiniteQuery', () => { let fetchCountRef = 0 const [isRemovedLastPage, setIsRemovedLastPage] = createSignal(false) + const state = useInfiniteQuery(() => ({ queryKey: key, queryFn: ({ pageParam }) => @@ -2033,15 +1993,12 @@ describe('useInfiniteQuery', () => { it('should use provided custom queryClient', async () => { const key = queryKey() - const queryFn = () => { - return Promise.resolve('custom client') - } function Page() { const state = useInfiniteQuery( () => ({ queryKey: key, - queryFn, + queryFn: () => sleep(10).then(() => 'custom client'), getNextPageParam: () => undefined, initialPageParam: 0, }), @@ -2056,17 +2013,18 @@ describe('useInfiniteQuery', () => { const rendered = render(() => ) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('Status: custom client')).toBeInTheDocument() }) it('should work with infiniteQueryOptions', async () => { const key = queryKey() + const options = infiniteQueryOptions({ - getNextPageParam: () => undefined, queryKey: key, + queryFn: () => sleep(10).then(() => 220), + getNextPageParam: () => undefined, initialPageParam: 0, - queryFn: () => Promise.resolve(220), }) function Page() { @@ -2083,7 +2041,7 @@ describe('useInfiniteQuery', () => { const rendered = render(() => ) - await vi.advanceTimersByTimeAsync(220) + await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('Status: 220')).toBeInTheDocument() }) }) From 039d21497793500eb963bf4dd085510b46c8d944 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 03:49:52 +0900 Subject: [PATCH 306/432] test(solid-query/suspense): simplify 'queryFn' and add 'expect' for 'loading' text (#9479) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/suspense.test.tsx | 216 ++++++++---------- 1 file changed, 93 insertions(+), 123 deletions(-) diff --git a/packages/solid-query/src/__tests__/suspense.test.tsx b/packages/solid-query/src/__tests__/suspense.test.tsx index 170dcd01a9..8fbb86e9f3 100644 --- a/packages/solid-query/src/__tests__/suspense.test.tsx +++ b/packages/solid-query/src/__tests__/suspense.test.tsx @@ -42,11 +42,7 @@ describe("useQuery's in Suspense mode", () => { const state = useQuery(() => ({ queryKey: stateKey(), - queryFn: async () => { - count++ - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => ++count), })) createRenderEffect(() => { @@ -75,10 +71,12 @@ describe("useQuery's in Suspense mode", () => { )) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('data: 1')).toBeInTheDocument() fireEvent.click(rendered.getByLabelText('toggle')) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('data: 2')).toBeInTheDocument() @@ -96,10 +94,8 @@ describe("useQuery's in Suspense mode", () => { const [multiplier, setMultiplier] = createSignal(1) const state = useInfiniteQuery(() => ({ queryKey: [`${key}_${multiplier()}`], - queryFn: async ({ pageParam }) => { - await sleep(10) - return Number(pageParam * multiplier()) - }, + queryFn: ({ pageParam }) => + sleep(10).then(() => pageParam * multiplier()), initialPageParam: 1, suspense: true, getNextPageParam: (lastPage) => lastPage + 1, @@ -125,6 +121,7 @@ describe("useQuery's in Suspense mode", () => { )) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('data: 1')).toBeInTheDocument() // eslint-disable-next-line cspell/spellchecker @@ -137,6 +134,7 @@ describe("useQuery's in Suspense mode", () => { }) fireEvent.click(rendered.getByText('next')) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('data: 2')).toBeInTheDocument() // eslint-disable-next-line cspell/spellchecker @@ -151,14 +149,14 @@ describe("useQuery's in Suspense mode", () => { it('should not call the queryFn twice when used in Suspense mode', async () => { const key = queryKey() - const queryFn = vi.fn<(...args: Array) => string>() - queryFn.mockImplementation(() => { - sleep(10) - return 'data' - }) + const queryFn = vi.fn(() => sleep(10).then(() => 'data')) function Page() { - useQuery(() => ({ queryKey: [key], queryFn, suspense: true })) + useQuery(() => ({ + queryKey: [key], + queryFn, + suspense: true, + })) return <>rendered } @@ -171,8 +169,8 @@ describe("useQuery's in Suspense mode", () => { )) - await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('rendered')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(20) expect(queryFn).toHaveBeenCalledTimes(1) }) @@ -183,10 +181,7 @@ describe("useQuery's in Suspense mode", () => { function Page() { useQuery(() => ({ queryKey: key, - queryFn: () => { - sleep(10) - return 'data' - }, + queryFn: () => sleep(10).then(() => 'data'), })) return <>rendered @@ -212,7 +207,7 @@ describe("useQuery's in Suspense mode", () => { )) - expect(rendered.queryByText('rendered')).toBeNull() + expect(rendered.queryByText('rendered')).not.toBeInTheDocument() expect(queryCache.find({ queryKey: key })).toBeFalsy() fireEvent.click(rendered.getByLabelText('toggle')) @@ -222,7 +217,7 @@ describe("useQuery's in Suspense mode", () => { expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(1) fireEvent.click(rendered.getByLabelText('toggle')) - expect(rendered.queryByText('rendered')).toBeNull() + expect(rendered.queryByText('rendered')).not.toBeInTheDocument() expect(queryCache.find({ queryKey: key })?.getObserversCount()).toBe(0) }) @@ -236,14 +231,11 @@ describe("useQuery's in Suspense mode", () => { function Page() { const state = useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retryDelay: 10, suspense: true, })) @@ -273,19 +265,20 @@ describe("useQuery's in Suspense mode", () => {
)} > - + )) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(100) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('rendered')).toBeInTheDocument() }) @@ -298,14 +291,11 @@ describe("useQuery's in Suspense mode", () => { function Page() { const state = useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retry: false, suspense: true, })) @@ -334,19 +324,20 @@ describe("useQuery's in Suspense mode", () => {
)} > - +
)) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() @@ -354,6 +345,7 @@ describe("useQuery's in Suspense mode", () => { succeed = true fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('rendered')).toBeInTheDocument() }) @@ -365,16 +357,12 @@ describe("useQuery's in Suspense mode", () => { function Component() { const result = useQuery(() => ({ queryKey: key, - queryFn: async () => { - await sleep(100) - count++ - return count - }, - + queryFn: () => sleep(100).then(() => ++count), retry: false, suspense: true, staleTime: 0, })) + return (
data: {result.data} @@ -394,7 +382,7 @@ describe("useQuery's in Suspense mode", () => { > {show() ? 'hide' : 'show'} - {show() && } + {show() && }
) } @@ -405,7 +393,7 @@ describe("useQuery's in Suspense mode", () => {
)) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(100) expect(rendered.getByText('data: 1')).toBeInTheDocument() expect(rendered.getByText('fetching: false')).toBeInTheDocument() @@ -416,6 +404,7 @@ describe("useQuery's in Suspense mode", () => { expect(rendered.getByText('show')).toBeInTheDocument() fireEvent.click(rendered.getByText('show')) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('fetching: true')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(100) @@ -430,13 +419,11 @@ describe("useQuery's in Suspense mode", () => { function Component(props: { queryKey: Array }) { const result = useQuery(() => ({ queryKey: props.queryKey, - queryFn: async () => { - await sleep(100) - return props.queryKey - }, + queryFn: () => sleep(100).then(() => props.queryKey), retry: false, suspense: true, })) + return
data: {result.data}
} @@ -451,7 +438,7 @@ describe("useQuery's in Suspense mode", () => { > switch - + @@ -464,12 +451,12 @@ describe("useQuery's in Suspense mode", () => {
)) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(100) expect(rendered.getByText(`data: ${key1}`)).toBeInTheDocument() fireEvent.click(rendered.getByText('switch')) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(100) expect(rendered.getByText(`data: ${key2}`)).toBeInTheDocument() }) @@ -484,10 +471,8 @@ describe("useQuery's in Suspense mode", () => { function Page() { const state = useQuery(() => ({ queryKey: key, - queryFn: async (): Promise => { - await sleep(10) - throw new Error('Suspense Error a1x') - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Suspense Error a1x'))), retry: false, suspense: true, })) @@ -509,7 +494,7 @@ describe("useQuery's in Suspense mode", () => { )} > - + @@ -522,7 +507,7 @@ describe("useQuery's in Suspense mode", () => {
)) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('error boundary')).toBeInTheDocument() @@ -535,10 +520,8 @@ describe("useQuery's in Suspense mode", () => { function Page() { const state = useQuery(() => ({ queryKey: key, - queryFn: async (): Promise => { - await sleep(10) - throw new Error('Suspense Error a2x') - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Suspense Error a2x'))), retry: false, throwOnError: false, })) @@ -560,7 +543,7 @@ describe("useQuery's in Suspense mode", () => { )} > - + @@ -573,7 +556,7 @@ describe("useQuery's in Suspense mode", () => { )) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('rendered')).toBeInTheDocument() }) @@ -588,10 +571,8 @@ describe("useQuery's in Suspense mode", () => { function Page() { const state = useQuery(() => ({ queryKey: key, - queryFn: async (): Promise => { - await sleep(10) - return Promise.reject(new Error('Remote Error')) - }, + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Remote Error'))), retry: false, throwOnError: (err) => err.message !== 'Local Error', })) @@ -613,7 +594,7 @@ describe("useQuery's in Suspense mode", () => { )} > - + @@ -626,7 +607,7 @@ describe("useQuery's in Suspense mode", () => { )) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('error boundary')).toBeInTheDocument() @@ -639,11 +620,8 @@ describe("useQuery's in Suspense mode", () => { function Page() { const state = useQuery(() => ({ queryKey: key, - queryFn: async (): Promise => { - await sleep(10) - return Promise.reject(new Error('Local Error')) - }, - + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Local Error'))), retry: false, suspense: true, throwOnError: (err) => err.message !== 'Local Error', @@ -666,7 +644,7 @@ describe("useQuery's in Suspense mode", () => { )} > - + @@ -679,7 +657,7 @@ describe("useQuery's in Suspense mode", () => { )) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('rendered')).toBeInTheDocument() }) @@ -687,14 +665,11 @@ describe("useQuery's in Suspense mode", () => { it('should not call the queryFn when not enabled', async () => { const key = queryKey() - const queryFn = vi.fn<(...args: Array) => Promise>() - queryFn.mockImplementation(async () => { - await sleep(10) - return '23' - }) + const queryFn = vi.fn(() => sleep(10).then(() => '23')) function Page() { const [enabled, setEnabled] = createSignal(false) + const result = useQuery(() => ({ queryKey: [key], queryFn, @@ -718,10 +693,12 @@ describe("useQuery's in Suspense mode", () => { )) + expect(rendered.getByText('loading')).toBeInTheDocument() expect(queryFn).toHaveBeenCalledTimes(0) await vi.advanceTimersByTimeAsync(10) fireEvent.click(rendered.getByRole('button', { name: /fire/i })) + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) expect(rendered.getByRole('heading').textContent).toBe('23') expect(queryFn).toHaveBeenCalledTimes(1) @@ -739,28 +716,22 @@ describe("useQuery's in Suspense mode", () => { function Page() { const [nonce] = createSignal(0) const queryKeys = [`${key}-${succeed}`] + const result = useQuery(() => ({ queryKey: queryKeys, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return nonce() - } - }, + }), retry: false, suspense: true, })) + return (
rendered {result.data} -
@@ -770,7 +741,7 @@ describe("useQuery's in Suspense mode", () => { function App() { return (
error boundary
}> - +
@@ -784,7 +755,7 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() // resolve promise -> render Page (rendered) await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('rendered')).toBeInTheDocument() @@ -813,17 +784,15 @@ describe("useQuery's in Suspense mode", () => { const result = useQuery(() => ({ queryKey: [`${key()}-${succeed}`], - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Suspense Error Bingo') - } else { + queryFn: async () => + sleep(10).then(() => { + if (!succeed) throw new Error('Suspense Error Bingo') return 'data' - } - }, + }), retry: false, suspense: true, })) + return (
rendered {result.data} @@ -837,7 +806,7 @@ describe("useQuery's in Suspense mode", () => { function App() { return (
error boundary
}> - +
@@ -851,7 +820,7 @@ describe("useQuery's in Suspense mode", () => { )) // render suspense fallback (Loading...) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() // resolve promise -> render Page (rendered) await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('rendered')).toBeInTheDocument() @@ -861,6 +830,7 @@ describe("useQuery's in Suspense mode", () => { // change query key fireEvent.click(rendered.getByLabelText('fail')) + expect(rendered.getByText('loading')).toBeInTheDocument() // render error boundary fallback (error boundary) await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('error boundary')).toBeInTheDocument() @@ -879,15 +849,15 @@ describe("useQuery's in Suspense mode", () => { const result = useQuery(() => ({ queryKey: [queryKeys], - queryFn: async () => { - await sleep(10) - throw new Error('Suspense Error Bingo') - }, - + queryFn: () => + sleep(10).then(() => + Promise.reject(new Error('Suspense Error Bingo')), + ), retry: false, suspense: true, enabled: enabled(), })) + return (
rendered {result.data} @@ -906,7 +876,7 @@ describe("useQuery's in Suspense mode", () => { function App() { return (
error boundary
}> - +
@@ -919,14 +889,15 @@ describe("useQuery's in Suspense mode", () => { )) - // render empty data with 'rendered' when enabled is false + expect(rendered.getByText('loading')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(10) + // render empty data with 'rendered' when enabled is false expect(rendered.getByText('rendered')).toBeInTheDocument() // change enabled to true fireEvent.click(rendered.getByLabelText('fail')) // render pending fallback - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() // render error boundary fallback (error boundary) await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('error boundary')).toBeInTheDocument() @@ -944,11 +915,7 @@ describe("useQuery's in Suspense mode", () => { function Page() { state = useQuery(() => ({ queryKey: key, - queryFn: async () => { - count++ - await sleep(10) - return count - }, + queryFn: () => sleep(10).then(() => ++count), gcTime: 0, })) @@ -973,12 +940,15 @@ describe("useQuery's in Suspense mode", () => { )) + expect(rendered.getByText('loading')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(state).toMatchObject({ data: 1, status: 'success', }) expect(renders).toBe(2) - expect(rendered.queryByText('rendered')).not.toBeNull() + expect(rendered.queryByText('rendered')).toBeInTheDocument() }) }) From 6bc45b88acca3360c4a883f14ab0987d6633ad27 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 04:01:18 +0900 Subject: [PATCH 307/432] test(react-query/useSuspenseQueries): simplify 'queryFn' and add 'expect' for 'loading' text (#9477) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/useSuspenseQueries.test.tsx | 146 ++++++++++-------- 1 file changed, 80 insertions(+), 66 deletions(-) diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx index 67af8b8d85..24cd63ab92 100644 --- a/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx +++ b/packages/react-query/src/__tests__/useSuspenseQueries.test.tsx @@ -27,10 +27,7 @@ const QUERY_DURATION = 1000 const createQuery: (id: number) => NumberQueryOptions = (id) => ({ queryKey: [id], - queryFn: async () => { - await sleep(QUERY_DURATION) - return id - }, + queryFn: () => sleep(QUERY_DURATION).then(() => id), }) const resolveQueries = () => vi.advanceTimersByTimeAsync(QUERY_DURATION) @@ -59,7 +56,7 @@ describe('useSuspenseQueries', () => { onSuspend() }, []) - return null + return
loading
} const withSuspenseWrapper = (Component: React.FC) => { @@ -158,10 +155,7 @@ describe('useSuspenseQueries', () => { const data = useSuspenseQueries({ queries: [1, 2, 3].map((value) => ({ queryKey: [...key, { value }], - queryFn: async () => { - await sleep(value * 10) - return { value: value * 10 } - }, + queryFn: () => sleep(value * 10).then(() => ({ value: value * 10 })), })), combine: (result) => { spy(result) @@ -174,15 +168,18 @@ describe('useSuspenseQueries', () => { const rendered = renderWithClient( queryClient, - + , ) - expect(rendered.getByText('loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() + expect(spy).not.toHaveBeenCalled() + await act(() => vi.advanceTimersByTimeAsync(30)) expect(rendered.getByText('data')).toBeInTheDocument() + expect(spy).toHaveBeenCalled() }) }) @@ -211,22 +208,23 @@ describe('useSuspenseQueries 2', () => { queries: [ { queryKey: key1, - queryFn: async () => { - results.push('1') - await sleep(10) - return '1' - }, + queryFn: () => + sleep(10).then(() => { + results.push('1') + return '1' + }), }, { queryKey: key2, - queryFn: async () => { - results.push('2') - await sleep(20) - return '2' - }, + queryFn: () => + sleep(20).then(() => { + results.push('2') + return '2' + }), }, ], }) + return (

data: {result.map((item) => item.data ?? 'null').join(',')}

@@ -244,7 +242,8 @@ describe('useSuspenseQueries 2', () => { expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(20)) expect(rendered.getByText('data: 1,2')).toBeInTheDocument() - expect(results).toEqual(['1', '2', 'loading']) + + expect(results).toEqual(['loading', '1', '2']) }) it("shouldn't unmount before all promises fetched", async () => { @@ -264,24 +263,25 @@ describe('useSuspenseQueries 2', () => { queries: [ { queryKey: key1, - queryFn: async () => { - refs.push(ref.current) - results.push('1') - await sleep(10) - return '1' - }, + queryFn: () => + sleep(10).then(() => { + refs.push(ref.current) + results.push('1') + return '1' + }), }, { queryKey: key2, - queryFn: async () => { - refs.push(ref.current) - results.push('2') - await sleep(20) - return '2' - }, + queryFn: () => + sleep(20).then(() => { + refs.push(ref.current) + results.push('2') + return '2' + }), }, ], }) + return (

data: {result.map((item) => item.data ?? 'null').join(',')}

@@ -297,9 +297,11 @@ describe('useSuspenseQueries 2', () => { ) expect(rendered.getByText('loading')).toBeInTheDocument() - expect(refs.length).toBe(2) + await act(() => vi.advanceTimersByTimeAsync(20)) expect(rendered.getByText('data: 1,2')).toBeInTheDocument() + + expect(refs.length).toBe(2) expect(refs[0]).toBe(refs[1]) }) @@ -348,6 +350,7 @@ describe('useSuspenseQueries 2', () => { document.dispatchEvent(new CustomEvent('online')) fireEvent.click(rendered.getByText('fetch')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) // query should resume expect(rendered.getByText('Data 1')).toBeInTheDocument() @@ -374,8 +377,7 @@ describe('useSuspenseQueries 2', () => { return (
- -
rendered: {String(data)}
+
rendered: {data}
) } @@ -383,21 +385,25 @@ describe('useSuspenseQueries 2', () => { const rendered = renderWithClient( queryClient,
error boundary
}> - +
, ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('rendered: data')).toBeInTheDocument() + fireEvent.click(rendered.getByText('trigger fail')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(consoleMock.mock.calls[0]?.[1]).toStrictEqual( new Error('Suspense Error Bingo'), ) + consoleMock.mockRestore() }) @@ -409,7 +415,7 @@ describe('useSuspenseQueries 2', () => { const [isPending, startTransition] = React.useTransition() const { data } = useSuspenseQuery({ queryKey: [key, count], - queryFn: async () => sleep(10).then(() => 'data' + count), + queryFn: () => sleep(10).then(() => 'data' + count), }) return ( @@ -418,23 +424,24 @@ describe('useSuspenseQueries 2', () => { inc -
{isPending ? 'Pending...' : String(data)}
+
{isPending ? 'pending' : data}
) } const rendered = renderWithClient( queryClient, - + , ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data0')).toBeInTheDocument() + fireEvent.click(rendered.getByText('inc')) - expect(rendered.getByText('Pending...')).toBeInTheDocument() + expect(rendered.getByText('pending')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data1')).toBeInTheDocument() }) @@ -453,7 +460,7 @@ describe('useSuspenseQueries 2', () => { > inc - +
@@ -463,11 +470,11 @@ describe('useSuspenseQueries 2', () => { function Page({ count }: { count: number }) { const { data } = useSuspenseQuery({ queryKey: [key, count], - queryFn: async () => { - queryFnCount++ - await sleep(10) - return 'data' + count - }, + queryFn: () => + sleep(10).then(() => { + queryFnCount++ + return 'data' + count + }), }) return ( @@ -483,12 +490,14 @@ describe('useSuspenseQueries 2', () => { , ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data0')).toBeInTheDocument() + fireEvent.click(rendered.getByText('inc')) await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data1')).toBeInTheDocument() + expect(queryFnCount).toBe(2) }) @@ -507,7 +516,7 @@ describe('useSuspenseQueries 2', () => { const [isPending, startTransition] = React.useTransition() const { data } = useSuspenseQuery({ queryKey: [key, count], - queryFn: async () => sleep(10).then(() => 'data' + count), + queryFn: () => sleep(10).then(() => 'data' + count), }) return ( @@ -515,24 +524,24 @@ describe('useSuspenseQueries 2', () => { - -
{isPending ? 'Pending...' : String(data)}
+
{isPending ? 'pending' : data}
) } const rendered = renderWithClient( queryClientWithPlaceholder, - + , ) - expect(rendered.getByText('Loading...')).toBeInTheDocument() + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data0')).toBeInTheDocument() + fireEvent.click(rendered.getByText('inc')) - expect(rendered.getByText('Pending...')).toBeInTheDocument() + expect(rendered.getByText('pending')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data1')).toBeInTheDocument() }) @@ -547,11 +556,11 @@ describe('useSuspenseQueries 2', () => { function Page() { useSuspenseQuery({ queryKey: key, - queryFn: async () => { - count++ - await sleep(10) - return Promise.reject(new Error('Query failed')) - }, + queryFn: () => + sleep(10).then(() => { + count++ + throw new Error('Query failed') + }), gcTime: 0, retry: false, }) @@ -575,9 +584,12 @@ describe('useSuspenseQueries 2', () => { const rendered = renderWithClient(queryClient, ) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('There was an error!')).toBeInTheDocument() + expect(count).toBe(1) + consoleMock.mockRestore() }) @@ -604,7 +616,7 @@ describe('useSuspenseQueries 2', () => { function Component() { const { data } = useSuspenseQuery({ queryKey: key, - queryFn: async () => sleep(3000).then(() => 'data'), + queryFn: () => sleep(3000).then(() => 'data'), gcTime: 1000, }) @@ -617,6 +629,7 @@ describe('useSuspenseQueries 2', () => { function App() { const [show, setShow] = React.useState(true) + return (
{show ? : } @@ -628,6 +641,7 @@ describe('useSuspenseQueries 2', () => { const rendered = renderWithClient(queryClient, ) expect(rendered.getByText('loading')).toBeInTheDocument() + fireEvent.click(rendered.getByText('hide')) expect(rendered.getByText('page2')).toBeInTheDocument() // wait for query to be resolved @@ -661,7 +675,7 @@ describe('useSuspenseQueries 2', () => { function App() { return ( - + ) @@ -699,7 +713,7 @@ describe('useSuspenseQueries 2', () => { renderWithClient( queryClient, - + , ) @@ -735,7 +749,7 @@ describe('useSuspenseQueries 2', () => { renderWithClient( queryClient, - + , ) From fba2c868f7918c7624af44831abb0fd7c0fb1112 Mon Sep 17 00:00:00 2001 From: Wilson <43559667+wilson12365@users.noreply.github.com> Date: Tue, 22 Jul 2025 15:13:20 -0400 Subject: [PATCH 308/432] docs: add signal to queryFn for cancelQueries to work properly (#9475) Co-authored-by: Jonghyeon Ko --- examples/react/optimistic-updates-cache/src/pages/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/react/optimistic-updates-cache/src/pages/index.tsx b/examples/react/optimistic-updates-cache/src/pages/index.tsx index de11d13cf1..e9c24a7411 100644 --- a/examples/react/optimistic-updates-cache/src/pages/index.tsx +++ b/examples/react/optimistic-updates-cache/src/pages/index.tsx @@ -20,8 +20,8 @@ type Todos = { ts: number } -async function fetchTodos(): Promise { - const response = await fetch('/api/data') +async function fetchTodos({ signal }: { signal: AbortSignal }): Promise { + const response = await fetch('/api/data', { signal }) return await response.json() } From 552fe4bd08687c6aa0bf44ee46185154ac7f711f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 23 Jul 2025 22:57:12 +0900 Subject: [PATCH 309/432] test(solid-query/useIsMutating): simplify 'mutationFn' and add 'expect' for 'isMutating' state transitions (#9486) --- .../src/__tests__/useIsMutating.test.tsx | 62 +++++++++---------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/packages/solid-query/src/__tests__/useIsMutating.test.tsx b/packages/solid-query/src/__tests__/useIsMutating.test.tsx index 3442bd1214..076081be0b 100644 --- a/packages/solid-query/src/__tests__/useIsMutating.test.tsx +++ b/packages/solid-query/src/__tests__/useIsMutating.test.tsx @@ -26,26 +26,22 @@ describe('useIsMutating', () => { function IsMutating() { const isMutating = useIsMutating() + createRenderEffect(() => { isMutatingArray.push(isMutating()) }) + return null } function Mutations() { const { mutate: mutate1 } = useMutation(() => ({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(150) - return 'data' - }, + mutationFn: () => sleep(150).then(() => 'data'), })) const { mutate: mutate2 } = useMutation(() => ({ mutationKey: ['mutation2'], - mutationFn: async () => { - await sleep(50) - return 'data' - }, + mutationFn: () => sleep(50).then(() => 'data'), })) createEffect(() => { @@ -74,6 +70,7 @@ describe('useIsMutating', () => { )) await vi.advanceTimersByTimeAsync(150) + expect(isMutatingArray).toEqual([0, 1, 2, 1, 0]) }) @@ -83,26 +80,22 @@ describe('useIsMutating', () => { function IsMutating() { const isMutating = useIsMutating(() => ({ mutationKey: ['mutation1'] })) + createRenderEffect(() => { isMutatingArray.push(isMutating()) }) + return null } function Page() { const { mutate: mutate1 } = useMutation(() => ({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), })) const { mutate: mutate2 } = useMutation(() => ({ mutationKey: ['mutation2'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), })) createEffect(() => { @@ -121,6 +114,7 @@ describe('useIsMutating', () => { // Unlike React, IsMutating Wont re-render twice with mutation2 await vi.advanceTimersByTimeAsync(100) + expect(isMutatingArray).toEqual([0, 1, 0]) }) @@ -133,26 +127,22 @@ describe('useIsMutating', () => { predicate: (mutation) => mutation.options.mutationKey?.[0] === 'mutation1', })) + createRenderEffect(() => { isMutatingArray.push(isMutating()) }) + return null } function Page() { const { mutate: mutate1 } = useMutation(() => ({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), })) const { mutate: mutate2 } = useMutation(() => ({ mutationKey: ['mutation2'], - mutationFn: async () => { - await sleep(100) - return 'data' - }, + mutationFn: () => sleep(100).then(() => 'data'), })) createEffect(() => { @@ -171,6 +161,7 @@ describe('useIsMutating', () => { // Again, No unnecessary re-renders like React await vi.advanceTimersByTimeAsync(100) + expect(isMutatingArray).toEqual([0, 1, 0]) }) @@ -182,16 +173,17 @@ describe('useIsMutating', () => { const { mutate } = useMutation( () => ({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(10) - return 'data' - }, + mutationFn: () => sleep(20).then(() => 'data'), }), () => queryClient, ) + createEffect(() => { - mutate() + setActTimeout(() => { + mutate() + }, 10) }) + return (
mutating: {isMutating()}
@@ -201,8 +193,11 @@ describe('useIsMutating', () => { const rendered = render(() => ) - await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('mutating: 0')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) expect(rendered.getByText('mutating: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(20) + expect(rendered.getByText('mutating: 0')).toBeInTheDocument() }) // eslint-disable-next-line vitest/expect-expect @@ -231,12 +226,10 @@ describe('useIsMutating', () => { function Page() { const [mounted, setMounted] = createSignal(true) + const { mutate: mutate1 } = useMutation(() => ({ mutationKey: ['mutation1'], - mutationFn: async () => { - await sleep(10) - return 'data' - }, + mutationFn: () => sleep(10).then(() => 'data'), })) createEffect(() => { @@ -258,6 +251,7 @@ describe('useIsMutating', () => { )) + fireEvent.click(rendered.getByText('unmount')) // Should not display the console error From 1e8346815e7ab58c7492359423a111115c9eb541 Mon Sep 17 00:00:00 2001 From: davidmoranetflix Date: Thu, 24 Jul 2025 09:52:21 -0700 Subject: [PATCH 310/432] docs(example): Remove unnecessary data truthiness check (#9485) Isn't data guaranteed to be truth-y, as part of the larger principle of "Focus on the success case"? We shouldn't need to check for it in the JSX. --- examples/react/suspense/src/components/Project.tsx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/examples/react/suspense/src/components/Project.tsx b/examples/react/suspense/src/components/Project.tsx index 84ca4e454d..f9da7844d7 100644 --- a/examples/react/suspense/src/components/Project.tsx +++ b/examples/react/suspense/src/components/Project.tsx @@ -22,13 +22,11 @@ export default function Project({

{activeProject} {isFetching ? : null}

- {data ? ( -
-

forks: {data.forks_count}

-

stars: {data.stargazers_count}

-

watchers: {data.watchers_count}

-
- ) : null} +
+

forks: {data.forks_count}

+

stars: {data.stargazers_count}

+

watchers: {data.watchers_count}

+


From 880d1834ffed9c31791b242aba099c1c98e431e6 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 25 Jul 2025 18:34:12 +0900 Subject: [PATCH 311/432] test(svelte-query/useMutationState): simplify 'queryFn' and replace 'queryByText' with 'getByText' (#9489) Co-authored-by: Jonghyeon Ko --- .../tests/useMutationState/BaseExample.svelte | 8 +- .../useMutationState/useMutationState.test.ts | 74 +++++++++---------- 2 files changed, 39 insertions(+), 43 deletions(-) diff --git a/packages/svelte-query/tests/useMutationState/BaseExample.svelte b/packages/svelte-query/tests/useMutationState/BaseExample.svelte index ce85130099..1fb28a3668 100644 --- a/packages/svelte-query/tests/useMutationState/BaseExample.svelte +++ b/packages/svelte-query/tests/useMutationState/BaseExample.svelte @@ -28,9 +28,5 @@ {JSON.stringify(statuses)}
- - + + diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts index 14844c23d2..44ab27f85d 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.test.ts @@ -1,5 +1,6 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' +import { sleep } from '@tanstack/query-test-utils' import BaseExample from './BaseExample.svelte' describe('useMutationState', () => { @@ -12,10 +13,12 @@ describe('useMutationState', () => { }) test('Run few mutation functions and check from useMutationState', async () => { - const successMutationFn = vi.fn() - const errorMutationFn = vi.fn().mockImplementation(() => { - throw 'error' - }) + const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) + const errorMutationFn = vi + .fn() + .mockImplementation(() => + sleep(20).then(() => Promise.reject(new Error('error'))), + ) const rendered = render(BaseExample, { props: { @@ -23,7 +26,6 @@ describe('useMutationState', () => { mutationKey: ['success'], mutationFn: successMutationFn, }, - errorMutationOpts: { mutationKey: ['error'], mutationFn: errorMutationFn, @@ -31,24 +33,24 @@ describe('useMutationState', () => { }, }) - fireEvent.click(rendered.getByTestId('success')) - await vi.advanceTimersByTimeAsync(0) + fireEvent.click(rendered.getByText('success')) + await vi.advanceTimersByTimeAsync(11) expect(successMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') + expect(rendered.getByText('["success"]')).toBeInTheDocument() - fireEvent.click(rendered.getByTestId('error')) - await vi.advanceTimersByTimeAsync(0) + fireEvent.click(rendered.getByText('error')) + await vi.advanceTimersByTimeAsync(21) expect(errorMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual( - '["success","error"]', - ) + expect(rendered.getByText('["success","error"]')).toBeInTheDocument() }) test('Can select specific type of mutation ( i.e: error only )', async () => { - const successMutationFn = vi.fn() - const errorMutationFn = vi.fn().mockImplementation(() => { - throw 'error' - }) + const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) + const errorMutationFn = vi + .fn() + .mockImplementation(() => + sleep(20).then(() => Promise.reject(new Error('error'))), + ) const rendered = render(BaseExample, { props: { @@ -56,34 +58,34 @@ describe('useMutationState', () => { mutationKey: ['success'], mutationFn: successMutationFn, }, - errorMutationOpts: { mutationKey: ['error'], mutationFn: errorMutationFn, }, - mutationStateOpts: { filters: { status: 'error' }, }, }, }) - fireEvent.click(rendered.getByTestId('success')) - await vi.advanceTimersByTimeAsync(0) + fireEvent.click(rendered.getByText('success')) + await vi.advanceTimersByTimeAsync(11) expect(successMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('[]') + expect(rendered.getByText('[]')).toBeInTheDocument() - fireEvent.click(rendered.getByTestId('error')) - await vi.advanceTimersByTimeAsync(0) + fireEvent.click(rendered.getByText('error')) + await vi.advanceTimersByTimeAsync(21) expect(errorMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["error"]') + expect(rendered.getByText('["error"]')).toBeInTheDocument() }) test('Can select specific mutation using mutation key', async () => { - const successMutationFn = vi.fn() - const errorMutationFn = vi.fn().mockImplementation(() => { - throw 'error' - }) + const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) + const errorMutationFn = vi + .fn() + .mockImplementation(() => + sleep(20).then(() => Promise.reject(new Error('error'))), + ) const rendered = render(BaseExample, { props: { @@ -91,26 +93,24 @@ describe('useMutationState', () => { mutationKey: ['success'], mutationFn: successMutationFn, }, - errorMutationOpts: { mutationKey: ['error'], mutationFn: errorMutationFn, }, - mutationStateOpts: { filters: { mutationKey: ['success'] }, }, }, }) - fireEvent.click(rendered.getByTestId('success')) - await vi.advanceTimersByTimeAsync(0) + fireEvent.click(rendered.getByText('success')) + await vi.advanceTimersByTimeAsync(11) expect(successMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') + expect(rendered.getByText('["success"]')).toBeInTheDocument() - fireEvent.click(rendered.getByTestId('error')) - await vi.advanceTimersByTimeAsync(0) + fireEvent.click(rendered.getByText('error')) + await vi.advanceTimersByTimeAsync(21) expect(errorMutationFn).toHaveBeenCalledTimes(1) - expect(rendered.getByTestId('result').innerHTML).toEqual('["success"]') + expect(rendered.getByText('["success"]')).toBeInTheDocument() }) }) From c273ba4815d7f0fd5a4d02a1642d20fc2ac3f06c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 25 Jul 2025 18:37:35 +0900 Subject: [PATCH 312/432] test(svelte-query/createInfiniteQuery): add 'sleep', remove 'Number' in 'queryFn', and replace 'queryByText' with 'getByText' (#9492) Co-authored-by: Jonghyeon Ko --- .../tests/createInfiniteQuery/BaseExample.svelte | 3 ++- .../tests/createInfiniteQuery/SelectExample.svelte | 3 ++- .../createInfiniteQuery/createInfiniteQuery.test.ts | 12 ++++-------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte index ce33e17b90..3ad7a0d51c 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/BaseExample.svelte @@ -3,6 +3,7 @@ import { createInfiniteQuery } from '../../src/index.js' import type { QueryObserverResult } from '@tanstack/query-core' import type { Writable } from 'svelte/store' + import { sleep } from '@tanstack/query-test-utils' export let states: Writable> @@ -11,7 +12,7 @@ const query = createInfiniteQuery( { queryKey: ['test'], - queryFn: ({ pageParam }) => Number(pageParam), + queryFn: ({ pageParam }) => sleep(10).then(() => pageParam), getNextPageParam: (lastPage) => lastPage + 1, initialPageParam: 0, }, diff --git a/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte b/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte index c96a483842..d860bfbd7b 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte +++ b/packages/svelte-query/tests/createInfiniteQuery/SelectExample.svelte @@ -3,6 +3,7 @@ import { createInfiniteQuery } from '../../src/index.js' import type { QueryObserverResult } from '@tanstack/query-core' import type { Writable } from 'svelte/store' + import { sleep } from '@tanstack/query-test-utils' export let states: Writable> @@ -11,7 +12,7 @@ const query = createInfiniteQuery( { queryKey: ['test'], - queryFn: () => Promise.resolve({ count: 1 }), + queryFn: () => sleep(10).then(() => ({ count: 1 })), select: (data) => ({ pages: data.pages.map((x) => `count: ${x.count}`), pageParams: data.pageParams, diff --git a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts index a4f5fea7a8..f01e3bac04 100644 --- a/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts +++ b/packages/svelte-query/tests/createInfiniteQuery/createInfiniteQuery.test.ts @@ -24,13 +24,12 @@ describe('createInfiniteQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(0) - expect(rendered.queryByText('Status: success')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Status: success')).toBeInTheDocument() const states = get(statesStore) expect(states).toHaveLength(2) - expect(states[0]).toEqual({ data: undefined, dataUpdatedAt: 0, @@ -67,7 +66,6 @@ describe('createInfiniteQuery', () => { fetchStatus: 'fetching', promise: expect.any(Promise), }) - expect(states[1]).toEqual({ data: { pages: [0], pageParams: [0] }, dataUpdatedAt: expect.any(Number), @@ -115,18 +113,16 @@ describe('createInfiniteQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(0) - expect(rendered.queryByText('count: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('count: 1')).toBeInTheDocument() const states = get(statesStore) expect(states).toHaveLength(2) - expect(states[0]).toMatchObject({ data: undefined, isSuccess: false, }) - expect(states[1]).toMatchObject({ data: { pages: ['count: 1'] }, isSuccess: true, From 80242d6ee6ed125064c386386253105d260692b8 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 25 Jul 2025 18:40:09 +0900 Subject: [PATCH 313/432] test(svelte-query/createMutation): add 'sleep' in 'mutationFn' and replace 'queryByText' with 'getByText' (#9491) Co-authored-by: Jonghyeon Ko --- .../createMutation/OnSuccessExample.svelte | 3 ++- .../tests/createMutation/ResetExample.svelte | 8 +++--- .../createMutation/createMutation.test.ts | 27 ++++++++----------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte b/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte index 7f338ede5d..ae9ba3da02 100644 --- a/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte +++ b/packages/svelte-query/tests/createMutation/OnSuccessExample.svelte @@ -2,6 +2,7 @@ import { writable } from 'svelte/store' import { QueryClient } from '@tanstack/query-core' import { createMutation, setQueryClientContext } from '../../src/index.js' + import { sleep } from '@tanstack/query-test-utils' export let onSuccessMock: any export let onSettledMock: any @@ -12,7 +13,7 @@ setQueryClientContext(queryClient) const mutation = createMutation({ - mutationFn: (vars: { count: number }) => Promise.resolve(vars.count), + mutationFn: (vars: { count: number }) => sleep(10).then(() => vars.count), onSuccess: (data) => { onSuccessMock(data) }, diff --git a/packages/svelte-query/tests/createMutation/ResetExample.svelte b/packages/svelte-query/tests/createMutation/ResetExample.svelte index 5ff0a76f53..04e0987362 100644 --- a/packages/svelte-query/tests/createMutation/ResetExample.svelte +++ b/packages/svelte-query/tests/createMutation/ResetExample.svelte @@ -1,16 +1,14 @@ diff --git a/packages/svelte-query/tests/createMutation/createMutation.test.ts b/packages/svelte-query/tests/createMutation/createMutation.test.ts index 31995e1541..9cccd59ef5 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.test.ts @@ -20,14 +20,12 @@ describe('createMutation', () => { expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await vi.advanceTimersByTimeAsync(0) - expect( - rendered.queryByText('Error: Expected mock error'), - ).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Error: Expected mock error')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Reset/i })) - await vi.advanceTimersByTimeAsync(0) - expect(rendered.queryByText('Error: undefined')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Error: undefined')).toBeInTheDocument() }) test('Able to call `onSuccess` and `onSettled` after each successful mutate', async () => { @@ -46,7 +44,7 @@ describe('createMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(11) expect(rendered.queryByText('Count: 3')).toBeInTheDocument() expect(onSuccessMock).toHaveBeenCalledTimes(3) @@ -67,14 +65,11 @@ describe('createMutation', () => { const mutationFn = vi.fn<(value: Value) => Promise>() - mutationFn.mockImplementationOnce(() => { - return Promise.reject(`Expected mock error`) - }) + mutationFn.mockImplementationOnce(() => + sleep(20).then(() => Promise.reject(`Expected mock error`)), + ) - mutationFn.mockImplementation(async (value) => { - await sleep(5) - return Promise.resolve(value) - }) + mutationFn.mockImplementation((value) => sleep(10).then(() => value)) const rendered = render(FailureExample, { props: { @@ -86,7 +81,7 @@ describe('createMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) expect(rendered.getByText('Data: undefined')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(21) expect(rendered.getByText('Status: error')).toBeInTheDocument() expect(rendered.getByText('Failure Count: 1')).toBeInTheDocument() expect( @@ -96,7 +91,7 @@ describe('createMutation', () => { fireEvent.click(rendered.getByRole('button', { name: /Mutate/i })) await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('Status: pending')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Status: success')).toBeInTheDocument() expect(rendered.getByText('Data: 2')).toBeInTheDocument() expect(rendered.getByText('Failure Count: 0')).toBeInTheDocument() From 234f2f4c6560c9555bb3aa04279040449e4becca Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 25 Jul 2025 18:42:35 +0900 Subject: [PATCH 314/432] test(svelte-query/createQuery): simplify 'queryFn' and replace 'queryByText' with 'getByText' (#9490) Co-authored-by: Jonghyeon Ko --- .../tests/createQuery/DisabledExample.svelte | 5 +- .../tests/createQuery/PlaceholderData.svelte | 5 +- .../tests/createQuery/RefetchExample.svelte | 5 +- .../tests/createQuery/createQuery.test.ts | 70 +++++++------------ 4 files changed, 27 insertions(+), 58 deletions(-) diff --git a/packages/svelte-query/tests/createQuery/DisabledExample.svelte b/packages/svelte-query/tests/createQuery/DisabledExample.svelte index 517a4813af..0ee100efad 100644 --- a/packages/svelte-query/tests/createQuery/DisabledExample.svelte +++ b/packages/svelte-query/tests/createQuery/DisabledExample.svelte @@ -13,10 +13,7 @@ const options = derived(count, ($count) => ({ queryKey: ['test', $count], - queryFn: async () => { - await sleep(5) - return $count - }, + queryFn: () => sleep(10).then(() => $count), enabled: $count === 0, })) diff --git a/packages/svelte-query/tests/createQuery/PlaceholderData.svelte b/packages/svelte-query/tests/createQuery/PlaceholderData.svelte index 587861ccab..6be8b5314e 100644 --- a/packages/svelte-query/tests/createQuery/PlaceholderData.svelte +++ b/packages/svelte-query/tests/createQuery/PlaceholderData.svelte @@ -12,10 +12,7 @@ const options = derived(count, ($count) => ({ queryKey: ['test', $count], - queryFn: async () => { - await sleep(5) - return $count - }, + queryFn: () => sleep(10).then(() => $count), placeholderData: keepPreviousData, })) diff --git a/packages/svelte-query/tests/createQuery/RefetchExample.svelte b/packages/svelte-query/tests/createQuery/RefetchExample.svelte index ae37ed14c0..9e89b8de37 100644 --- a/packages/svelte-query/tests/createQuery/RefetchExample.svelte +++ b/packages/svelte-query/tests/createQuery/RefetchExample.svelte @@ -13,10 +13,7 @@ const options = derived(count, ($count) => ({ queryKey: ['test'], - queryFn: async () => { - await sleep(5) - return ++$count - }, + queryFn: () => sleep(10).then(() => ++$count), })) const query = createQuery(options, queryClient) diff --git a/packages/svelte-query/tests/createQuery/createQuery.test.ts b/packages/svelte-query/tests/createQuery/createQuery.test.ts index 7a3a764d47..f213a16251 100644 --- a/packages/svelte-query/tests/createQuery/createQuery.test.ts +++ b/packages/svelte-query/tests/createQuery/createQuery.test.ts @@ -24,10 +24,7 @@ describe('createQuery', () => { const options = { queryKey: ['test'], - queryFn: async () => { - await sleep(5) - return 'Success' - }, + queryFn: () => sleep(10).then(() => 'Success'), } const rendered = render(BaseExample, { @@ -38,13 +35,12 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(6) - expect(rendered.queryByText('Status: success')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Status: success')).toBeInTheDocument() const states = get(statesStore) expect(states).toHaveLength(2) - expect(states[0]).toMatchObject({ data: undefined, dataUpdatedAt: 0, @@ -71,7 +67,6 @@ describe('createQuery', () => { status: 'pending', fetchStatus: 'fetching', }) - expect(states[1]).toMatchObject({ data: 'Success', dataUpdatedAt: expect.any(Number), @@ -105,9 +100,10 @@ describe('createQuery', () => { const options = { queryKey: ['test'], - queryFn: () => Promise.reject(new Error('Rejected')), + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Rejected'))), retry: 1, - retryDelay: 1, + retryDelay: 10, } const rendered = render(BaseExample, { @@ -118,13 +114,12 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(2) + await vi.advanceTimersByTimeAsync(31) expect(rendered.getByText('Status: error')).toBeInTheDocument() const states = get(statesStore) expect(states).toHaveLength(3) - expect(states[0]).toMatchObject({ data: undefined, dataUpdatedAt: 0, @@ -151,7 +146,6 @@ describe('createQuery', () => { status: 'pending', fetchStatus: 'fetching', }) - expect(states[1]).toMatchObject({ data: undefined, dataUpdatedAt: 0, @@ -178,7 +172,6 @@ describe('createQuery', () => { status: 'pending', fetchStatus: 'fetching', }) - expect(states[2]).toMatchObject({ data: undefined, dataUpdatedAt: 0, @@ -212,10 +205,7 @@ describe('createQuery', () => { const optionsStore = writable({ queryKey: ['test'], - queryFn: async () => { - await sleep(5) - return 'Success' - }, + queryFn: () => sleep(10).then(() => 'Success'), }) const rendered = render(BaseExample, { @@ -226,8 +216,8 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(6) - expect(rendered.queryByText('Status: success')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Status: success')).toBeInTheDocument() }) test('Accept a derived store for options', async () => { @@ -237,10 +227,7 @@ describe('createQuery', () => { const derivedStore = derived(writableStore, ($store) => ({ queryKey: [$store], - queryFn: async () => { - await sleep(5) - return 'Success' - }, + queryFn: () => sleep(10).then(() => 'Success'), })) const rendered = render(BaseExample, { @@ -251,7 +238,7 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.queryByText('Status: success')).toBeInTheDocument() }) @@ -262,10 +249,7 @@ describe('createQuery', () => { const derivedStore = derived(writableStore, ($store) => ({ queryKey: [$store], - queryFn: async () => { - await sleep(5) - return $store - }, + queryFn: () => sleep(10).then(() => $store), })) const rendered = render(BaseExample, { @@ -278,20 +262,20 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(6) - expect(rendered.queryByText('Data: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Data: 1')).toBeInTheDocument() expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() writableStore.set(2) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.queryByText('Data: 1')).not.toBeInTheDocument() - expect(rendered.queryByText('Data: 2')).toBeInTheDocument() + expect(rendered.getByText('Data: 2')).toBeInTheDocument() writableStore.set(1) - await vi.advanceTimersByTimeAsync(6) - expect(rendered.queryByText('Data: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Data: 1')).toBeInTheDocument() expect(rendered.queryByText('Data: 2')).not.toBeInTheDocument() }) @@ -305,11 +289,11 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: 0')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: 'setCount' })) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: 1')).toBeInTheDocument() const states = get(statesStore) @@ -323,7 +307,6 @@ describe('createQuery', () => { isSuccess: false, isPlaceholderData: false, }) - // Fetched expect(states[1]).toMatchObject({ data: 0, @@ -331,7 +314,6 @@ describe('createQuery', () => { isSuccess: true, isPlaceholderData: false, }) - // Set state expect(states[2]).toMatchObject({ data: 0, @@ -339,7 +321,6 @@ describe('createQuery', () => { isSuccess: true, isPlaceholderData: true, }) - // New data expect(states[3]).toMatchObject({ data: 1, @@ -358,7 +339,7 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: 0')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Increment/i })) @@ -376,21 +357,18 @@ describe('createQuery', () => { isFetching: true, isSuccess: false, }) - // Fetched query expect(states[1]).toMatchObject({ data: 0, isFetching: false, isSuccess: true, }) - // Switch to query disable expect(states[2]).toMatchObject({ data: undefined, isFetching: false, isSuccess: false, }) - // Fetched disabled query expect(states[3]).toMatchObject({ data: undefined, @@ -408,12 +386,12 @@ describe('createQuery', () => { }, }) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: 1')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /Remove/i })) fireEvent.click(rendered.getByRole('button', { name: /Refetch/i })) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: 2')).toBeInTheDocument() const states = get(statesStore) From 52fdff2b3d61ec18d67b3740d6338243c7b50c15 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 26 Jul 2025 14:14:55 +0900 Subject: [PATCH 315/432] test(svelte-query/{QueryClientProvider,useIsFetching,useIsMutating}): simplify 'queryFn' (#9495) --- .../tests/QueryClientProvider/ChildComponent.svelte | 5 +---- .../tests/QueryClientProvider/QueryClientProvider.test.ts | 2 +- packages/svelte-query/tests/useIsFetching/BaseExample.svelte | 5 +---- .../svelte-query/tests/useIsFetching/useIsFetching.test.ts | 2 +- packages/svelte-query/tests/useIsMutating/BaseExample.svelte | 5 +---- .../svelte-query/tests/useIsMutating/useIsMutating.test.ts | 2 +- 6 files changed, 6 insertions(+), 15 deletions(-) diff --git a/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte b/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte index 3c5414b059..7fef03d0d9 100644 --- a/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte +++ b/packages/svelte-query/tests/QueryClientProvider/ChildComponent.svelte @@ -4,10 +4,7 @@ const query = createQuery({ queryKey: ['hello'], - queryFn: async () => { - await sleep(5) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), }) diff --git a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts index f1b4fae371..66a40915f5 100644 --- a/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts +++ b/packages/svelte-query/tests/QueryClientProvider/QueryClientProvider.test.ts @@ -21,7 +21,7 @@ describe('QueryClientProvider', () => { }, }) - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: test')).toBeInTheDocument() expect(queryCache.find({ queryKey: ['hello'] })).toBeDefined() diff --git a/packages/svelte-query/tests/useIsFetching/BaseExample.svelte b/packages/svelte-query/tests/useIsFetching/BaseExample.svelte index 16f13a808d..844d60bf80 100644 --- a/packages/svelte-query/tests/useIsFetching/BaseExample.svelte +++ b/packages/svelte-query/tests/useIsFetching/BaseExample.svelte @@ -11,10 +11,7 @@ const options = derived(ready, ($ready) => ({ queryKey: ['test'], - queryFn: async () => { - await sleep(5) - return 'test' - }, + queryFn: () => sleep(10).then(() => 'test'), enabled: $ready, })) diff --git a/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts index 1a014c9996..5c0cd59da8 100644 --- a/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts +++ b/packages/svelte-query/tests/useIsFetching/useIsFetching.test.ts @@ -19,7 +19,7 @@ describe('useIsFetching', () => { fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) }) diff --git a/packages/svelte-query/tests/useIsMutating/BaseExample.svelte b/packages/svelte-query/tests/useIsMutating/BaseExample.svelte index 43df62a36a..e2c7523425 100644 --- a/packages/svelte-query/tests/useIsMutating/BaseExample.svelte +++ b/packages/svelte-query/tests/useIsMutating/BaseExample.svelte @@ -9,10 +9,7 @@ const mutation = createMutation( { mutationKey: ['mutation-1'], - mutationFn: async () => { - await sleep(5) - return 'data' - }, + mutationFn: () => sleep(10).then(() => 'data'), }, queryClient, ) diff --git a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts index f6c3c00762..019ae45368 100644 --- a/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts +++ b/packages/svelte-query/tests/useIsMutating/useIsMutating.test.ts @@ -19,7 +19,7 @@ describe('useIsMutating', () => { fireEvent.click(rendered.getByRole('button', { name: /Trigger/i })) await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isMutating: 1')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('isMutating: 0')).toBeInTheDocument() }) }) From a3f49cf17fc86f2a0c6d1d9e93a2c54a7ba2a30b Mon Sep 17 00:00:00 2001 From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> Date: Sat, 26 Jul 2025 18:16:10 +1000 Subject: [PATCH 316/432] ci: replace fast-glob with tinyglobby (#9501) * ci: replace fast-glob with tinyglobby * Add back cipublish --- .nvmrc | 2 +- package.json | 8 ++++---- pnpm-lock.yaml | 21 +++++++++++++++------ scripts/generateDocs.ts | 4 ++-- scripts/verify-links.ts | 4 ++-- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/.nvmrc b/.nvmrc index 5003ba8fd9..9d11232a63 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24.2.0 +24.4.1 diff --git a/package.json b/package.json index 3d0c5886f6..acce0acc68 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "https://github.com/TanStack/query.git" }, - "packageManager": "pnpm@10.7.0", + "packageManager": "pnpm@10.13.1", "type": "module", "scripts": { "clean": "pnpm --filter \"./packages/**\" run clean", @@ -28,8 +28,8 @@ "prettier": "prettier --experimental-cli --ignore-unknown '**/*'", "prettier:write": "pnpm run prettier --write", "docs:generate": "node scripts/generateDocs.ts", - "cipublish": "node scripts/publish.ts", - "verify-links": "node scripts/verify-links.ts" + "verify-links": "node scripts/verify-links.ts", + "cipublish": "node scripts/publish.ts" }, "nx": { "includedScripts": [ @@ -52,7 +52,6 @@ "esbuild-plugin-file-path-extensions": "^2.1.4", "eslint": "^9.15.0", "eslint-plugin-react-hooks": "^6.0.0-rc.1", - "fast-glob": "^3.3.3", "jsdom": "^25.0.1", "knip": "^5.50.2", "markdown-link-extractor": "^4.0.2", @@ -64,6 +63,7 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "sherif": "^1.6.1", + "tinyglobby": "^0.2.14", "tsup": "^8.4.0", "typescript": "5.8.3", "typescript50": "npm:typescript@5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f6bda5bd2..75ef52b257 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,9 +77,6 @@ importers: eslint-plugin-react-hooks: specifier: ^6.0.0-rc.1 version: 6.0.0-rc.1(eslint@9.29.0(jiti@2.4.2)) - fast-glob: - specifier: ^3.3.3 - version: 3.3.3 jsdom: specifier: ^25.0.1 version: 25.0.1 @@ -113,6 +110,9 @@ importers: sherif: specifier: ^1.6.1 version: 1.6.1 + tinyglobby: + specifier: ^0.2.14 + version: 0.2.14 tsup: specifier: ^8.4.0 version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) @@ -14138,6 +14138,10 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -29355,6 +29359,11 @@ snapshots: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@1.0.2: {} tinyrainbow@2.0.0: {} @@ -29499,7 +29508,7 @@ snapshots: source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 tree-kill: 1.2.2 optionalDependencies: '@microsoft/api-extractor': 7.48.1(@types/node@22.15.3) @@ -30170,7 +30179,7 @@ snapshots: picomatch: 4.0.2 postcss: 8.5.6 rollup: 4.40.2 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 optionalDependencies: '@types/node': 22.15.3 fsevents: 2.3.3 @@ -30203,7 +30212,7 @@ snapshots: std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.13 + tinyglobby: 0.2.14 tinypool: 1.0.2 tinyrainbow: 2.0.0 vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) diff --git a/scripts/generateDocs.ts b/scripts/generateDocs.ts index 06f0fc5bfc..1b37d6d923 100644 --- a/scripts/generateDocs.ts +++ b/scripts/generateDocs.ts @@ -2,7 +2,7 @@ import { resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { readFileSync, writeFileSync } from 'node:fs' import { generateReferenceDocs } from '@tanstack/config/typedoc' -import fg from 'fast-glob' +import { glob } from 'tinyglobby' const __dirname = fileURLToPath(new URL('.', import.meta.url)) @@ -39,7 +39,7 @@ await generateReferenceDocs({ const markdownFilesPattern = 'docs/framework/{angular,svelte}/reference/**/*.md' // Find all markdown files matching the pattern -const markdownFiles = await fg(markdownFilesPattern) +const markdownFiles = await glob(markdownFilesPattern) console.log(`Found ${markdownFiles.length} markdown files to process\n`) diff --git a/scripts/verify-links.ts b/scripts/verify-links.ts index 081382ecae..268a0ac90a 100644 --- a/scripts/verify-links.ts +++ b/scripts/verify-links.ts @@ -1,6 +1,6 @@ import { existsSync, readFileSync, statSync } from 'node:fs' import path, { resolve } from 'node:path' -import fg from 'fast-glob' +import { glob } from 'tinyglobby' // @ts-ignore Could not find a declaration file for module 'markdown-link-extractor'. import markdownLinkExtractor from 'markdown-link-extractor' @@ -86,7 +86,7 @@ function fileExistsForLink( async function findMarkdownLinks() { // Find all markdown files in docs directory - const markdownFiles = await fg('docs/**/*.md', { + const markdownFiles = await glob('docs/**/*.md', { ignore: ['**/node_modules/**'], }) From 3cc59be4c678d3154b60c76027962d7feee8084b Mon Sep 17 00:00:00 2001 From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> Date: Sat, 26 Jul 2025 21:46:39 +1000 Subject: [PATCH 317/432] ci: add labeler script from router (#9503) * ci: add labeler script from router * Move to root * Format --- .github/labeler.yml | 46 ------------- .github/workflows/labeler.yml | 9 ++- labeler-config.yml | 75 ++++++++++++++++++++ scripts/generate-labeler-config.ts | 106 +++++++++++++++++++++++++++++ 4 files changed, 188 insertions(+), 48 deletions(-) delete mode 100644 .github/labeler.yml create mode 100644 labeler-config.yml create mode 100644 scripts/generate-labeler-config.ts diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index 922ccaf298..0000000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,46 +0,0 @@ -'package: angular-query-devtools-experimental': - - 'packages/angular-query-devtools-experimental/**/*' -'package: angular-query-experimental': - - 'packages/angular-query-experimental/**/*' -'package: eslint-plugin-query': - - 'packages/eslint-plugin-query/**/*' -'package: query-async-storage-persister': - - 'packages/query-async-storage-persister/**/*' -'package: query-broadcast-client-experimental': - - 'packages/query-broadcast-client-experimental/**/*' -'package: query-codemods': - - 'packages/query-codemods/**/*' -'package: query-core': - - 'packages/query-core/**/*' -'package: query-devtools': - - 'packages/query-devtools/**/*' -'package: query-persist-client-core': - - 'packages/query-persist-client-core/**/*' -'package: query-sync-storage-persister': - - 'packages/query-sync-storage-persister/**/*' -'package: react-query': - - 'packages/react-query/**/*' -'package: react-query-devtools': - - 'packages/react-query-devtools/**/*' -'package: react-query-next-experimental': - - 'packages/react-query-next-experimental/**/*' -'package: react-query-persist-client': - - 'packages/react-query-persist-client/**/*' -'package: solid-query': - - 'packages/solid-query/**/*' -'package: solid-query-devtools': - - 'packages/solid-query-devtools/**/*' -'package: solid-query-persist-client': - - 'packages/solid-query-persist-client/**/*' -'package: svelte-query': - - 'packages/svelte-query/**/*' -'package: svelte-query-devtools': - - 'packages/svelte-query-devtools/**/*' -'package: svelte-query-persist-client': - - 'packages/svelte-query-persist-client/**/*' -'package: vue-query': - - 'packages/vue-query/**/*' -'package: vue-query-devtools': - - 'packages/vue-query-devtools/**/*' -'documentation': - - 'docs/**/*' diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index a271cb7e68..918ee80661 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -3,10 +3,15 @@ name: Labeler on: - pull_request_target +permissions: + contents: read + pull-requests: write + jobs: - triage: + labeler: runs-on: ubuntu-latest steps: - - uses: actions/labeler@v4.3.0 + - uses: actions/labeler@v5.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} + configuration-path: labeler-config.yml diff --git a/labeler-config.yml b/labeler-config.yml new file mode 100644 index 0000000000..5b00b1016c --- /dev/null +++ b/labeler-config.yml @@ -0,0 +1,75 @@ +'package: angular-query-devtools-experimental': + - changed-files: + - any-glob-to-any-file: 'packages/angular-query-devtools-experimental/**/*' +'package: angular-query-experimental': + - changed-files: + - any-glob-to-any-file: 'packages/angular-query-experimental/**/*' +'package: angular-query-persist-client': + - changed-files: + - any-glob-to-any-file: 'packages/angular-query-persist-client/**/*' +'package: eslint-plugin-query': + - changed-files: + - any-glob-to-any-file: 'packages/eslint-plugin-query/**/*' +'package: query-async-storage-persister': + - changed-files: + - any-glob-to-any-file: 'packages/query-async-storage-persister/**/*' +'package: query-broadcast-client-experimental': + - changed-files: + - any-glob-to-any-file: 'packages/query-broadcast-client-experimental/**/*' +'package: query-codemods': + - changed-files: + - any-glob-to-any-file: 'packages/query-codemods/**/*' +'package: query-core': + - changed-files: + - any-glob-to-any-file: 'packages/query-core/**/*' +'package: query-devtools': + - changed-files: + - any-glob-to-any-file: 'packages/query-devtools/**/*' +'package: query-persist-client-core': + - changed-files: + - any-glob-to-any-file: 'packages/query-persist-client-core/**/*' +'package: query-sync-storage-persister': + - changed-files: + - any-glob-to-any-file: 'packages/query-sync-storage-persister/**/*' +'package: query-test-utils': + - changed-files: + - any-glob-to-any-file: 'packages/query-test-utils/**/*' +'package: react-query': + - changed-files: + - any-glob-to-any-file: 'packages/react-query/**/*' +'package: react-query-devtools': + - changed-files: + - any-glob-to-any-file: 'packages/react-query-devtools/**/*' +'package: react-query-next-experimental': + - changed-files: + - any-glob-to-any-file: 'packages/react-query-next-experimental/**/*' +'package: react-query-persist-client': + - changed-files: + - any-glob-to-any-file: 'packages/react-query-persist-client/**/*' +'package: solid-query': + - changed-files: + - any-glob-to-any-file: 'packages/solid-query/**/*' +'package: solid-query-devtools': + - changed-files: + - any-glob-to-any-file: 'packages/solid-query-devtools/**/*' +'package: solid-query-persist-client': + - changed-files: + - any-glob-to-any-file: 'packages/solid-query-persist-client/**/*' +'package: svelte-query': + - changed-files: + - any-glob-to-any-file: 'packages/svelte-query/**/*' +'package: svelte-query-devtools': + - changed-files: + - any-glob-to-any-file: 'packages/svelte-query-devtools/**/*' +'package: svelte-query-persist-client': + - changed-files: + - any-glob-to-any-file: 'packages/svelte-query-persist-client/**/*' +'package: vue-query': + - changed-files: + - any-glob-to-any-file: 'packages/vue-query/**/*' +'package: vue-query-devtools': + - changed-files: + - any-glob-to-any-file: 'packages/vue-query-devtools/**/*' +'documentation': + - changed-files: + - any-glob-to-any-file: 'docs/**/*' diff --git a/scripts/generate-labeler-config.ts b/scripts/generate-labeler-config.ts new file mode 100644 index 0000000000..77f4842d1b --- /dev/null +++ b/scripts/generate-labeler-config.ts @@ -0,0 +1,106 @@ +import * as fs from 'node:fs' +import * as path from 'node:path' +import * as prettier from 'prettier' + +/** Pairs of package labels and their corresponding paths */ +type LabelerPair = [string, string] + +function readPairsFromFs(): Array { + const ignored = new Set(['.DS_Store']) + + const pairs: Array = [] + + // Add subfolders in the packages folder, i.e. packages/** + fs.readdirSync(path.resolve('packages')) + .filter((folder) => !ignored.has(folder)) + .forEach((folder) => { + // Check if package.json exists for the folder before adding it + if ( + fs.existsSync( + path.resolve(path.join('packages', folder, 'package.json')), + ) + ) { + pairs.push([`package: ${folder}`, `packages/${folder}/**/*`]) + } else { + console.info( + `Skipping \`${folder}\` as it does not have a \`package.json\` file.`, + ) + } + }) + + // Sort by package name in alphabetical order + pairs.sort((a, b) => a[0].localeCompare(b[0])) + + return pairs +} + +async function generateLabelerYaml(pairs: Array): Promise { + function s(n = 1) { + return ' '.repeat(n) + } + + // Convert the pairs into valid yaml + const formattedPairs = pairs + .map(([packageLabel, packagePath]) => { + const result = [ + `'${packageLabel}':`, + `${s(2)}-${s(1)}changed-files:`, + `${s(4)}-${s(1)}any-glob-to-any-file:${s(1)}'${packagePath}'`, + ].join('\n') + + return result + }) + .join('\n') + + // Get the location of the Prettier config file + const prettierConfigPath = await prettier.resolveConfigFile() + if (!prettierConfigPath) { + throw new Error( + 'No Prettier config file found. Please ensure you have a Prettier config file in your project.', + ) + } + console.info('using prettier config file at:', prettierConfigPath) + + // Resolve the Prettier config + const prettierConfig = await prettier.resolveConfig(prettierConfigPath) + console.info('using resolved prettier config:', prettierConfig) + + // Format the YAML string using Prettier + const formattedStr = await prettier.format(formattedPairs, { + parser: 'yaml', + ...prettierConfig, + }) + + return formattedStr +} + +async function run() { + console.info('Generating labeler config...') + + // Generate the pairs of package labels and their corresponding paths + const pairs = readPairsFromFs() + + // Always add the docs folder + pairs.push(['documentation', 'docs/**/*']) + + // Convert the pairs into valid yaml + const yamlStr = await generateLabelerYaml(pairs) + + // Write to 'labeler-config.yml' + const configPath = path.resolve('labeler-config.yml') + fs.writeFileSync(configPath, yamlStr, { + encoding: 'utf-8', + }) + + console.info(`Generated labeler config at \`${configPath}\`!`) + return +} + +try { + run().then(() => { + process.exit(0) + }) +} catch (error) { + console.error('Error generating labeler config:', error) + process.exit(1) +} From e9d9080705c4110ea4ed0942716ee668c78f3d96 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 26 Jul 2025 22:21:05 +0900 Subject: [PATCH 318/432] test(svelte-query/createQueries): simplify 'queryFn' and add test for success when queries reslove at different times (#9494) * test(svelte-query/createQueries): simplify 'queryFn' and use precise time in 'advanceTimersByTimeAsync' * test(svelte-query/createQueries): add test for success when queries reslove at different times --- .../tests/createQueries/CombineExample.svelte | 5 +-- .../tests/createQueries/createQueries.test.ts | 44 ++++++++++++++----- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/packages/svelte-query/tests/createQueries/CombineExample.svelte b/packages/svelte-query/tests/createQueries/CombineExample.svelte index 0d1ac9c531..a52cc70c42 100644 --- a/packages/svelte-query/tests/createQueries/CombineExample.svelte +++ b/packages/svelte-query/tests/createQueries/CombineExample.svelte @@ -11,10 +11,7 @@ { queries: ids.map((id) => ({ queryKey: [id], - queryFn: async () => { - await sleep(5) - return id - }, + queryFn: () => sleep(10).then(() => id), })), combine: (results) => { return { diff --git a/packages/svelte-query/tests/createQueries/createQueries.test.ts b/packages/svelte-query/tests/createQueries/createQueries.test.ts index 87cd7c24a2..5f1219aadd 100644 --- a/packages/svelte-query/tests/createQueries/createQueries.test.ts +++ b/packages/svelte-query/tests/createQueries/createQueries.test.ts @@ -21,17 +21,11 @@ describe('createQueries', () => { queries: [ { queryKey: ['key-1'], - queryFn: async () => { - await sleep(5) - return 'Success 1' - }, + queryFn: () => sleep(10).then(() => 'Success 1'), }, { queryKey: ['key-2'], - queryFn: async () => { - await sleep(5) - return 'Success 2' - }, + queryFn: () => sleep(10).then(() => 'Success 2'), }, ], }, @@ -39,15 +33,42 @@ describe('createQueries', () => { }, }) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('Status 1: pending')).toBeInTheDocument() expect(rendered.getByText('Status 2: pending')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Status 1: success')).toBeInTheDocument() expect(rendered.getByText('Status 2: success')).toBeInTheDocument() }) + test('Render and wait for success when queries resolve at different times', async () => { + const rendered = render(BaseExample, { + props: { + options: { + queries: [ + { + queryKey: ['key-1'], + queryFn: () => sleep(10).then(() => 'Success 1'), + }, + { + queryKey: ['key-2'], + queryFn: () => sleep(20).then(() => 'Success 2'), + }, + ], + }, + queryClient: new QueryClient(), + }, + }) + + expect(rendered.getByText('Status 1: pending')).toBeInTheDocument() + expect(rendered.getByText('Status 2: pending')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('Status 1: success')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Status 2: success')).toBeInTheDocument() + }) + test('Combine queries', async () => { const rendered = render(CombineExample, { props: { @@ -55,10 +76,9 @@ describe('createQueries', () => { }, }) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isPending: true')).toBeInTheDocument() - await vi.advanceTimersByTimeAsync(6) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('Data: 1,2,3')).toBeInTheDocument() }) }) From cc45977e397c8e10139a93b3a32c1475029bab5c Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 29 Jul 2025 23:05:45 +0900 Subject: [PATCH 319/432] test(query-core/mutationCache): add 'sleep' to callbacks and remove 'await' from 'executeMutation' using 'advanceTimersByTimeAsync' (#9506) --- .../src/__tests__/mutationCache.test.tsx | 259 ++++++++++-------- 1 file changed, 138 insertions(+), 121 deletions(-) diff --git a/packages/query-core/src/__tests__/mutationCache.test.tsx b/packages/query-core/src/__tests__/mutationCache.test.tsx index 7b812e1d67..8759a7ca98 100644 --- a/packages/query-core/src/__tests__/mutationCache.test.tsx +++ b/packages/query-core/src/__tests__/mutationCache.test.tsx @@ -21,19 +21,20 @@ describe('mutationCache', () => { const testCache = new MutationCache({ onError, onSuccess, onSettled }) const testClient = new QueryClient({ mutationCache: testCache }) - try { - await executeMutation( - testClient, - { - mutationKey: key, - mutationFn: () => Promise.reject(new Error('error')), - onMutate: () => 'context', - }, - 'vars', - ) - } catch {} + executeMutation( + testClient, + { + mutationKey: key, + mutationFn: () => + sleep(10).then(() => Promise.reject(new Error('error'))), + onMutate: () => 'context', + }, + 'vars', + ).catch(() => undefined) + await vi.advanceTimersByTimeAsync(10) const mutation = testCache.getAll()[0] + expect(onError).toHaveBeenCalledTimes(1) expect(onError).toHaveBeenCalledWith( new Error('error'), @@ -55,44 +56,45 @@ describe('mutationCache', () => { test('should be awaited', async () => { const key = queryKey() const states: Array = [] - const onError = async () => { - states.push(1) - await vi.advanceTimersByTimeAsync(1) - states.push(2) - } - const onSettled = async () => { - states.push(5) - await vi.advanceTimersByTimeAsync(1) - states.push(6) - } + const onError = () => + sleep(10).then(() => { + states.push(1) + states.push(2) + }) + const onSettled = () => + sleep(10).then(() => { + states.push(5) + states.push(6) + }) + const testCache = new MutationCache({ onError, onSettled }) const testClient = new QueryClient({ mutationCache: testCache }) - try { - await executeMutation( - testClient, - { - mutationKey: key, - mutationFn: () => Promise.reject(new Error('error')), - onError: async () => { + executeMutation( + testClient, + { + mutationKey: key, + mutationFn: () => + sleep(10).then(() => Promise.reject(new Error('error'))), + onError: () => + sleep(10).then(() => { states.push(3) - await vi.advanceTimersByTimeAsync(1) states.push(4) - }, - onSettled: async () => { + }), + onSettled: () => + sleep(10).then(() => { states.push(7) - await vi.advanceTimersByTimeAsync(1) states.push(8) - }, - }, - 'vars', - ) - } catch {} + }), + }, + 'vars', + ).catch(() => undefined) + await vi.advanceTimersByTimeAsync(50) - await vi.runAllTimersAsync() expect(states).toEqual([1, 2, 3, 4, 5, 6, 7, 8]) }) }) + describe('MutationCacheConfig success callbacks', () => { test('should call onSuccess and onSettled when a mutation is successful', async () => { const key = queryKey() @@ -102,19 +104,19 @@ describe('mutationCache', () => { const testCache = new MutationCache({ onError, onSuccess, onSettled }) const testClient = new QueryClient({ mutationCache: testCache }) - try { - await executeMutation( - testClient, - { - mutationKey: key, - mutationFn: () => Promise.resolve({ data: 5 }), - onMutate: () => 'context', - }, - 'vars', - ) - } catch {} + executeMutation( + testClient, + { + mutationKey: key, + mutationFn: () => sleep(10).then(() => ({ data: 5 })), + onMutate: () => 'context', + }, + 'vars', + ) + await vi.advanceTimersByTimeAsync(10) const mutation = testCache.getAll()[0] + expect(onSuccess).toHaveBeenCalledTimes(1) expect(onSuccess).toHaveBeenCalledWith( { data: 5 }, @@ -132,19 +134,20 @@ describe('mutationCache', () => { mutation, ) }) + test('should be awaited', async () => { const key = queryKey() const states: Array = [] - const onSuccess = async () => { - states.push(1) - await sleep(1) - states.push(2) - } - const onSettled = async () => { - states.push(5) - await sleep(1) - states.push(6) - } + const onSuccess = () => + sleep(10).then(() => { + states.push(1) + states.push(2) + }) + const onSettled = () => + sleep(10).then(() => { + states.push(5) + states.push(6) + }) const testCache = new MutationCache({ onSuccess, onSettled }) const testClient = new QueryClient({ mutationCache: testCache }) @@ -152,56 +155,56 @@ describe('mutationCache', () => { testClient, { mutationKey: key, - mutationFn: () => Promise.resolve({ data: 5 }), - onSuccess: async () => { - states.push(3) - await sleep(1) - states.push(4) - }, - onSettled: async () => { - states.push(7) - await sleep(1) - states.push(8) - }, + mutationFn: () => sleep(10).then(() => ({ data: 5 })), + onSuccess: () => + sleep(10).then(() => { + states.push(3) + states.push(4) + }), + onSettled: () => + sleep(10).then(() => { + states.push(7) + states.push(8) + }), }, 'vars', ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(50) expect(states).toEqual([1, 2, 3, 4, 5, 6, 7, 8]) }) }) + describe('MutationCacheConfig.onMutate', () => { - test('should be called before a mutation executes', async () => { + test('should be called before a mutation executes', () => { const key = queryKey() const onMutate = vi.fn() const testCache = new MutationCache({ onMutate }) const testClient = new QueryClient({ mutationCache: testCache }) - try { - await executeMutation( - testClient, - { - mutationKey: key, - mutationFn: () => Promise.resolve({ data: 5 }), - onMutate: () => 'context', - }, - 'vars', - ) - } catch {} + executeMutation( + testClient, + { + mutationKey: key, + mutationFn: () => sleep(10).then(() => ({ data: 5 })), + onMutate: () => 'context', + }, + 'vars', + ) const mutation = testCache.getAll()[0] + expect(onMutate).toHaveBeenCalledWith('vars', mutation) }) test('should be awaited', async () => { const key = queryKey() const states: Array = [] - const onMutate = async () => { - states.push(1) - await sleep(1) - states.push(2) - } + const onMutate = () => + sleep(10).then(() => { + states.push(1) + states.push(2) + }) const testCache = new MutationCache({ onMutate }) const testClient = new QueryClient({ mutationCache: testCache }) @@ -209,35 +212,38 @@ describe('mutationCache', () => { testClient, { mutationKey: key, - mutationFn: () => Promise.resolve({ data: 5 }), - onMutate: async () => { - states.push(3) - await sleep(1) - states.push(4) - }, + mutationFn: () => sleep(10).then(() => ({ data: 5 })), + onMutate: () => + sleep(10).then(() => { + states.push(3) + states.push(4) + }), }, 'vars', ) - await vi.runAllTimersAsync() + await vi.advanceTimersByTimeAsync(20) expect(states).toEqual([1, 2, 3, 4]) }) }) describe('find', () => { - test('should filter correctly', async () => { + test('should filter correctly', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) const key = ['mutation', 'vars'] - await executeMutation( + + executeMutation( testClient, { mutationKey: key, - mutationFn: () => Promise.resolve(), + mutationFn: () => sleep(10).then(() => undefined), }, 'vars', ) + const [mutation] = testCache.getAll() + expect(testCache.find({ mutationKey: key })).toEqual(mutation) expect( testCache.find({ mutationKey: ['mutation'], exact: false }), @@ -252,35 +258,37 @@ describe('mutationCache', () => { }) describe('findAll', () => { - test('should filter correctly', async () => { + test('should filter correctly', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) - await executeMutation( + + executeMutation( testClient, { mutationKey: ['a', 1], - mutationFn: () => Promise.resolve(), + mutationFn: () => sleep(10).then(() => undefined), }, 1, ) - await executeMutation( + executeMutation( testClient, { mutationKey: ['a', 2], - mutationFn: () => Promise.resolve(), + mutationFn: () => sleep(10).then(() => undefined), }, 2, ) - await executeMutation( + executeMutation( testClient, { mutationKey: ['b'], - mutationFn: () => Promise.resolve(), + mutationFn: () => sleep(10).then(() => undefined), }, 3, ) const [mutation1, mutation2] = testCache.getAll() + expect( testCache.findAll({ mutationKey: ['a'], exact: false }), ).toHaveLength(2) @@ -299,17 +307,21 @@ describe('mutationCache', () => { const testCache = new MutationCache() const testClient = new QueryClient({ mutationCache: testCache }) const onSuccess = vi.fn() + executeMutation( testClient, { mutationKey: ['a', 1], gcTime: 10, - mutationFn: () => Promise.resolve(), + mutationFn: () => sleep(10).then(() => undefined), onSuccess, }, 1, ) + await vi.advanceTimersByTimeAsync(10) + expect(testCache.getAll()).toHaveLength(1) + await vi.advanceTimersByTimeAsync(10) expect(testCache.getAll()).toHaveLength(0) expect(onSuccess).toHaveBeenCalledTimes(1) @@ -319,21 +331,25 @@ describe('mutationCache', () => { const queryClient = new QueryClient() const observer = new MutationObserver(queryClient, { gcTime: 10, - mutationFn: (input: number) => Promise.resolve(input), + mutationFn: (input: number) => sleep(10).then(() => input), }) const unsubscribe = observer.subscribe(() => undefined) expect(queryClient.getMutationCache().getAll()).toHaveLength(0) + observer.mutate(1) + expect(queryClient.getMutationCache().getAll()).toHaveLength(1) + await vi.advanceTimersByTimeAsync(10) expect(queryClient.getMutationCache().getAll()).toHaveLength(1) + unsubscribe() + expect(queryClient.getMutationCache().getAll()).toHaveLength(1) + await vi.advanceTimersByTimeAsync(10) - await vi.waitFor(() => { - expect(queryClient.getMutationCache().getAll()).toHaveLength(0) - }) + expect(queryClient.getMutationCache().getAll()).toHaveLength(0) }) test('should be garbage collected later when unsubscribed and mutation is pending', async () => { @@ -341,24 +357,24 @@ describe('mutationCache', () => { const onSuccess = vi.fn() const observer = new MutationObserver(queryClient, { gcTime: 10, - mutationFn: async () => { - await sleep(20) - return 'data' - }, + mutationFn: () => sleep(10).then(() => 'data'), onSuccess, }) const unsubscribe = observer.subscribe(() => undefined) + observer.mutate(1) + unsubscribe() + expect(queryClient.getMutationCache().getAll()).toHaveLength(1) + await vi.advanceTimersByTimeAsync(10) // unsubscribe should not remove even though gcTime has elapsed b/c mutation is still pending expect(queryClient.getMutationCache().getAll()).toHaveLength(1) + await vi.advanceTimersByTimeAsync(10) // should be removed after an additional gcTime wait - await vi.waitFor(() => { - expect(queryClient.getMutationCache().getAll()).toHaveLength(0) - }) + expect(queryClient.getMutationCache().getAll()).toHaveLength(0) expect(onSuccess).toHaveBeenCalledTimes(1) }) @@ -367,15 +383,16 @@ describe('mutationCache', () => { const onSuccess = vi.fn() const observer = new MutationObserver(queryClient, { gcTime: 0, - mutationFn: () => { - return Promise.resolve('data') - }, + mutationFn: () => sleep(10).then(() => 'data'), onSuccess, }) const unsubscribe = observer.subscribe(() => undefined) + observer.mutate(1) + unsubscribe() - await vi.advanceTimersByTimeAsync(0) + + await vi.advanceTimersByTimeAsync(10) expect(queryClient.getMutationCache().getAll()).toHaveLength(0) expect(onSuccess).toHaveBeenCalledTimes(1) }) From 74d8ce67e8a1639b0b66521d67739ee49a0d6772 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Thu, 31 Jul 2025 13:38:48 +0200 Subject: [PATCH 320/432] chore(angular-query): move test-setup.ts (#9516) --- packages/angular-query-experimental/{src => }/test-setup.ts | 0 packages/angular-query-experimental/vite.config.ts | 2 +- packages/angular-query-persist-client/{src => }/test-setup.ts | 0 packages/angular-query-persist-client/vite.config.ts | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) rename packages/angular-query-experimental/{src => }/test-setup.ts (100%) rename packages/angular-query-persist-client/{src => }/test-setup.ts (100%) diff --git a/packages/angular-query-experimental/src/test-setup.ts b/packages/angular-query-experimental/test-setup.ts similarity index 100% rename from packages/angular-query-experimental/src/test-setup.ts rename to packages/angular-query-experimental/test-setup.ts diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts index 5c0413f3de..5f05c82696 100644 --- a/packages/angular-query-experimental/vite.config.ts +++ b/packages/angular-query-experimental/vite.config.ts @@ -43,7 +43,7 @@ const config = defineConfig({ dir: './src', watch: false, environment: 'jsdom', - setupFiles: ['src/test-setup.ts'], + setupFiles: ['test-setup.ts'], coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, typecheck: { enabled: true }, globals: true, diff --git a/packages/angular-query-persist-client/src/test-setup.ts b/packages/angular-query-persist-client/test-setup.ts similarity index 100% rename from packages/angular-query-persist-client/src/test-setup.ts rename to packages/angular-query-persist-client/test-setup.ts diff --git a/packages/angular-query-persist-client/vite.config.ts b/packages/angular-query-persist-client/vite.config.ts index 25fdba1056..7db419b49b 100644 --- a/packages/angular-query-persist-client/vite.config.ts +++ b/packages/angular-query-persist-client/vite.config.ts @@ -19,7 +19,7 @@ export default defineConfig({ dir: './src', watch: false, environment: 'jsdom', - setupFiles: ['src/test-setup.ts'], + setupFiles: ['test-setup.ts'], coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, typecheck: { enabled: true }, globals: true, From 422f2ecbd6fcb89ab17d3a8c01e8e6a407ad5fcf Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Thu, 31 Jul 2025 14:38:33 +0200 Subject: [PATCH 321/432] refactor(angular-query): build package using vite (#9517) --- knip.json | 3 - .../angular-query-experimental/package.json | 14 +-- .../scripts/prepack.js | 93 ------------------- .../scripts/prepare-package.js | 26 ------ 4 files changed, 7 insertions(+), 129 deletions(-) delete mode 100644 packages/angular-query-experimental/scripts/prepare-package.js diff --git a/knip.json b/knip.json index d316a99894..490e31c190 100644 --- a/knip.json +++ b/knip.json @@ -22,9 +22,6 @@ "packages/vue-query": { "ignore": ["**/__mocks__/**"], "ignoreDependencies": ["vue2", "vue2.7"] - }, - "packages/angular-query-experimental": { - "ignore": ["scripts/prepack.js", "scripts/prepare-package.js"] } } } diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 2008ffe90b..1205fd517e 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -43,23 +43,23 @@ "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", - "build": "pnpm build:tsup", - "build:tsup": "tsup --tsconfig tsconfig.prod.json" + "build": "vite build", + "prepack": "node scripts/prepack.js" }, "type": "module", - "types": "build/index.d.ts", - "module": "build/index.mjs", + "types": "dist/index.d.ts", + "module": "dist/index.mjs", "exports": { ".": { "@tanstack/custom-condition": "./src/index.ts", - "types": "./build/index.d.ts", - "default": "./build/index.mjs" + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" }, "./package.json": "./package.json" }, "sideEffects": false, "files": [ - "build", + "dist", "src", "!src/__tests__" ], diff --git a/packages/angular-query-experimental/scripts/prepack.js b/packages/angular-query-experimental/scripts/prepack.js index 9b6f734a74..257f92d353 100644 --- a/packages/angular-query-experimental/scripts/prepack.js +++ b/packages/angular-query-experimental/scripts/prepack.js @@ -1,94 +1 @@ -import fs from 'node:fs' -import path from 'node:path' - -// Currently unused as life-cycle scripts do not run on CI - console.log('Running prepack script') - -/** - * Files to copy to the dist directory - * @type {string[]} - */ -const FILES_TO_COPY = ['README.md'] - -/** - * Fields to remove from the package.json copy - * @type {string[]} - */ -const FIELDS_TO_REMOVE = [ - 'devDependencies', - 'files', - 'publishConfig', - 'scripts', -] - -/** - * Replaces 'dist/' or './dist/' prefix from a file path with './' - * @param {string} filePath - The file path to process - * @returns {string} The path without dist prefix - */ -function removeDist(filePath) { - return filePath.replace(/^(\.\/)?dist\//, './') -} - -/** - * Recursively processes exports object to remove dist prefixes - * @param {Record} exports - The exports object to process - * @returns {Record} The processed exports object - */ -function processExports(exports) { - return Object.fromEntries( - Object.entries(exports).map(([key, value]) => [ - key, - typeof value === 'string' - ? removeDist(value) - : typeof value === 'object' && value !== null - ? processExports(value) - : value, - ]), - ) -} - -console.log('Copying modified package.json') - -/** @type {Record} */ -const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')) - -const distPackageJson = { ...packageJson } - -if (distPackageJson.types) { - distPackageJson.types = removeDist(distPackageJson.types) -} - -if (distPackageJson.module) { - distPackageJson.module = removeDist(distPackageJson.module) -} - -if (distPackageJson.exports) { - distPackageJson.exports = processExports(distPackageJson.exports) -} - -for (const field of FIELDS_TO_REMOVE) { - delete distPackageJson[field] -} - -if (!fs.existsSync('dist')) { - fs.mkdirSync('dist', { recursive: true }) -} - -fs.writeFileSync( - path.join('dist', 'package.json'), - JSON.stringify(distPackageJson, null, 2), -) - -console.log('Copying other files') -for (const fileName of FILES_TO_COPY) { - if (fs.existsSync(fileName)) { - fs.copyFileSync(fileName, path.join('dist', fileName)) - console.log(`${fileName}`) - } else { - console.log(`${fileName} not found, skipping`) - } -} - -console.log('prepack complete') diff --git a/packages/angular-query-experimental/scripts/prepare-package.js b/packages/angular-query-experimental/scripts/prepare-package.js deleted file mode 100644 index 2d97c08eb1..0000000000 --- a/packages/angular-query-experimental/scripts/prepare-package.js +++ /dev/null @@ -1,26 +0,0 @@ -import fs from 'node:fs' -import path from 'node:path' - -console.log('Running prepare package script') - -/** - * Files to link from the dist directory - * @type {string[]} - */ -const FILES_TO_LINK = ['README.md', 'package.json'] - -if (!fs.existsSync('dist')) { - fs.mkdirSync('dist', { recursive: true }) -} - -console.log('Linking files') -for (const fileName of FILES_TO_LINK) { - if (fs.existsSync(fileName)) { - fs.linkSync(fileName, path.join('dist', fileName)) - console.log(`${fileName}`) - } else { - console.log(`${fileName} not found, skipping`) - } -} - -console.log('prepare package complete') From 8f474ad817492a6a4b78560fe9fe51e430765af2 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 31 Jul 2025 12:42:20 +0000 Subject: [PATCH 322/432] release: v5.83.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +++--- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 10 +++++----- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 10 +++++----- .../react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 6 +++--- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- .../angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/eslint-plugin-query/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- .../query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 79 files changed, 139 insertions(+), 139 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 78763a625a..6dcbf176c3 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 0640b32b6a..90bccdb076 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.83.0", + "@tanstack/query-async-storage-persister": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 36f4e34be8..545f66056e 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 3afc7a02b1..6c4a80d0ed 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.83.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-devtools-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 951b334ea6..5c261ee964 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 0f2b8f25a9..c6d2224db5 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index cdb674a7a1..1a36e33083 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 7fcc581b7d..e118db4642 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 93b5cc4f15..4b3db65dd9 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 92e10433fb..4d38438b7a 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 7267ec864d..761aa42c28 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.0", + "@tanstack/angular-query-experimental": "^5.83.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 84fb00bb20..afc5ddd0ab 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.81.2", + "@tanstack/eslint-plugin-query": "^5.83.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 438018413e..2440c0a567 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index a31a8a71c1..f5e55b228d 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 0e8a3a1330..9ea738c3fe 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.0", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", - "@tanstack/react-query-persist-client": "^5.83.0", + "@tanstack/query-async-storage-persister": "^5.83.1", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query-persist-client": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.81.2", + "@tanstack/eslint-plugin-query": "^5.83.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index e61ad68a3f..55f5740df5 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 0a443fe5f6..a9bd6f209f 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index d418bc9025..e79284ed37 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 32701770d5..4d8cd023b1 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.0", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", - "@tanstack/react-query-persist-client": "^5.83.0", + "@tanstack/query-async-storage-persister": "^5.83.1", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query-persist-client": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.81.2", + "@tanstack/eslint-plugin-query": "^5.83.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index f09fd2d528..63b4dee243 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 059cbc266a..cb522b8f44 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index fcd48d4fa8..1973882a24 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 88690ef293..f6305fc535 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", - "@tanstack/react-query-next-experimental": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query-next-experimental": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 77af5c1761..dff9ab9e85 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index f35e81596f..1e7c3f6d49 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.0", + "@tanstack/query-async-storage-persister": "^5.83.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", - "@tanstack/react-query-persist-client": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query-persist-client": "^5.83.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index a072debf75..5d3d8bda22 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index f88bf6c39c..b7af3f5612 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 34850485da..755a0c3000 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 7024615639..93e50c406d 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index bb3a7fa425..d0dd5c3b16 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index fd0bb168d8..78e75583c2 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index fc92cc62e4..dad109b1d2 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 4e80a913e4..793725001f 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index b033defa31..059badf179 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 5792dd5444..5b5998bafd 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 033fb6665a..ad0d969d45 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index becc75c4ab..d585725043 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.0", - "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-query": "^5.83.1", + "@tanstack/react-query-devtools": "^5.83.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index fdde89b758..25349c7a77 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.83.0", - "@tanstack/solid-query-devtools": "^5.83.0", + "@tanstack/solid-query": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.83.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index f7b5c0c71f..c1689bb6fe 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.0", - "@tanstack/solid-query-devtools": "^5.83.0", + "@tanstack/solid-query": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.83.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 218c4e6750..4a4364ff72 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.0", - "@tanstack/solid-query-devtools": "^5.83.0", + "@tanstack/solid-query": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.83.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 531f6d5fe1..f369372ce0 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.0", - "@tanstack/solid-query-devtools": "^5.83.0", + "@tanstack/solid-query": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.83.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index be4c7830be..515c6e2eb6 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.0", - "@tanstack/solid-query-devtools": "^5.83.0", + "@tanstack/solid-query": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.83.1", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.81.2", + "@tanstack/eslint-plugin-query": "^5.83.1", "typescript": "5.8.3", "vite": "^6.2.4", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 2b47997da4..7c453c84da 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.83.0", - "@tanstack/solid-query-devtools": "^5.83.0", + "@tanstack/solid-query": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.83.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index b5824aabec..b506b0992d 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0" + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index fd5abeab62..6a7c80f661 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.0", - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0", - "@tanstack/svelte-query-persist-client": "^5.83.0" + "@tanstack/query-async-storage-persister": "^5.83.1", + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1", + "@tanstack/svelte-query-persist-client": "^5.83.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 1bcacda1f4..88fe107a74 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0" + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index cefe1c1ca9..791e70ec34 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0" + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 8b7e9cea56..3a68b04c6d 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0" + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 61f4fa6b4a..5a7b792104 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0" + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 78577f1693..fa1e333416 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0" + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 85382a98f0..61788da1b2 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.0", - "@tanstack/svelte-query-devtools": "^5.83.0" + "@tanstack/svelte-query": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.83.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 37c2de72e3..cdea803345 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.0", + "@tanstack/vue-query": "^5.83.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 42c19da8ef..41d96daf79 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.0", + "@tanstack/vue-query": "^5.83.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 4dfd079b17..94f8de3682 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.0", - "@tanstack/vue-query-devtools": "^5.83.0", + "@tanstack/vue-query": "^5.83.1", + "@tanstack/vue-query-devtools": "^5.83.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index b8a72e3cfd..289ae4caae 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.0", + "@tanstack/vue-query": "^5.83.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 71076a3e92..eb86b6643e 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.83.0" + "@tanstack/vue-query": "^5.83.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index f81d17f36e..6cd23ce60f 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.83.0", - "@tanstack/query-persist-client-core": "^5.83.0", - "@tanstack/query-sync-storage-persister": "^5.83.0", - "@tanstack/vue-query": "^5.83.0", + "@tanstack/query-core": "^5.83.1", + "@tanstack/query-persist-client-core": "^5.83.1", + "@tanstack/query-sync-storage-persister": "^5.83.1", + "@tanstack/vue-query": "^5.83.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 92b751d2b0..df05bb9528 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.0", - "@tanstack/vue-query-devtools": "^5.83.0", + "@tanstack/vue-query": "^5.83.1", + "@tanstack/vue-query-devtools": "^5.83.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 6624b1c9d7..293c3adeaa 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.83.0", + "version": "5.83.1", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 1205fd517e..e6492c3715 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.83.0", + "version": "5.83.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 1be3292229..4bdb332636 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.81.2", + "version": "5.83.1", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 5e3687faa2..09ad1b7795 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.83.0", + "version": "5.83.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 5dbf2025fc..3a11a7c9c3 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.83.0", + "version": "5.83.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 1174756747..759c79b069 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.83.0", + "version": "5.83.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 450a5426f0..c3b0bed98c 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.81.2", + "version": "5.83.1", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 18676b548f..2da6501986 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.83.0", + "version": "5.83.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index ef9c4d40c8..9a2f1ee21c 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.83.0", + "version": "5.83.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 82529a830f..5087e37dbb 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.83.0", + "version": "5.83.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index d46addf514..ec230d36b0 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.83.0", + "version": "5.83.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 8a3ac2da52..84b9519cc3 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.83.0", + "version": "5.83.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index c143ee2f0b..c033b242f2 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.83.0", + "version": "5.83.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 7f4c831663..fe829d93f8 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.83.0", + "version": "5.83.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 549fed604d..ae0fa936f3 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.83.0", + "version": "5.83.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index d67a4105d5..d6f75e5de3 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.83.0", + "version": "5.83.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c836156216..4d9238f4b0 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.83.0", + "version": "5.83.1", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 6d22dcfb59..a115f98994 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.83.0", + "version": "5.83.1", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 73c8b72f34..5d5cacbc6f 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.83.0", + "version": "5.83.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 49ea5ac78d..1952403d3b 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.83.0", + "version": "5.83.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 1a55321042..a600659718 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.83.0", + "version": "5.83.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 250dbd9b6aa09e6db54166b6ed6130c8e29974f7 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Thu, 31 Jul 2025 16:17:05 +0200 Subject: [PATCH 323/432] chore(angular-query): run publint and attw on tarball (#9518) using built-in packaging of these tools does not run prepack --- packages/angular-query-experimental/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index e6492c3715..01ca64b057 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -42,7 +42,7 @@ "test:types:tscurrent": "tsc --build", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", - "test:build": "publint --strict && attw --pack", + "test:build": "pnpm pack && publint ./dist/*.tgz --strict && attw ./dist/*.tgz; premove ./dist/*.tgz", "build": "vite build", "prepack": "node scripts/prepack.js" }, From c8322d96b1ebe2b21eafac0b6839fe0f127ff1f4 Mon Sep 17 00:00:00 2001 From: Sajad Torkamani Date: Thu, 31 Jul 2025 19:35:25 +0100 Subject: [PATCH 324/432] docs: add missing period (#9509) Co-authored-by: Jonghyeon Ko --- docs/framework/react/reference/useMutationState.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/reference/useMutationState.md b/docs/framework/react/reference/useMutationState.md index 124ba8f55a..e2c9b1ceb5 100644 --- a/docs/framework/react/reference/useMutationState.md +++ b/docs/framework/react/reference/useMutationState.md @@ -38,7 +38,7 @@ const data = useMutationState({ }) ``` -**Example 3: Access the latest mutation data via the `mutationKey`** +**Example 3: Access the latest mutation data via the `mutationKey`**. Each invocation of `mutate` adds a new entry to the mutation cache for `gcTime` milliseconds. To access the latest invocation, you can check for the last item that `useMutationState` returns. From e07812be21e4d19cd30fc74965a06d438b98ac71 Mon Sep 17 00:00:00 2001 From: clover caruso Date: Thu, 31 Jul 2025 15:48:07 -0400 Subject: [PATCH 325/432] fix(react-query): HydrationBoundary has strictly typed `state` (#9520) * fix(react-query): HydrationBoundary has strictly typed `state` Only type definition changes, the `state` parameter is now required and must be `DehydratedState` (or nullish). Every case omitting this prop or passing a different shape is a bug now caught by `tsc`. Correct code has no action needed. Closes #9323 * ci: apply automated fixes --------- Co-authored-by: Dominik Dorfmeister Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/react-query/src/HydrationBoundary.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-query/src/HydrationBoundary.tsx b/packages/react-query/src/HydrationBoundary.tsx index 4a6c825933..7d5c8a7d6f 100644 --- a/packages/react-query/src/HydrationBoundary.tsx +++ b/packages/react-query/src/HydrationBoundary.tsx @@ -11,7 +11,7 @@ import type { } from '@tanstack/query-core' export interface HydrationBoundaryProps { - state?: unknown + state: DehydratedState | null | undefined options?: OmitKeyof & { defaultOptions?: OmitKeyof< Exclude, @@ -60,7 +60,7 @@ export const HydrationBoundary = ({ // gracefully if it has the wrong shape, so while we type `queries` // as required, we still provide a fallback. // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - const queries = (state as DehydratedState).queries || [] + const queries = state.queries || [] const newQueries: DehydratedState['queries'] = [] const existingQueries: DehydratedState['queries'] = [] From 7b19d49e67865c9f46fc1130739c3246a4cfd8fa Mon Sep 17 00:00:00 2001 From: JonLuca De Caro Date: Thu, 31 Jul 2025 12:48:18 -0700 Subject: [PATCH 326/432] feat(devtools): add setting to hide disabled queries (#9500) * feat(devtools): add setting to hide disabled queries * chore(name): rename disable queries param * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister --- .../src/providers.ts | 4 + packages/query-devtools/src/Devtools.tsx | 87 ++++++++++++++++++- .../src/TanstackQueryDevtools.tsx | 7 ++ .../src/TanstackQueryDevtoolsPanel.tsx | 7 ++ .../src/contexts/QueryDevtoolsContext.ts | 1 + .../src/ReactQueryDevtools.tsx | 6 ++ .../src/ReactQueryDevtoolsPanel.tsx | 7 +- .../solid-query-devtools/src/devtools.tsx | 5 ++ .../svelte-query-devtools/src/Devtools.svelte | 2 + packages/vue-query-devtools/src/devtools.vue | 1 + packages/vue-query-devtools/src/types.ts | 4 + 11 files changed, 128 insertions(+), 3 deletions(-) diff --git a/packages/angular-query-experimental/src/providers.ts b/packages/angular-query-experimental/src/providers.ts index d7619cec71..d8c2806c10 100644 --- a/packages/angular-query-experimental/src/providers.ts +++ b/packages/angular-query-experimental/src/providers.ts @@ -211,6 +211,10 @@ export interface DevtoolsOptions { * Use this so you can attach the devtool's styles to a specific element in the DOM. */ shadowDOMTarget?: ShadowRoot + /** + * Set this to true to hide disabled queries from the devtools panel. + */ + hideDisabledQueries?: boolean /** * Whether the developer tools should load. diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index e7e640a9dc..b868498daa 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -659,17 +659,28 @@ export const ContentView: Component = (props) => { const queries = createMemo( on( - () => [queryCount(), props.localStore.filter, sort(), sortOrder()], + () => [ + queryCount(), + props.localStore.filter, + sort(), + sortOrder(), + props.localStore.hideDisabledQueries, + ], () => { const curr = query_cache().getAll() - const filtered = props.localStore.filter + let filtered = props.localStore.filter ? curr.filter( (item) => rankItem(item.queryHash, props.localStore.filter || '').passed, ) : [...curr] + // Filter out disabled queries if hideDisabledQueries is enabled + if (props.localStore.hideDisabledQueries === 'true') { + filtered = filtered.filter((item) => !item.isDisabled()) + } + const sorted = sortFn() ? filtered.sort((a, b) => sortFn()!(a, b) * sortOrder()) : filtered @@ -1186,6 +1197,78 @@ export const ContentView: Component = (props) => { + + + Disabled Queries + + + setComputedVariables(el as HTMLDivElement)} + mount={ + pip().pipWindow + ? pip().pipWindow!.document.body + : document.body + } + > + + { + props.setLocalStore('hideDisabledQueries', 'false') + }} + as="button" + class={cx( + styles().settingsSubButton, + props.localStore.hideDisabledQueries !== 'true' && + styles().themeSelectedButton, + 'tsqd-settings-menu-position-btn', + 'tsqd-settings-menu-position-btn-show', + )} + > + Show + + + + + { + props.setLocalStore('hideDisabledQueries', 'true') + }} + as="button" + class={cx( + styles().settingsSubButton, + props.localStore.hideDisabledQueries === 'true' && + styles().themeSelectedButton, + 'tsqd-settings-menu-position-btn', + 'tsqd-settings-menu-position-btn-hide', + )} + > + Hide + + + + + + + diff --git a/packages/query-devtools/src/TanstackQueryDevtools.tsx b/packages/query-devtools/src/TanstackQueryDevtools.tsx index 4b14c083f2..2fee7ac00a 100644 --- a/packages/query-devtools/src/TanstackQueryDevtools.tsx +++ b/packages/query-devtools/src/TanstackQueryDevtools.tsx @@ -31,6 +31,7 @@ class TanstackQueryDevtools { #position: Signal #initialIsOpen: Signal #errorTypes: Signal | undefined> + #hideDisabledQueries: Signal #Component: DevtoolsComponentType | undefined #dispose?: () => void @@ -46,6 +47,7 @@ class TanstackQueryDevtools { errorTypes, styleNonce, shadowDOMTarget, + hideDisabledQueries, } = config this.#client = createSignal(client) this.#queryFlavor = queryFlavor @@ -57,6 +59,7 @@ class TanstackQueryDevtools { this.#position = createSignal(position) this.#initialIsOpen = createSignal(initialIsOpen) this.#errorTypes = createSignal(errorTypes) + this.#hideDisabledQueries = createSignal(hideDisabledQueries) } setButtonPosition(position: DevtoolsButtonPosition) { @@ -88,6 +91,7 @@ class TanstackQueryDevtools { const [pos] = this.#position const [isOpen] = this.#initialIsOpen const [errors] = this.#errorTypes + const [hideDisabledQueries] = this.#hideDisabledQueries const [queryClient] = this.#client let Devtools: DevtoolsComponentType @@ -121,6 +125,9 @@ class TanstackQueryDevtools { get errorTypes() { return errors() }, + get hideDisabledQueries() { + return hideDisabledQueries() + }, }} /> ) diff --git a/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx b/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx index bf26198854..8b72850acd 100644 --- a/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx +++ b/packages/query-devtools/src/TanstackQueryDevtoolsPanel.tsx @@ -32,6 +32,7 @@ class TanstackQueryDevtoolsPanel { #position: Signal #initialIsOpen: Signal #errorTypes: Signal | undefined> + #hideDisabledQueries: Signal #onClose: Signal<(() => unknown) | undefined> #Component: DevtoolsComponentType | undefined #dispose?: () => void @@ -49,6 +50,7 @@ class TanstackQueryDevtoolsPanel { styleNonce, shadowDOMTarget, onClose, + hideDisabledQueries, } = config this.#client = createSignal(client) this.#queryFlavor = queryFlavor @@ -60,6 +62,7 @@ class TanstackQueryDevtoolsPanel { this.#position = createSignal(position) this.#initialIsOpen = createSignal(initialIsOpen) this.#errorTypes = createSignal(errorTypes) + this.#hideDisabledQueries = createSignal(hideDisabledQueries) this.#onClose = createSignal(onClose) } @@ -96,6 +99,7 @@ class TanstackQueryDevtoolsPanel { const [pos] = this.#position const [isOpen] = this.#initialIsOpen const [errors] = this.#errorTypes + const [hideDisabledQueries] = this.#hideDisabledQueries const [queryClient] = this.#client const [onClose] = this.#onClose let Devtools: DevtoolsComponentType @@ -130,6 +134,9 @@ class TanstackQueryDevtoolsPanel { get errorTypes() { return errors() }, + get hideDisabledQueries() { + return hideDisabledQueries() + }, get onClose() { return onClose() }, diff --git a/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts b/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts index 5af5ba3f7d..51b44b3bae 100644 --- a/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts +++ b/packages/query-devtools/src/contexts/QueryDevtoolsContext.ts @@ -29,6 +29,7 @@ export interface QueryDevtoolsProps { errorTypes?: Array shadowDOMTarget?: ShadowRoot onClose?: () => unknown + hideDisabledQueries?: boolean } export const QueryDevtoolsContext = createContext({ diff --git a/packages/react-query-devtools/src/ReactQueryDevtools.tsx b/packages/react-query-devtools/src/ReactQueryDevtools.tsx index e75475f18d..7c6ebcd25e 100644 --- a/packages/react-query-devtools/src/ReactQueryDevtools.tsx +++ b/packages/react-query-devtools/src/ReactQueryDevtools.tsx @@ -42,6 +42,10 @@ export interface DevtoolsOptions { * Use this so you can attach the devtool's styles to specific element in the DOM. */ shadowDOMTarget?: ShadowRoot + /** + * Set this to true to hide disabled queries from the devtools panel. + */ + hideDisabledQueries?: boolean } export function ReactQueryDevtools( @@ -56,6 +60,7 @@ export function ReactQueryDevtools( errorTypes, styleNonce, shadowDOMTarget, + hideDisabledQueries, } = props const [devtools] = React.useState( new TanstackQueryDevtools({ @@ -69,6 +74,7 @@ export function ReactQueryDevtools( errorTypes, styleNonce, shadowDOMTarget, + hideDisabledQueries, }), ) diff --git a/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx b/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx index 86afd0ba85..d1db23537f 100644 --- a/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx +++ b/packages/react-query-devtools/src/ReactQueryDevtoolsPanel.tsx @@ -35,6 +35,10 @@ export interface DevtoolsPanelOptions { * Callback function that is called when the devtools panel is closed */ onClose?: () => unknown + /** + * Set this to true to hide disabled queries from the devtools panel. + */ + hideDisabledQueries?: boolean } export function ReactQueryDevtoolsPanel( @@ -42,7 +46,7 @@ export function ReactQueryDevtoolsPanel( ): React.ReactElement | null { const queryClient = useQueryClient(props.client) const ref = React.useRef(null) - const { errorTypes, styleNonce, shadowDOMTarget } = props + const { errorTypes, styleNonce, shadowDOMTarget, hideDisabledQueries } = props const [devtools] = React.useState( new TanstackQueryDevtoolsPanel({ client: queryClient, @@ -56,6 +60,7 @@ export function ReactQueryDevtoolsPanel( styleNonce, shadowDOMTarget, onClose: props.onClose, + hideDisabledQueries, }), ) diff --git a/packages/solid-query-devtools/src/devtools.tsx b/packages/solid-query-devtools/src/devtools.tsx index 2557f6613e..d68687dd6a 100644 --- a/packages/solid-query-devtools/src/devtools.tsx +++ b/packages/solid-query-devtools/src/devtools.tsx @@ -41,6 +41,10 @@ interface DevtoolsOptions { * Use this so you can attach the devtool's styles to specific element in the DOM. */ shadowDOMTarget?: ShadowRoot + /** + * Set this to true to hide disabled queries from the devtools panel. + */ + hideDisabledQueries?: boolean } export default function SolidQueryDevtools(props: DevtoolsOptions) { @@ -58,6 +62,7 @@ export default function SolidQueryDevtools(props: DevtoolsOptions) { errorTypes: props.errorTypes, styleNonce: props.styleNonce, shadowDOMTarget: props.shadowDOMTarget, + hideDisabledQueries: props.hideDisabledQueries, }) createEffect(() => { diff --git a/packages/svelte-query-devtools/src/Devtools.svelte b/packages/svelte-query-devtools/src/Devtools.svelte index 3848004325..ea0de0dfd0 100644 --- a/packages/svelte-query-devtools/src/Devtools.svelte +++ b/packages/svelte-query-devtools/src/Devtools.svelte @@ -17,6 +17,7 @@ export let errorTypes: Array = [] export let styleNonce: string | undefined = undefined export let shadowDOMTarget: ShadowRoot | undefined = undefined + export let hideDisabledQueries: boolean = false let ref: HTMLDivElement let devtools: TanstackQueryDevtools | undefined @@ -37,6 +38,7 @@ errorTypes, styleNonce, shadowDOMTarget, + hideDisabledQueries, }) devtools.mount(ref) diff --git a/packages/vue-query-devtools/src/devtools.vue b/packages/vue-query-devtools/src/devtools.vue index a652bc9650..b995adb56c 100644 --- a/packages/vue-query-devtools/src/devtools.vue +++ b/packages/vue-query-devtools/src/devtools.vue @@ -19,6 +19,7 @@ const devtools = new TanstackQueryDevtools({ errorTypes: props.errorTypes, styleNonce: props.styleNonce, shadowDOMTarget: props.shadowDOMTarget, + hideDisabledQueries: props.hideDisabledQueries, }) watchEffect(() => { diff --git a/packages/vue-query-devtools/src/types.ts b/packages/vue-query-devtools/src/types.ts index a392aac51c..c15e000e95 100644 --- a/packages/vue-query-devtools/src/types.ts +++ b/packages/vue-query-devtools/src/types.ts @@ -38,4 +38,8 @@ export interface DevtoolsOptions { * Use this so you can attach the devtool's styles to specific element in the DOM. */ shadowDOMTarget?: ShadowRoot + /** + * Set this to true to hide disabled queries from the devtools panel. + */ + hideDisabledQueries?: boolean } From 6a85584fe1a95c884adb55bf4029b29c7b4a73fc Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 31 Jul 2025 19:52:28 +0000 Subject: [PATCH 327/432] release: v5.84.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 2 +- examples/solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- examples/solid/default-query-function/package.json | 2 +- examples/solid/simple/package.json | 2 +- examples/solid/solid-start-streaming/package.json | 2 +- examples/svelte/auto-refetching/package.json | 2 +- examples/svelte/basic/package.json | 2 +- examples/svelte/load-more-infinite-scroll/package.json | 2 +- examples/svelte/optimistic-updates/package.json | 2 +- examples/svelte/playground/package.json | 2 +- examples/svelte/simple/package.json | 2 +- examples/svelte/ssr/package.json | 2 +- examples/svelte/star-wars/package.json | 2 +- examples/vue/basic/package.json | 2 +- examples/vue/simple/package.json | 2 +- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- 63 files changed, 94 insertions(+), 94 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 6dcbf176c3..9b628a6b92 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 90bccdb076..bf66e16ec0 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.83.1", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 545f66056e..0dcc827a74 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 6c4a80d0ed..f8817015af 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.83.1", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-devtools-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 5c261ee964..5998349be6 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index c6d2224db5..3970af9bd3 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 1a36e33083..9bbd9fa934 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index e118db4642..fd7120e783 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 4b3db65dd9..7a249af993 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 4d38438b7a..f95e668443 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 761aa42c28..5402a1d369 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.83.1", + "@tanstack/angular-query-experimental": "^5.84.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index afc5ddd0ab..8de111acda 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 2440c0a567..2aa9ef9c86 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index f5e55b228d..8fd997f6f2 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 9ea738c3fe..ddc642309f 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", - "@tanstack/react-query-persist-client": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query-persist-client": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 55f5740df5..b0185de58e 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index a9bd6f209f..9005648810 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index e79284ed37..cf854b406c 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 4d8cd023b1..c3f9a38ec3 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", - "@tanstack/react-query-persist-client": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query-persist-client": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 63b4dee243..89eb953d15 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index cb522b8f44..5efb5df410 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 1973882a24..93c8e6903c 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index f6305fc535..866100d17e 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", - "@tanstack/react-query-next-experimental": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query-next-experimental": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index dff9ab9e85..85da130660 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 1e7c3f6d49..7cb7d24ca1 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", - "@tanstack/react-query-persist-client": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query-persist-client": "^5.84.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 5d3d8bda22..5c9458bde7 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index b7af3f5612..f3a91394b5 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 755a0c3000..7a8d69a675 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 93e50c406d..c246138e80 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index d0dd5c3b16..65a041ff22 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 78e75583c2..746b72f1ae 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index dad109b1d2..546db2ea9a 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 793725001f..3418d227b6 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 059badf179..d82846ce58 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 5b5998bafd..10b24177aa 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index ad0d969d45..88ce7e324d 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index d585725043..e73f57c143 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.83.1", - "@tanstack/react-query-devtools": "^5.83.1", + "@tanstack/react-query": "^5.84.0", + "@tanstack/react-query-devtools": "^5.84.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 25349c7a77..8bb4584dbf 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -16,7 +16,7 @@ "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.84.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index c1689bb6fe..005a061180 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.84.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 4a4364ff72..20c90c267f 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.84.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index f369372ce0..caa110572b 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.84.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 515c6e2eb6..92ecee6e8c 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.84.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 7c453c84da..8a40679408 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -13,7 +13,7 @@ "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.83.1", + "@tanstack/solid-query-devtools": "^5.84.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index b506b0992d..14ce35e9eb 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1" + "@tanstack/svelte-query-devtools": "^5.84.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 6a7c80f661..d97f1acfca 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1", + "@tanstack/svelte-query-devtools": "^5.84.0", "@tanstack/svelte-query-persist-client": "^5.83.1" }, "devDependencies": { diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 88fe107a74..97a14d329f 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1" + "@tanstack/svelte-query-devtools": "^5.84.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 791e70ec34..9fa0cb91b0 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1" + "@tanstack/svelte-query-devtools": "^5.84.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 3a68b04c6d..f96e4a431e 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1" + "@tanstack/svelte-query-devtools": "^5.84.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 5a7b792104..6c89120c62 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1" + "@tanstack/svelte-query-devtools": "^5.84.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index fa1e333416..bb24b5955a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1" + "@tanstack/svelte-query-devtools": "^5.84.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 61788da1b2..a2e271959e 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.83.1" + "@tanstack/svelte-query-devtools": "^5.84.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 94f8de3682..7a5f9e6221 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/vue-query": "^5.83.1", - "@tanstack/vue-query-devtools": "^5.83.1", + "@tanstack/vue-query-devtools": "^5.84.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index df05bb9528..963150c6b4 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/vue-query": "^5.83.1", - "@tanstack/vue-query-devtools": "^5.83.1", + "@tanstack/vue-query-devtools": "^5.84.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 293c3adeaa..c605b0f136 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.83.1", + "version": "5.84.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 01ca64b057..eed74489f6 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.83.1", + "version": "5.84.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index c3b0bed98c..0dafb49a80 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.83.1", + "version": "5.84.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 5087e37dbb..c7414818e5 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.83.1", + "version": "5.84.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index ec230d36b0..e65c364e70 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.83.1", + "version": "5.84.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 84b9519cc3..8b1bf137a1 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.83.1", + "version": "5.84.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index c033b242f2..6123a105ee 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.83.1", + "version": "5.84.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index fe829d93f8..3445b7ef4d 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.83.1", + "version": "5.84.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 4d9238f4b0..47a0511eaa 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.83.1", + "version": "5.84.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 1952403d3b..7fd2d0528f 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.83.1", + "version": "5.84.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", From 711010ce73b64ea2b8052172542fcf93efba0ece Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Fri, 1 Aug 2025 18:10:22 +0900 Subject: [PATCH 328/432] test(react-query/QueryResetErrorBoundary): add 'sleep' and simplify 'queryFn', add multiple 'expect' cases (#9523) --- .../QueryResetErrorBoundary.test.tsx | 202 +++++++++++------- 1 file changed, 121 insertions(+), 81 deletions(-) diff --git a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx index b87d00fdd9..c02adeeece 100644 --- a/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx +++ b/packages/react-query/src/__tests__/QueryResetErrorBoundary.test.tsx @@ -38,17 +38,15 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, throwOnError: true, }) + return
{data}
} @@ -80,10 +78,13 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('data')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -98,18 +99,16 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data, status } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, enabled: !succeed, throwOnError: true, }) + return (
status: {status}
@@ -146,10 +145,13 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('status: error')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -166,14 +168,11 @@ describe('QueryErrorResetBoundary', () => { const [enabled, setEnabled] = React.useState(false) const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, enabled, throwOnError: true, @@ -214,10 +213,13 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('data')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -231,7 +233,8 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data, refetch, status, fetchStatus } = useQuery({ queryKey: key, - queryFn: () => Promise.reject(new Error('Error')), + queryFn: () => + sleep(10).then(() => Promise.reject(new Error('Error'))), retry: false, enabled: false, throwOnError: true, @@ -276,9 +279,15 @@ describe('QueryErrorResetBoundary', () => { expect( rendered.getByText('status: pending, fetchStatus: idle'), ).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect( + rendered.getByText('status: pending, fetchStatus: idle'), + ).toBeInTheDocument() + fireEvent.click(rendered.getByRole('button', { name: /refetch/i })) - await vi.advanceTimersByTimeAsync(0) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -294,17 +303,15 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, throwOnError: true, }) + return
{data}
} @@ -335,10 +342,13 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -354,18 +364,16 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, throwOnError: true, initialData: 'initial', }) + return
{data}
} @@ -394,13 +402,17 @@ describe('QueryErrorResetBoundary', () => { , ) + expect(rendered.getByText('initial')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('data')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -412,22 +424,20 @@ describe('QueryErrorResetBoundary', () => { const key = queryKey() let succeed = false - let shouldReset = true + let shouldReset = false function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, throwOnError: true, }) + return
{data}
} @@ -463,15 +473,28 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + + succeed = false shouldReset = true - fireEvent.click(rendered.getByText('retry')) + await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true shouldReset = false + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() + + succeed = true + shouldReset = true + + fireEvent.click(rendered.getByText('retry')) + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('data')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -486,14 +509,15 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - fetchCount++ - await sleep(10) - throw new Error('Error') - }, + queryFn: () => + sleep(10).then(() => { + fetchCount++ + throw new Error('Error') + }), retry: false, throwOnError: true, }) + return
{data}
} @@ -525,14 +549,18 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() + expect(fetchCount).toBe(3) + consoleMock.mockRestore() }) @@ -548,18 +576,17 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data } = useSuspenseQuery({ queryKey: key, - queryFn: async () => { - fetchCount++ - await sleep(10) - if (fetchCount > 2) { - return 'data' - } else { + queryFn: () => + sleep(10).then(() => { + fetchCount++ + if (fetchCount > 2) return 'data' throw new Error('Error') - } - }, + }), retry: false, }) + renders++ + return
{data}
} @@ -590,18 +617,25 @@ describe('QueryErrorResetBoundary', () => { , ) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data')).toBeInTheDocument() + expect(fetchCount).toBe(3) expect(renders).toBe(1) + consoleMock.mockRestore() }) @@ -626,6 +660,7 @@ describe('QueryErrorResetBoundary', () => { ) expect(rendered.queryByText('page')).not.toBeNull() + consoleMock.mockRestore() }) @@ -641,17 +676,15 @@ describe('QueryErrorResetBoundary', () => { function Page() { const { data } = useQuery({ queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, throwOnError: true, }) + return
{data}
} @@ -683,10 +716,13 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('data')).toBeInTheDocument() + consoleMock.mockRestore() }) }) @@ -705,20 +741,18 @@ describe('QueryErrorResetBoundary', () => { queries: [ { queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, throwOnError: true, retryOnMount: true, }, ], }) + return
{data}
} @@ -750,10 +784,13 @@ describe('QueryErrorResetBoundary', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('data')).toBeInTheDocument() + consoleMock.mockRestore() }) @@ -770,19 +807,17 @@ describe('QueryErrorResetBoundary', () => { queries: [ { queryKey: key, - queryFn: async () => { - await sleep(10) - if (!succeed) { - throw new Error('Error') - } else { + queryFn: () => + sleep(10).then(() => { + if (!succeed) throw new Error('Error') return 'data' - } - }, + }), retry: false, retryOnMount: true, }, ], }) + return
{data}
} @@ -805,7 +840,7 @@ describe('QueryErrorResetBoundary', () => {
)} > - + @@ -813,13 +848,18 @@ describe('QueryErrorResetBoundary', () => { , ) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('error boundary')).toBeInTheDocument() expect(rendered.getByText('retry')).toBeInTheDocument() + succeed = true + fireEvent.click(rendered.getByText('retry')) + expect(rendered.getByText('loading')).toBeInTheDocument() await act(() => vi.advanceTimersByTimeAsync(10)) expect(rendered.getByText('data')).toBeInTheDocument() + consoleMock.mockRestore() }) }) From 025f080bb3194cb81a6721409c24daca22bb7a3e Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Fri, 1 Aug 2025 14:11:54 +0200 Subject: [PATCH 329/432] refactor(angular-query): restructure package type declaration path (#9519) To support future sub-path exports in apps still using moduleResolution: node type declarations should be located in the same path as the corresponding implementation .mjs file --- .../angular-query-experimental/package.json | 12 +- .../scripts/prepack.js | 105 ++++++++++++++++++ .../angular-query-experimental/tsconfig.json | 2 +- pnpm-lock.yaml | 1 + 4 files changed, 115 insertions(+), 5 deletions(-) diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index eed74489f6..4daa02883d 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -27,7 +27,7 @@ "tanstack" ], "scripts": { - "clean": "premove ./build ./dist ./coverage ./dist-ts", + "clean": "premove ./dist ./coverage ./dist-ts", "compile": "tsc --build", "test:eslint": "eslint ./src", "test:types": "npm-run-all --serial test:types:*", @@ -59,9 +59,9 @@ }, "sideEffects": false, "files": [ - "dist", - "src", - "!src/__tests__" + "**/*.d.ts", + "**/*.mjs", + "**/*.mjs.map" ], "dependencies": { "@tanstack/query-core": "workspace:*", @@ -82,5 +82,9 @@ "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0" + }, + "publishConfig": { + "directory": "dist", + "linkDirectory": false } } diff --git a/packages/angular-query-experimental/scripts/prepack.js b/packages/angular-query-experimental/scripts/prepack.js index 257f92d353..bf4bef0cc7 100644 --- a/packages/angular-query-experimental/scripts/prepack.js +++ b/packages/angular-query-experimental/scripts/prepack.js @@ -1 +1,106 @@ +import fs from 'node:fs' +import path from 'node:path' + +/** + * Prepack script that prepares the package for publishing by: + * 1. Creating a modified package.json without dev dependencies, publishConfig and build scripts + * 2. Updating file paths to remove 'dist/' prefixes (since files will be at root in published package) + * 3. Writing this modified package.json to the `dist` directory + * 4. Copying additional files like README.md to the dist directory + * + * Type declarations need to be in the package root or corresponding sub-path to support + * sub-path exports in applications still using `moduleResolution: node`. + */ + console.log('Running prepack script') + +/** + * Files to copy to the dist directory + * @type {string[]} + */ +const FILES_TO_COPY = ['README.md'] + +/** + * Fields to remove from the package.json copy + * @type {string[]} + */ +const FIELDS_TO_REMOVE = [ + 'devDependencies', + 'files', + 'publishConfig', + 'scripts', +] + +/** + * Replaces 'dist/' or './dist/' prefix from a file path with './' + * Only matches at the start of the path to avoid false matches + * @param {string} filePath - The file path to process + * @returns {string} The path without dist prefix + */ +function replaceDist(filePath) { + // Only match dist/ at the beginning of the path, followed by a filename + // This prevents matching strings like "distributed/file.js" or "some/dist/path" + return filePath.replace(/^(?:\.\/)?dist\/(?=.+)/, './') +} + +/** + * Recursively processes package.json `exports` to remove dist prefixes + * @param {Record} exports - The exports object to process + * @returns {Record} The processed exports object + */ +function processExports(exports) { + return Object.fromEntries( + Object.entries(exports).map(([key, value]) => [ + key, + typeof value === 'string' + ? replaceDist(value) + : typeof value === 'object' && value !== null + ? processExports(value) + : value, + ]), + ) +} + +console.log('Copying modified package.json') + +/** @type {Record} */ +const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')) + +const modifiedPackageJson = { ...packageJson } + +if (modifiedPackageJson.types) { + modifiedPackageJson.types = replaceDist(modifiedPackageJson.types) +} + +if (modifiedPackageJson.module) { + modifiedPackageJson.module = replaceDist(modifiedPackageJson.module) +} + +if (modifiedPackageJson.exports) { + modifiedPackageJson.exports = processExports(modifiedPackageJson.exports) +} + +for (const field of FIELDS_TO_REMOVE) { + delete modifiedPackageJson[field] +} + +if (!fs.existsSync('dist')) { + fs.mkdirSync('dist', { recursive: true }) +} + +fs.writeFileSync( + path.join('dist', 'package.json'), + JSON.stringify(modifiedPackageJson, null, 2), +) + +console.log('Copying other files') +for (const file of FILES_TO_COPY) { + if (fs.existsSync(file)) { + fs.copyFileSync(file, path.join('dist', file)) + console.log(`${file}`) + } else { + console.log(`${file} not found, skipping`) + } +} + +console.log('prepack complete') diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 9837ca7051..8c772f947e 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -7,6 +7,6 @@ "useDefineForClassFields": false, "target": "ES2022" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "scripts", "*.config.js", "*.config.ts", "package.json"], "references": [{ "path": "../query-core" }, { "path": "../query-devtools" }] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75ef52b257..12e5e74a78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2307,6 +2307,7 @@ importers: vite-tsconfig-paths: specifier: ^5.1.4 version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + publishDirectory: dist packages/angular-query-persist-client: dependencies: From 0db1056fdb8b9d71b42bb27d5522af7805580123 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 1 Aug 2025 12:14:43 +0000 Subject: [PATCH 330/432] release: v5.84.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- 43 files changed, 74 insertions(+), 74 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 9b628a6b92..9adc6a5967 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index bf66e16ec0..be335e7588 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.83.1", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 0dcc827a74..b6fce8778f 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index f8817015af..ad19042177 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.84.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-devtools-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 5998349be6..02b8973d4d 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 3970af9bd3..3c6c020747 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 9bbd9fa934..c03eb4c26c 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index fd7120e783..8061e3cf9a 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 7a249af993..1cbc5d7ee2 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index f95e668443..eec13d6b9f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 5402a1d369..6b44d7d6c2 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.0", + "@tanstack/angular-query-experimental": "^5.84.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 8de111acda..d26bd18e36 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 2aa9ef9c86..45f4f98709 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 8fd997f6f2..81eb6a97d0 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index ddc642309f..4c16c4f81b 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", - "@tanstack/react-query-persist-client": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query-persist-client": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index b0185de58e..b41be61fc2 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 9005648810..282eaacb87 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index cf854b406c..6373ce9769 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index c3f9a38ec3..878aa5c811 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", - "@tanstack/react-query-persist-client": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query-persist-client": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 89eb953d15..013093f92a 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 5efb5df410..043df5c2a4 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 93c8e6903c..9ec3ddd2e0 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 866100d17e..5f17abacb0 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", - "@tanstack/react-query-next-experimental": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query-next-experimental": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 85da130660..fc8ccd3b0f 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 7cb7d24ca1..1abeecde9c 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", - "@tanstack/react-query-persist-client": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query-persist-client": "^5.84.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 5c9458bde7..c12cf88944 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index f3a91394b5..bab606c186 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 7a8d69a675..e0e0aaa39e 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index c246138e80..d3033c1797 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 65a041ff22..608713c569 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 746b72f1ae..e4339a6f77 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 546db2ea9a..e1fffafd31 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 3418d227b6..908a70c612 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index d82846ce58..15c24162ff 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 10b24177aa..6caf014179 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 88ce7e324d..18ab3b0aea 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index e73f57c143..fe7af98c79 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.0", - "@tanstack/react-query-devtools": "^5.84.0", + "@tanstack/react-query": "^5.84.1", + "@tanstack/react-query-devtools": "^5.84.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index c605b0f136..6c41f6dc5d 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.84.0", + "version": "5.84.1", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 4daa02883d..02ee5362d0 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.84.0", + "version": "5.84.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index c7414818e5..96d20c3834 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.84.0", + "version": "5.84.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index e65c364e70..4da3c267b2 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.84.0", + "version": "5.84.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 8b1bf137a1..b3340046c0 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.84.0", + "version": "5.84.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 6123a105ee..15711edb07 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.84.0", + "version": "5.84.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", From 34657e5a12f53b265e53e101033b3416cd455e28 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 2 Aug 2025 00:41:34 +0900 Subject: [PATCH 331/432] test(react-query/mutationOptions): add tests for without 'mutationKey' in 'mutationOptions' and add 'sleep' to 'mutationFn' (#9510) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/mutationOptions.test.tsx | 411 +++++++++++++++++- 1 file changed, 400 insertions(+), 11 deletions(-) diff --git a/packages/react-query/src/__tests__/mutationOptions.test.tsx b/packages/react-query/src/__tests__/mutationOptions.test.tsx index 118574cbeb..36ee1090a0 100644 --- a/packages/react-query/src/__tests__/mutationOptions.test.tsx +++ b/packages/react-query/src/__tests__/mutationOptions.test.tsx @@ -16,30 +16,84 @@ describe('mutationOptions', () => { vi.useRealTimers() }) - it('should return the object received as a parameter without any modification.', () => { + it('should return the object received as a parameter without any modification (with mutationKey in mutationOptions)', () => { const object = { mutationKey: ['key'], - mutationFn: () => Promise.resolve(5), + mutationFn: () => sleep(10).then(() => 5), } as const expect(mutationOptions(object)).toStrictEqual(object) }) - it('should return the number of fetching mutations when used with useIsMutating', async () => { + it('should return the object received as a parameter without any modification (without mutationKey in mutationOptions)', () => { + const object = { + mutationFn: () => sleep(10).then(() => 5), + } as const + + expect(mutationOptions(object)).toStrictEqual(object) + }) + + it('should return the number of fetching mutations when used with useIsMutating (with mutationKey in mutationOptions)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationOpts = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data'), + }) function IsMutating() { const isMutating = useIsMutating() + isMutatingArray.push(isMutating) + return null } + function Mutation() { + const { mutate } = useMutation(mutationOpts) + + return ( +
+ +
+ ) + } + + function Page() { + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(1) + await vi.advanceTimersByTimeAsync(51) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + }) + + it('should return the number of fetching mutations when used with useIsMutating (without mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() const mutationOpts = mutationOptions({ - mutationKey: ['key'], mutationFn: () => sleep(50).then(() => 'data'), }) + function IsMutating() { + const isMutating = useIsMutating() + + isMutatingArray.push(isMutating) + + return null + } + function Mutation() { const { mutate } = useMutation(mutationOpts) @@ -60,8 +114,8 @@ describe('mutationOptions', () => { } const rendered = renderWithClient(queryClient, ) - fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) expect(isMutatingArray[0]).toEqual(0) await vi.advanceTimersByTimeAsync(0) expect(isMutatingArray[1]).toEqual(1) @@ -70,10 +124,115 @@ describe('mutationOptions', () => { expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) }) - it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { + it('should return the number of fetching mutations when used with useIsMutating', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data2'), + }) + + function IsMutating() { + const isMutating = useIsMutating() + + isMutatingArray.push(isMutating) + + return null + } + + function Mutation() { + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + return ( +
+ + +
+ ) + } + + function Page() { + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) + fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(2) + await vi.advanceTimersByTimeAsync(51) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + }) + + it('should return the number of fetching mutations when used with useIsMutating (filter mutationOpts1.mutationKey)', async () => { const isMutatingArray: Array = [] const queryClient = new QueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data2'), + }) + + function IsMutating() { + const isMutating = useIsMutating({ + mutationKey: mutationOpts1.mutationKey, + }) + isMutatingArray.push(isMutating) + + return null + } + + function Mutation() { + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + return ( +
+ + +
+ ) + } + + function Page() { + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) + fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(1) + await vi.advanceTimersByTimeAsync(51) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() const mutationOpts = mutationOptions({ mutationKey: ['mutation'], mutationFn: () => sleep(500).then(() => 'data'), @@ -82,6 +241,7 @@ describe('mutationOptions', () => { function Mutation() { const isMutating = queryClient.isMutating(mutationOpts) const { mutate } = useMutation(mutationOpts) + isMutatingArray.push(isMutating) return ( @@ -92,8 +252,39 @@ describe('mutationOptions', () => { } const rendered = renderWithClient(queryClient, ) + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(1) + await vi.advanceTimersByTimeAsync(501) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + }) + it('should return the number of fetching mutations when used with queryClient.isMutating (without mutationKey in mutationOptions)', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data'), + }) + + function Mutation() { + const isMutating = queryClient.isMutating() + const { mutate } = useMutation(mutationOpts) + + isMutatingArray.push(isMutating) + + return ( +
+ +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) expect(isMutatingArray[0]).toEqual(0) await vi.advanceTimersByTimeAsync(0) expect(isMutatingArray[1]).toEqual(1) @@ -102,22 +293,100 @@ describe('mutationOptions', () => { expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) }) - it('should return the number of fetching mutations when used with useMutationState', async () => { + it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data2'), + }) + + function Mutation() { + const isMutating = queryClient.isMutating() + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + isMutatingArray.push(isMutating) + + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) + fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(2) + await vi.advanceTimersByTimeAsync(501) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (filter mutationOpt1.mutationKey)', async () => { + const isMutatingArray: Array = [] + const queryClient = new QueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data2'), + }) + + function Mutation() { + const isMutating = queryClient.isMutating({ + mutationKey: mutationOpts1.mutationKey, + }) + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + + isMutatingArray.push(isMutating) + + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) + fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) + expect(isMutatingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutatingArray[1]).toEqual(1) + await vi.advanceTimersByTimeAsync(501) + expect(isMutatingArray[2]).toEqual(0) + expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + }) + + it('should return the number of fetching mutations when used with useMutationState (with mutationKey in mutationOptions)', async () => { const mutationStateArray: Array< MutationState > = [] const queryClient = new QueryClient() - const mutationOpts = mutationOptions({ mutationKey: ['mutation'], - mutationFn: () => Promise.resolve('data'), + mutationFn: () => sleep(10).then(() => 'data'), }) function Mutation() { const { mutate } = useMutation(mutationOpts) const data = useMutationState({ - filters: { ...mutationOpts, status: 'success' }, + filters: { mutationKey: mutationOpts.mutationKey, status: 'success' }, }) + mutationStateArray.push(...data) return ( @@ -128,10 +397,130 @@ describe('mutationOptions', () => { } const rendered = renderWithClient(queryClient, ) + + expect(mutationStateArray.length).toEqual(0) + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) + expect(mutationStateArray.length).toEqual(1) + expect(mutationStateArray[0]?.data).toEqual('data') + }) - await vi.advanceTimersByTimeAsync(0) + it('should return the number of fetching mutations when used with useMutationState (without mutationKey in mutationOptions)', async () => { + const mutationStateArray: Array< + MutationState + > = [] + const queryClient = new QueryClient() + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data'), + }) + + function Mutation() { + const { mutate } = useMutation(mutationOpts) + const data = useMutationState({ + filters: { status: 'success' }, + }) + + mutationStateArray.push(...data) + + return ( +
+ +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + expect(mutationStateArray.length).toEqual(0) + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(11) expect(mutationStateArray.length).toEqual(1) expect(mutationStateArray[0]?.data).toEqual('data') }) + + it('should return the number of fetching mutations when used with useMutationState', async () => { + const mutationStateArray: Array< + MutationState + > = [] + const queryClient = new QueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data2'), + }) + + function Mutation() { + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const data = useMutationState({ + filters: { status: 'success' }, + }) + + mutationStateArray.push(...data) + + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + expect(mutationStateArray.length).toEqual(0) + + fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) + fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) + await vi.advanceTimersByTimeAsync(11) + expect(mutationStateArray.length).toEqual(2) + expect(mutationStateArray[0]?.data).toEqual('data1') + expect(mutationStateArray[1]?.data).toEqual('data2') + }) + + it('should return the number of fetching mutations when used with useMutationState (filter mutationOpt1.mutationKey)', async () => { + const mutationStateArray: Array< + MutationState + > = [] + const queryClient = new QueryClient() + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data2'), + }) + + function Mutation() { + const { mutate: mutate1 } = useMutation(mutationOpts1) + const { mutate: mutate2 } = useMutation(mutationOpts2) + const data = useMutationState({ + filters: { mutationKey: mutationOpts1.mutationKey, status: 'success' }, + }) + + mutationStateArray.push(...data) + + return ( +
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + expect(mutationStateArray.length).toEqual(0) + + fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) + fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) + await vi.advanceTimersByTimeAsync(11) + expect(mutationStateArray.length).toEqual(1) + expect(mutationStateArray[0]?.data).toEqual('data1') + expect(mutationStateArray[1]).toBeFalsy() + }) }) From cd6ea9a7ab5d5562154bdd691ab74db77378a3c1 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Fri, 8 Aug 2025 15:57:42 +0200 Subject: [PATCH 332/432] fix(angular-query): align mutation options to most recent react-query types (#9543) * fix(angular-query): align mutation options to most recent react-query types * add tests --- .../src/__tests__/mutation-options.test-d.ts | 202 ++++++++++- .../src/__tests__/mutation-options.test.ts | 333 ++++++++++++++++++ .../angular-query-experimental/src/index.ts | 2 +- .../src/inject-mutation.ts | 7 +- .../src/mutation-options.ts | 74 +++- .../angular-query-experimental/src/types.ts | 11 + 6 files changed, 592 insertions(+), 37 deletions(-) create mode 100644 packages/angular-query-experimental/src/__tests__/mutation-options.test.ts diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts index e3412fe75f..7f802351f2 100644 --- a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts @@ -1,33 +1,199 @@ -import { assertType, describe, expectTypeOf, test } from 'vitest' -import { mutationOptions } from '../mutation-options' +import { assertType, describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { + injectIsMutating, + injectMutation, + injectMutationState, + mutationOptions, +} from '..' +import type { + DefaultError, + MutationState, + WithRequired, +} from '@tanstack/query-core' +import type { CreateMutationOptions, CreateMutationResult } from '../types' describe('mutationOptions', () => { - test('should not allow excess properties', () => { - assertType>([ - { - mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], - // @ts-expect-error this is a good error, because onMutates does not exist! - onMutates: 1000, + it('should not allow excess properties', () => { + // @ts-expect-error this is a good error, because onMutates does not exist! + mutationOptions({ + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onMutates: 1000, + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() }, - ]) - assertType>([ - { - mutationFn: () => Promise.resolve(5), - mutationKey: ['key'], - // @ts-expect-error this is a good error, because onMutates does not exist! - onMutates: 1000, + }) + }) + + it('should infer types for callbacks', () => { + mutationOptions({ + mutationFn: () => Promise.resolve(5), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() }, - ]) + }) }) - test('should infer types for callbacks', () => { + it('should infer types for onError callback', () => { mutationOptions({ + mutationFn: () => { + throw new Error('fail') + }, + mutationKey: ['key'], + onError: (error) => { + expectTypeOf(error).toEqualTypeOf() + }, + }) + }) + + it('should infer types for variables', () => { + mutationOptions({ + mutationFn: (vars) => { + expectTypeOf(vars).toEqualTypeOf<{ id: string }>() + return Promise.resolve(5) + }, + mutationKey: ['with-vars'], + }) + }) + + it('should infer context type correctly', () => { + mutationOptions({ mutationFn: () => Promise.resolve(5), mutationKey: ['key'], + onMutate: () => { + return { name: 'context' } + }, + onSuccess: (_data, _variables, context) => { + expectTypeOf(context).toEqualTypeOf<{ name: string }>() + }, + }) + }) + + it('should error if mutationFn return type mismatches TData', () => { + assertType( + mutationOptions({ + // @ts-expect-error this is a good error, because return type is string, not number + mutationFn: async () => Promise.resolve('wrong return'), + }), + ) + }) + + it('should allow mutationKey to be omitted', () => { + return mutationOptions({ + mutationFn: () => Promise.resolve(123), onSuccess: (data) => { expectTypeOf(data).toEqualTypeOf() }, }) }) + + it('should infer all types when not explicitly provided', () => { + expectTypeOf( + mutationOptions({ + mutationFn: (id: string) => Promise.resolve(id.length), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ).toEqualTypeOf< + WithRequired< + CreateMutationOptions, + 'mutationKey' + > + >() + expectTypeOf( + mutationOptions({ + mutationFn: (id: string) => Promise.resolve(id.length), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ).toEqualTypeOf< + Omit, 'mutationKey'> + >() + }) + + it('should infer types when used with injectMutation', () => { + const mutation = injectMutation(() => + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ) + expectTypeOf(mutation).toEqualTypeOf< + CreateMutationResult + >() + + injectMutation( + // should allow when used with injectMutation without mutationKey + () => + mutationOptions({ + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + }), + ) + }) + + it('should infer types when used with injectIsMutating', () => { + const isMutating = injectIsMutating( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + ) + expectTypeOf(isMutating()).toEqualTypeOf() + + injectIsMutating( + // @ts-expect-error filters should have mutationKey + mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + ) + }) + + it('should infer types when used with queryClient.isMutating', () => { + const queryClient = new QueryClient() + + const isMutating = queryClient.isMutating( + mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + ) + expectTypeOf(isMutating).toEqualTypeOf() + + queryClient.isMutating( + // @ts-expect-error filters should have mutationKey + mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + ) + }) + + it('should infer types when used with injectMutationState', () => { + const mutationState = injectMutationState(() => ({ + filters: mutationOptions({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve(5), + }), + })) + expectTypeOf(mutationState()).toEqualTypeOf< + Array> + >() + + injectMutationState({ + // @ts-expect-error filters should have mutationKey + filters: mutationOptions({ + mutationFn: () => Promise.resolve(5), + }), + }) + }) }) diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test.ts new file mode 100644 index 0000000000..ab040037d5 --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test.ts @@ -0,0 +1,333 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { provideZonelessChangeDetection } from '@angular/core' +import { TestBed } from '@angular/core/testing' +import { QueryClient } from '@tanstack/query-core' +import { sleep } from '@tanstack/query-test-utils' +import { + injectIsMutating, + injectMutation, + injectMutationState, + mutationOptions, + provideTanStackQuery, +} from '..' + +describe('mutationOptions', () => { + let queryClient: QueryClient + + beforeEach(() => { + vi.useFakeTimers() + queryClient = new QueryClient() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + }) + + afterEach(() => { + vi.useRealTimers() + }) + + it('should return the object received as a parameter without any modification (with mutationKey in mutationOptions)', () => { + const object = { + mutationKey: ['key'], + mutationFn: () => sleep(10).then(() => 5), + } as const + + expect(mutationOptions(object)).toStrictEqual(object) + }) + + it('should return the object received as a parameter without any modification (without mutationKey in mutationOptions)', () => { + const object = { + mutationFn: () => sleep(10).then(() => 5), + } as const + + expect(mutationOptions(object)).toStrictEqual(object) + }) + + it('should return the number of fetching mutations when used with injectIsMutating (with mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data'), + }) + + const [mutation, isMutating] = TestBed.runInInjectionContext(() => [ + injectMutation(() => mutationOpts), + injectIsMutating(), + ]) + + expect(isMutating()).toBe(0) + + mutation.mutate() + expect(isMutating()).toBe(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutating()).toBe(1) + await vi.advanceTimersByTimeAsync(51) + expect(isMutating()).toBe(0) + }) + + it('should return the number of fetching mutations when used with injectIsMutating (without mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data'), + }) + + const [mutation, isMutating] = TestBed.runInInjectionContext(() => [ + injectMutation(() => mutationOpts), + injectIsMutating(), + ]) + + expect(isMutating()).toBe(0) + + mutation.mutate() + expect(isMutating()).toBe(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutating()).toBe(1) + await vi.advanceTimersByTimeAsync(51) + expect(isMutating()).toBe(0) + }) + + it('should return the number of fetching mutations when used with injectIsMutating', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data2'), + }) + + const [mutation1, mutation2, isMutating] = TestBed.runInInjectionContext( + () => [ + injectMutation(() => mutationOpts1), + injectMutation(() => mutationOpts2), + injectIsMutating(), + ], + ) + + expect(isMutating()).toBe(0) + + mutation1.mutate() + mutation2.mutate() + expect(isMutating()).toBe(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutating()).toBe(2) + await vi.advanceTimersByTimeAsync(51) + expect(isMutating()).toBe(0) + }) + + it('should return the number of fetching mutations when used with injectIsMutating (filter mutationOpts1.mutationKey)', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['key'], + mutationFn: () => sleep(50).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(50).then(() => 'data2'), + }) + + const [mutation1, mutation2, isMutating] = TestBed.runInInjectionContext( + () => [ + injectMutation(() => mutationOpts1), + injectMutation(() => mutationOpts2), + injectIsMutating({ mutationKey: mutationOpts1.mutationKey }), + ], + ) + + expect(isMutating()).toBe(0) + + mutation1.mutate() + mutation2.mutate() + expect(isMutating()).toBe(0) + await vi.advanceTimersByTimeAsync(0) + expect(isMutating()).toBe(1) + await vi.advanceTimersByTimeAsync(51) + expect(isMutating()).toBe(0) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (with mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data'), + }) + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => mutationOpts), + ) + + expect(queryClient.isMutating(mutationOpts)).toBe(0) + + mutation.mutate() + expect(queryClient.isMutating(mutationOpts)).toBe(1) + await vi.advanceTimersByTimeAsync(501) + expect(queryClient.isMutating(mutationOpts)).toBe(0) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (without mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data'), + }) + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => mutationOpts), + ) + + expect(queryClient.isMutating()).toBe(0) + + mutation.mutate() + expect(queryClient.isMutating()).toBe(1) + await vi.advanceTimersByTimeAsync(501) + expect(queryClient.isMutating()).toBe(0) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data2'), + }) + + const [mutation1, mutation2] = TestBed.runInInjectionContext(() => [ + injectMutation(() => mutationOpts1), + injectMutation(() => mutationOpts2), + ]) + + expect(queryClient.isMutating()).toBe(0) + + mutation1.mutate() + mutation2.mutate() + expect(queryClient.isMutating()).toBe(2) + await vi.advanceTimersByTimeAsync(501) + expect(queryClient.isMutating()).toBe(0) + }) + + it('should return the number of fetching mutations when used with queryClient.isMutating (filter mutationOpt1.mutationKey)', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(500).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(500).then(() => 'data2'), + }) + + const [mutation1, mutation2] = TestBed.runInInjectionContext(() => [ + injectMutation(() => mutationOpts1), + injectMutation(() => mutationOpts2), + ]) + + expect( + queryClient.isMutating({ mutationKey: mutationOpts1.mutationKey }), + ).toBe(0) + + mutation1.mutate() + mutation2.mutate() + expect( + queryClient.isMutating({ mutationKey: mutationOpts1.mutationKey }), + ).toBe(1) + await vi.advanceTimersByTimeAsync(501) + expect( + queryClient.isMutating({ mutationKey: mutationOpts1.mutationKey }), + ).toBe(0) + }) + + it('should return the number of fetching mutations when used with injectMutationState (with mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data'), + }) + + const [mutation, mutationState] = TestBed.runInInjectionContext(() => [ + injectMutation(() => mutationOpts), + injectMutationState(() => ({ + filters: { mutationKey: mutationOpts.mutationKey, status: 'success' }, + })), + ]) + + expect(mutationState().length).toBe(0) + + mutation.mutate() + await vi.advanceTimersByTimeAsync(11) + expect(mutationState().length).toBe(1) + expect(mutationState()[0]?.data).toBe('data') + }) + + it('should return the number of fetching mutations when used with injectMutationState (without mutationKey in mutationOptions)', async () => { + const mutationOpts = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data'), + }) + + const [mutation, mutationState] = TestBed.runInInjectionContext(() => [ + injectMutation(() => mutationOpts), + injectMutationState(() => ({ + filters: { status: 'success' }, + })), + ]) + + expect(mutationState().length).toBe(0) + + mutation.mutate() + await vi.advanceTimersByTimeAsync(11) + expect(mutationState().length).toBe(1) + expect(mutationState()[0]?.data).toBe('data') + }) + + it('should return the number of fetching mutations when used with injectMutationState', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data2'), + }) + + const [mutation1, mutation2, mutationState] = TestBed.runInInjectionContext( + () => [ + injectMutation(() => mutationOpts1), + injectMutation(() => mutationOpts2), + injectMutationState(() => ({ + filters: { status: 'success' }, + })), + ], + ) + + expect(mutationState().length).toBe(0) + + mutation1.mutate() + mutation2.mutate() + await vi.advanceTimersByTimeAsync(11) + expect(mutationState().length).toBe(2) + expect(mutationState()[0]?.data).toBe('data1') + expect(mutationState()[1]?.data).toBe('data2') + }) + + it('should return the number of fetching mutations when used with injectMutationState (filter mutationOpt1.mutationKey)', async () => { + const mutationOpts1 = mutationOptions({ + mutationKey: ['mutation'], + mutationFn: () => sleep(10).then(() => 'data1'), + }) + const mutationOpts2 = mutationOptions({ + mutationFn: () => sleep(10).then(() => 'data2'), + }) + + const [mutation1, mutation2, mutationState] = TestBed.runInInjectionContext( + () => [ + injectMutation(() => mutationOpts1), + injectMutation(() => mutationOpts2), + injectMutationState(() => ({ + filters: { + mutationKey: mutationOpts1.mutationKey, + status: 'success', + }, + })), + ], + ) + + expect(mutationState().length).toBe(0) + + mutation1.mutate() + mutation2.mutate() + await vi.advanceTimersByTimeAsync(11) + expect(mutationState().length).toBe(1) + expect(mutationState()[0]?.data).toBe('data1') + }) +}) diff --git a/packages/angular-query-experimental/src/index.ts b/packages/angular-query-experimental/src/index.ts index 360be005e6..9c8a58724b 100644 --- a/packages/angular-query-experimental/src/index.ts +++ b/packages/angular-query-experimental/src/index.ts @@ -12,7 +12,7 @@ export type { } from './query-options' export { queryOptions } from './query-options' -export type { CreateMutationOptions } from './mutation-options' +export type { CreateMutationOptions } from './types' export { mutationOptions } from './mutation-options' export type { diff --git a/packages/angular-query-experimental/src/inject-mutation.ts b/packages/angular-query-experimental/src/inject-mutation.ts index 2cb465104f..af4ebbd93b 100644 --- a/packages/angular-query-experimental/src/inject-mutation.ts +++ b/packages/angular-query-experimental/src/inject-mutation.ts @@ -18,8 +18,11 @@ import { } from '@tanstack/query-core' import { signalProxy } from './signal-proxy' import type { DefaultError, MutationObserverResult } from '@tanstack/query-core' -import type { CreateMutateFunction, CreateMutationResult } from './types' -import type { CreateMutationOptions } from './mutation-options' +import type { + CreateMutateFunction, + CreateMutationOptions, + CreateMutationResult, +} from './types' export interface InjectMutationOptions { /** diff --git a/packages/angular-query-experimental/src/mutation-options.ts b/packages/angular-query-experimental/src/mutation-options.ts index b55f0367db..eaac0c5f85 100644 --- a/packages/angular-query-experimental/src/mutation-options.ts +++ b/packages/angular-query-experimental/src/mutation-options.ts @@ -1,8 +1,5 @@ -import type { - DefaultError, - MutationObserverOptions, - OmitKeyof, -} from '@tanstack/query-core' +import type { DefaultError, WithRequired } from '@tanstack/query-core' +import type { CreateMutationOptions } from './types' /** * Allows to share and re-use mutation options in a type-safe way. @@ -33,7 +30,6 @@ import type { * ``` * @param options - The mutation options. * @returns Mutation options. - * @public */ export function mutationOptions< TData = unknown, @@ -41,20 +37,66 @@ export function mutationOptions< TVariables = void, TContext = unknown, >( - options: MutationObserverOptions, -): CreateMutationOptions { - return options -} + options: WithRequired< + CreateMutationOptions, + 'mutationKey' + >, +): WithRequired< + CreateMutationOptions, + 'mutationKey' +> +export function mutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TContext = unknown, +>( + options: Omit< + CreateMutationOptions, + 'mutationKey' + >, +): Omit< + CreateMutationOptions, + 'mutationKey' +> /** - * @public + * Allows to share and re-use mutation options in a type-safe way. + * + * **Example** + * + * ```ts + * export class QueriesService { + * private http = inject(HttpClient); + * + * updatePost(id: number) { + * return mutationOptions({ + * mutationFn: (post: Post) => Promise.resolve(post), + * mutationKey: ["updatePost", id], + * onSuccess: (newPost) => { + * // ^? newPost: Post + * this.queryClient.setQueryData(["posts", id], newPost); + * }, + * }); + * } + * } + * + * queries = inject(QueriesService) + * idSignal = new Signal(0); + * mutation = injectMutation(() => this.queries.updatePost(this.idSignal())) + * + * mutation.mutate({ title: 'New Title' }) + * ``` + * @param options - The mutation options. + * @returns Mutation options. */ -export interface CreateMutationOptions< +export function mutationOptions< TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown, -> extends OmitKeyof< - MutationObserverOptions, - '_defaulted' - > {} +>( + options: CreateMutationOptions, +): CreateMutationOptions { + return options +} diff --git a/packages/angular-query-experimental/src/types.ts b/packages/angular-query-experimental/src/types.ts index 578eaa0864..7c5e3638c3 100644 --- a/packages/angular-query-experimental/src/types.ts +++ b/packages/angular-query-experimental/src/types.ts @@ -7,6 +7,7 @@ import type { InfiniteQueryObserverOptions, InfiniteQueryObserverResult, MutateFunction, + MutationObserverOptions, MutationObserverResult, OmitKeyof, Override, @@ -158,6 +159,16 @@ export type DefinedCreateInfiniteQueryResult< >, > = MapToSignals +export interface CreateMutationOptions< + TData = unknown, + TError = DefaultError, + TVariables = void, + TContext = unknown, +> extends OmitKeyof< + MutationObserverOptions, + '_defaulted' + > {} + /** * @public */ From edd1bd08e0ef9e55cd2d9339a63843539292fed7 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 8 Aug 2025 14:00:25 +0000 Subject: [PATCH 333/432] release: v5.84.2 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- 43 files changed, 74 insertions(+), 74 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 9adc6a5967..d2e169f44c 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index be335e7588..fcda8d487d 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.83.1", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index b6fce8778f..a9a099e026 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index ad19042177..6fd0252573 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.84.1", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-devtools-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 02b8973d4d..bc8704fdda 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 3c6c020747..c7ce0980da 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index c03eb4c26c..6720385281 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 8061e3cf9a..d085f58b6f 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 1cbc5d7ee2..47ce920b8e 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index eec13d6b9f..45f2f775c2 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 6b44d7d6c2..7a7e573cfd 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.1", + "@tanstack/angular-query-experimental": "^5.84.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index d26bd18e36..7a8ce2db67 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 45f4f98709..fe586892ad 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 81eb6a97d0..27728c5506 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 4c16c4f81b..0278ba6d83 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", - "@tanstack/react-query-persist-client": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query-persist-client": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index b41be61fc2..3dfe961909 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 282eaacb87..6757fef0cd 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 6373ce9769..7b7926544c 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 878aa5c811..60286d4c61 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", - "@tanstack/react-query-persist-client": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query-persist-client": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 013093f92a..b0bac4661c 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 043df5c2a4..a09bf243fd 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 9ec3ddd2e0..7db2c6e14a 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 5f17abacb0..9d088036fc 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", - "@tanstack/react-query-next-experimental": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query-next-experimental": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index fc8ccd3b0f..112ee9dbb0 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 1abeecde9c..37ef3c9b0c 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", - "@tanstack/react-query-persist-client": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query-persist-client": "^5.84.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index c12cf88944..39e3a045df 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index bab606c186..08010b231a 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index e0e0aaa39e..f880ce3917 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index d3033c1797..9129da7000 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 608713c569..0132e12505 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index e4339a6f77..4cc8222556 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index e1fffafd31..787ca2fe1a 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 908a70c612..bc25551103 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 15c24162ff..f73a2f0792 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 6caf014179..1fa1c78b24 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 18ab3b0aea..71224f8048 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index fe7af98c79..fb882c2581 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.1", - "@tanstack/react-query-devtools": "^5.84.1", + "@tanstack/react-query": "^5.84.2", + "@tanstack/react-query-devtools": "^5.84.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 6c41f6dc5d..2877d2ec26 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.84.1", + "version": "5.84.2", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 02ee5362d0..4576f41f14 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.84.1", + "version": "5.84.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 96d20c3834..0ddc1db03a 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.84.1", + "version": "5.84.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 4da3c267b2..121e94a892 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.84.1", + "version": "5.84.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index b3340046c0..ba1216a6ab 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.84.1", + "version": "5.84.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 15711edb07..47aef73348 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.84.1", + "version": "5.84.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", From 95db48b81a0e7471a16c56978b3acb608daa1dd6 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Sat, 9 Aug 2025 13:43:11 +0200 Subject: [PATCH 334/432] chore(angular-query): add infiniteQueryOptions tests from react-query (#9544) --- .../eslint.config.js | 6 + .../infinite-query-options.test-d.ts | 227 ++++++++++++++++++ .../__tests__/infinite-query-options.test.ts | 17 ++ .../src/__tests__/query-options.test.ts | 14 ++ 4 files changed, 264 insertions(+) create mode 100644 packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts create mode 100644 packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts create mode 100644 packages/angular-query-experimental/src/__tests__/query-options.test.ts diff --git a/packages/angular-query-experimental/eslint.config.js b/packages/angular-query-experimental/eslint.config.js index a86775ff27..f3b2546b02 100644 --- a/packages/angular-query-experimental/eslint.config.js +++ b/packages/angular-query-experimental/eslint.config.js @@ -38,4 +38,10 @@ export default [ ], }, }, + { + files: ['**/__tests__/**'], + rules: { + '@typescript-eslint/no-unnecessary-condition': 'off', + }, + }, ] diff --git a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts new file mode 100644 index 0000000000..4a7ce532bc --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test-d.ts @@ -0,0 +1,227 @@ +import { assertType, describe, expectTypeOf, it, test } from 'vitest' +import { QueryClient, dataTagSymbol } from '@tanstack/query-core' +import { infiniteQueryOptions } from '../infinite-query-options' +import { injectInfiniteQuery } from '../inject-infinite-query' +import { injectQuery } from '../inject-query' +import type { + DataTag, + InfiniteData, + InitialDataFunction, +} from '@tanstack/query-core' + +describe('infiniteQueryOptions', () => { + it('should not allow excess properties', () => { + assertType( + infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('data'), + getNextPageParam: () => 1, + initialPageParam: 1, + // @ts-expect-error this is a good error, because stallTime does not exist! + stallTime: 1000, + }), + ) + }) + it('should infer types for callbacks', () => { + infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('data'), + staleTime: 1000, + getNextPageParam: () => 1, + initialPageParam: 1, + select: (data) => { + expectTypeOf(data).toEqualTypeOf>() + }, + }) + }) + it('should work when passed to useInfiniteQuery', () => { + const options = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + const { data } = injectInfiniteQuery(() => options) + + // known issue: type of pageParams is unknown when returned from useInfiniteQuery + expectTypeOf(data()).toEqualTypeOf< + InfiniteData | undefined + >() + }) + + it('should work when passed to fetchInfiniteQuery', async () => { + const options = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + const data = await new QueryClient().fetchInfiniteQuery(options) + + expectTypeOf(data).toEqualTypeOf>() + }) + it('should tag the queryKey with the result type of the QueryFn', () => { + const { queryKey } = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + }) + it('should tag the queryKey even if no promise is returned', () => { + const { queryKey } = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => 'string', + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + }) + it('should tag the queryKey with the result type of the QueryFn if select is used', () => { + const { queryKey } = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + select: (data) => data.pages, + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf>() + }) + it('should return the proper type when passed to getQueryData', () => { + const { queryKey } = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + const queryClient = new QueryClient() + const data = queryClient.getQueryData(queryKey) + + expectTypeOf(data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + it('should properly type when passed to setQueryData', () => { + const { queryKey } = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + const queryClient = new QueryClient() + const data = queryClient.setQueryData(queryKey, (prev) => { + expectTypeOf(prev).toEqualTypeOf< + InfiniteData | undefined + >() + return prev + }) + + expectTypeOf(data).toEqualTypeOf< + InfiniteData | undefined + >() + }) + + test('should not be allowed to be passed to non-infinite query functions', () => { + const queryClient = new QueryClient() + const options = infiniteQueryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve('string'), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + injectQuery(() => options), + ) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + queryClient.ensureQueryData(options), + ) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + queryClient.fetchQuery(options), + ) + assertType( + // @ts-expect-error cannot pass infinite options to non-infinite query functions + queryClient.prefetchQuery(options), + ) + }) + + test('allow optional initialData function', () => { + const initialData: { example: boolean } | undefined = { example: true } + const queryOptions = infiniteQueryOptions({ + queryKey: ['example'], + queryFn: () => initialData, + initialData: initialData + ? () => ({ pages: [initialData], pageParams: [] }) + : undefined, + getNextPageParam: () => 1, + initialPageParam: 1, + }) + expectTypeOf(queryOptions.initialData).toMatchTypeOf< + | InitialDataFunction> + | InfiniteData<{ example: boolean }, number> + | undefined + >() + }) + + test('allow optional initialData object', () => { + const initialData: { example: boolean } | undefined = { example: true } + const queryOptions = infiniteQueryOptions({ + queryKey: ['example'], + queryFn: () => initialData, + initialData: initialData + ? { pages: [initialData], pageParams: [] } + : undefined, + getNextPageParam: () => 1, + initialPageParam: 1, + }) + expectTypeOf(queryOptions.initialData).toMatchTypeOf< + | InitialDataFunction> + | InfiniteData<{ example: boolean }, number> + | undefined + >() + }) + + it('should return a custom query key type', () => { + type MyQueryKey = [Array, { type: 'foo' }] + + const options = infiniteQueryOptions({ + queryKey: [['key'], { type: 'foo' }] as MyQueryKey, + queryFn: () => Promise.resolve(1), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + expectTypeOf(options.queryKey).toEqualTypeOf< + DataTag, Error> + >() + }) + + it('should return a custom query key type with datatag', () => { + type MyQueryKey = DataTag< + [Array, { type: 'foo' }], + number, + Error & { myMessage: string } + > + + const options = infiniteQueryOptions({ + queryKey: [['key'], { type: 'foo' }] as MyQueryKey, + queryFn: () => Promise.resolve(1), + getNextPageParam: () => 1, + initialPageParam: 1, + }) + + expectTypeOf(options.queryKey).toEqualTypeOf< + DataTag, Error & { myMessage: string }> + >() + }) +}) diff --git a/packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts new file mode 100644 index 0000000000..fde0ac74ba --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/infinite-query-options.test.ts @@ -0,0 +1,17 @@ +import { describe, expect, it } from 'vitest' + +import { infiniteQueryOptions } from '../infinite-query-options' +import type { CreateInfiniteQueryOptions } from '../types' + +describe('infiniteQueryOptions', () => { + it('should return the object received as a parameter without any modification.', () => { + const object: CreateInfiniteQueryOptions = { + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + getNextPageParam: () => null, + initialPageParam: null, + } + + expect(infiniteQueryOptions(object)).toStrictEqual(object) + }) +}) diff --git a/packages/angular-query-experimental/src/__tests__/query-options.test.ts b/packages/angular-query-experimental/src/__tests__/query-options.test.ts new file mode 100644 index 0000000000..5c30ee85a9 --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/query-options.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, it } from 'vitest' +import { queryOptions } from '../query-options' +import type { CreateQueryOptions } from '../types' + +describe('queryOptions', () => { + it('should return the object received as a parameter without any modification.', () => { + const object: CreateQueryOptions = { + queryKey: ['key'], + queryFn: () => Promise.resolve(5), + } as const + + expect(queryOptions(object)).toStrictEqual(object) + }) +}) From 77e53b0c217c048a912d6ad7589c22e81efdba3d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 10 Aug 2025 03:05:44 +0900 Subject: [PATCH 335/432] test(react-query/useIsFetching): remove unnecessary 'advanceTimersByTimeAsync', unify to 'rendered', and add detailed 'expect' for custom queryClient and state updates during rendering (#9530) --- .../src/__tests__/useIsFetching.test.tsx | 66 ++++++++++++------- 1 file changed, 43 insertions(+), 23 deletions(-) diff --git a/packages/react-query/src/__tests__/useIsFetching.test.tsx b/packages/react-query/src/__tests__/useIsFetching.test.tsx index 3102b0a5df..99793d4596 100644 --- a/packages/react-query/src/__tests__/useIsFetching.test.tsx +++ b/packages/react-query/src/__tests__/useIsFetching.test.tsx @@ -16,12 +16,12 @@ describe('useIsFetching', () => { // See https://github.com/tannerlinsley/react-query/issues/105 it('should update as queries start and stop fetching', async () => { - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) + const queryClient = new QueryClient() const key = queryKey() function IsFetching() { const isFetching = useIsFetching() + return
isFetching: {isFetching}
} @@ -46,20 +46,19 @@ describe('useIsFetching', () => { ) } - const { getByText, getByRole } = renderWithClient(queryClient, ) + const rendered = renderWithClient(queryClient, ) - expect(getByText('isFetching: 0')).toBeInTheDocument() + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() - fireEvent.click(getByRole('button', { name: /setReady/i })) + fireEvent.click(rendered.getByRole('button', { name: /setReady/i })) await vi.advanceTimersByTimeAsync(0) - expect(getByText('isFetching: 1')).toBeInTheDocument() + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(51) - expect(getByText('isFetching: 0')).toBeInTheDocument() + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) it('should not update state while rendering', async () => { - const queryCache = new QueryCache() - const queryClient = new QueryClient({ queryCache }) + const queryClient = new QueryClient() const key1 = queryKey() const key2 = queryKey() @@ -68,23 +67,27 @@ describe('useIsFetching', () => { function IsFetching() { const isFetching = useIsFetching() + isFetchingArray.push(isFetching) + return null } function FirstQuery() { useQuery({ queryKey: key1, - queryFn: () => sleep(100).then(() => 'data'), + queryFn: () => sleep(100).then(() => 'data1'), }) + return null } function SecondQuery() { useQuery({ queryKey: key2, - queryFn: () => sleep(100).then(() => 'data'), + queryFn: () => sleep(100).then(() => 'data2'), }) + return null } @@ -108,7 +111,18 @@ describe('useIsFetching', () => { renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(151) + expect(isFetchingArray[0]).toEqual(0) + await vi.advanceTimersByTimeAsync(0) + expect(isFetchingArray[1]).toEqual(1) + await vi.advanceTimersByTimeAsync(50) + expect(isFetchingArray[2]).toEqual(1) + await vi.advanceTimersByTimeAsync(1) + expect(isFetchingArray[3]).toEqual(2) + await vi.advanceTimersByTimeAsync(50) + expect(isFetchingArray[4]).toEqual(1) + await vi.advanceTimersByTimeAsync(50) + expect(isFetchingArray[5]).toEqual(0) + expect(isFetchingArray).toEqual([0, 1, 1, 2, 1, 0]) }) @@ -122,16 +136,18 @@ describe('useIsFetching', () => { function One() { useQuery({ queryKey: key1, - queryFn: () => sleep(10).then(() => 'test'), + queryFn: () => sleep(10).then(() => 'test1'), }) + return null } function Two() { useQuery({ queryKey: key2, - queryFn: () => sleep(20).then(() => 'test'), + queryFn: () => sleep(20).then(() => 'test2'), }) + return null } @@ -155,15 +171,15 @@ describe('useIsFetching', () => { ) } - const { getByText, getByRole } = renderWithClient(queryClient, ) + const rendered = renderWithClient(queryClient, ) - expect(getByText('isFetching: 0')).toBeInTheDocument() + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() - fireEvent.click(getByRole('button', { name: /setStarted/i })) + fireEvent.click(rendered.getByRole('button', { name: /setStarted/i })) await vi.advanceTimersByTimeAsync(0) - expect(getByText('isFetching: 1')).toBeInTheDocument() + expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(11) - expect(getByText('isFetching: 0')).toBeInTheDocument() + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() // at no point should we have isFetching: 2 expect(isFetchingArray).toEqual(expect.not.arrayContaining([2])) @@ -190,14 +206,16 @@ describe('useIsFetching', () => { const rendered = renderWithClient(queryClient, ) - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() }) it('should use provided custom queryClient', async () => { - const queryClient = new QueryClient() + const onSuccess = vi.fn() + + const queryCache = new QueryCache({ onSuccess }) + const queryClient = new QueryClient({ queryCache }) const key = queryKey() function Page() { @@ -218,9 +236,11 @@ describe('useIsFetching', () => { ) } - const rendered = render() + const rendered = render() - await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('isFetching: 1')).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(11) + expect(rendered.getByText('isFetching: 0')).toBeInTheDocument() + expect(onSuccess).toHaveBeenCalledOnce() }) }) From 6bf2eb745020503f465cca6653944c61850e4fbf Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 10 Aug 2025 03:25:04 +0900 Subject: [PATCH 336/432] chore(tsconfig.json): add 'test-setup.ts' to 'include' array (#9545) Co-authored-by: Jonghyeon Ko --- packages/angular-query-experimental/tsconfig.json | 9 ++++++++- packages/angular-query-persist-client/tsconfig.json | 8 +++++++- .../query-broadcast-client-experimental/tsconfig.json | 8 +++++++- packages/react-query/tsconfig.json | 8 +++++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 8c772f947e..4f63891ef7 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -7,6 +7,13 @@ "useDefineForClassFields": false, "target": "ES2022" }, - "include": ["src", "scripts", "*.config.js", "*.config.ts", "package.json"], + "include": [ + "src", + "scripts", + "test-setup.ts", + "*.config.js", + "*.config.ts", + "package.json" + ], "references": [{ "path": "../query-core" }, { "path": "../query-devtools" }] } diff --git a/packages/angular-query-persist-client/tsconfig.json b/packages/angular-query-persist-client/tsconfig.json index ec37b81b27..f1900ba9fe 100644 --- a/packages/angular-query-persist-client/tsconfig.json +++ b/packages/angular-query-persist-client/tsconfig.json @@ -7,7 +7,13 @@ "useDefineForClassFields": false, "target": "ES2022" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.js", + "*.config.ts", + "package.json" + ], "references": [ { "path": "../angular-query-experimental" }, { "path": "../query-persist-client-core" } diff --git a/packages/query-broadcast-client-experimental/tsconfig.json b/packages/query-broadcast-client-experimental/tsconfig.json index 1f819b2cde..af7124f202 100644 --- a/packages/query-broadcast-client-experimental/tsconfig.json +++ b/packages/query-broadcast-client-experimental/tsconfig.json @@ -4,6 +4,12 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": [ + "src", + "test-setup.ts", + "*.config.js", + "*.config.ts", + "package.json" + ], "references": [{ "path": "../query-core" }] } diff --git a/packages/react-query/tsconfig.json b/packages/react-query/tsconfig.json index 00867eb368..660f6b7d90 100644 --- a/packages/react-query/tsconfig.json +++ b/packages/react-query/tsconfig.json @@ -5,5 +5,11 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"] + "include": [ + "src", + "test-setup.ts", + "*.config.js", + "*.config.ts", + "package.json" + ] } From 0455d58bd72d88b2369f1a35692089f818834abb Mon Sep 17 00:00:00 2001 From: Lubos Date: Sun, 10 Aug 2025 02:44:39 +0800 Subject: [PATCH 337/432] Add Hey API to community projects for TanStack Query (React) (#9534) * Add Hey API to community projects for TanStack Query (React) * Update Hey API link to TanStack Query plugin This should make Hey API more relevant when people search for things like "openapi tanstack query" --------- Co-authored-by: Jonghyeon Ko --- docs/framework/react/community/community-projects.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/framework/react/community/community-projects.md b/docs/framework/react/community/community-projects.md index 5d71d6a3b7..fb256b2ead 100644 --- a/docs/framework/react/community/community-projects.md +++ b/docs/framework/react/community/community-projects.md @@ -43,6 +43,12 @@ Generate React Query hooks from your GraphQL schema Link: https://the-guild.dev/graphql/codegen +## Hey API + +The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more. + +Link: https://heyapi.dev/openapi-ts/plugins/tanstack-query + ## Http-wizard End-to-end type-safe Fastify API with typeScript magic โœจ From 3a999ccd9f8d905b5aa81869e9a90b0b0a492073 Mon Sep 17 00:00:00 2001 From: Lubos Date: Sun, 10 Aug 2025 02:48:20 +0800 Subject: [PATCH 338/432] Add Hey API to community projects for TanStack Query (Vue) (#9535) * Add Hey API to community projects for TanStack Query (Vue) * Update Hey API link to TanStack Query plugin This should make Hey API more relevant when people search for things like "openapi tanstack query" --------- Co-authored-by: Jonghyeon Ko --- docs/framework/vue/community/community-projects.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/framework/vue/community/community-projects.md b/docs/framework/vue/community/community-projects.md index 3c294feb1e..8ac617008f 100644 --- a/docs/framework/vue/community/community-projects.md +++ b/docs/framework/vue/community/community-projects.md @@ -13,6 +13,12 @@ A Chrome browser extension that provides devtools for TanStack Query, allowing y Link: https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai +## Hey API + +The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more. + +Link: https://heyapi.dev/openapi-ts/plugins/tanstack-query + ## Query Key factory A library for creating typesafe standardized query keys, useful for cache management in `@tanstack/query` From fba477ba2b5d1193be13cd9f4ebcea02e88a18e2 Mon Sep 17 00:00:00 2001 From: Lubos Date: Sun, 10 Aug 2025 02:52:50 +0800 Subject: [PATCH 339/432] Add oRPC to community projects for TanStack Query (React) (#9538) * Add oRPC to community projects for TanStack Query (React) * Update oRPC link to TanStack Query integration This should make oRPC more relevant when people search for things like "orpc tanstack query" --------- Co-authored-by: Jonghyeon Ko --- docs/framework/react/community/community-projects.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/framework/react/community/community-projects.md b/docs/framework/react/community/community-projects.md index fb256b2ead..7cf0e2bf1a 100644 --- a/docs/framework/react/community/community-projects.md +++ b/docs/framework/react/community/community-projects.md @@ -104,6 +104,12 @@ A 2KB min, typesafe fetch wrapper that uses static TypeScript type inference and Link: https://openapi-ts.dev/openapi-react-query/ +## oRPC + +Easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards. + +Link: https://orpc.unnoq.com/docs/integrations/tanstack-query + ## Orval Generate TypeScript client from OpenAPI specifications From 763cee3e16f8f94104859d9ebf8da19399cb4d7f Mon Sep 17 00:00:00 2001 From: Lubos Date: Sun, 10 Aug 2025 02:58:05 +0800 Subject: [PATCH 340/432] Add oRPC to community projects for TanStack Query (Vue) (#9539) * Add oRPC to community projects for TanStack Query (Vue) * Update oRPC link to TanStack Query integration This should make oRPC more relevant when people search for things like "orpc tanstack query" --------- Co-authored-by: Jonghyeon Ko --- docs/framework/vue/community/community-projects.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/framework/vue/community/community-projects.md b/docs/framework/vue/community/community-projects.md index 8ac617008f..b6f3cf064c 100644 --- a/docs/framework/vue/community/community-projects.md +++ b/docs/framework/vue/community/community-projects.md @@ -13,6 +13,12 @@ A Chrome browser extension that provides devtools for TanStack Query, allowing y Link: https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai +## oRPC + +Easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards. + +Link: https://orpc.unnoq.com/docs/integrations/tanstack-query + ## Hey API The OpenAPI to TypeScript codegen. Generate clients, SDKs, validators, and more. From d25c0da344695acbc878904de4f52d4033a9a789 Mon Sep 17 00:00:00 2001 From: Dmytro Borysov <4720760+dborysov@users.noreply.github.com> Date: Mon, 11 Aug 2025 13:08:47 +0200 Subject: [PATCH 341/432] docs: Add Firefox and Edge browser extension support to devtools docs (#9548) - Add browser logos for Chrome, Firefox, and Edge - Update devtools documentation across all frameworks to include Firefox and Edge extensions - Replace Chrome-only messaging with multi-browser support - Add inline browser icons with links to respective extension stores --- docs/framework/angular/devtools.md | 6 +++++- docs/framework/react/community/community-projects.md | 10 +++++++--- docs/framework/react/devtools.md | 6 +++++- docs/framework/solid/devtools.md | 6 +++++- docs/framework/svelte/devtools.md | 6 +++++- docs/framework/vue/community/community-projects.md | 10 +++++++--- docs/framework/vue/devtools.md | 6 +++++- media/browser-logos/chrome.svg | 1 + media/browser-logos/edge.svg | 1 + media/browser-logos/firefox.svg | 2 ++ 10 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 media/browser-logos/chrome.svg create mode 100644 media/browser-logos/edge.svg create mode 100644 media/browser-logos/firefox.svg diff --git a/docs/framework/angular/devtools.md b/docs/framework/angular/devtools.md index f3d73b6987..3e8811fef4 100644 --- a/docs/framework/angular/devtools.md +++ b/docs/framework/angular/devtools.md @@ -3,7 +3,11 @@ id: devtools title: Devtools --- -> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: +> +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Enable devtools diff --git a/docs/framework/react/community/community-projects.md b/docs/framework/react/community/community-projects.md index 7cf0e2bf1a..94995a0721 100644 --- a/docs/framework/react/community/community-projects.md +++ b/docs/framework/react/community/community-projects.md @@ -31,11 +31,15 @@ A family of libraries for building building browser and gRPC-compatible HTTP API Link: https://connectrpc.com/docs -## DevTools Chrome Extension +## DevTools Browser Extensions -A Chrome browser extension that provides devtools for TanStack Query, allowing you to inspect and debug queries, mutations, and cache state directly in Chrome DevTools. +Browser extensions for Chrome, Firefox, and Edge that provide devtools for TanStack Query, allowing you to inspect and debug queries, mutations, and cache state directly in browser DevTools. -Link: https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai +Links: + +- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## GraphQL Code Generator diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md index 6e0004293b..bf7904d89d 100644 --- a/docs/framework/react/devtools.md +++ b/docs/framework/react/devtools.md @@ -7,7 +7,11 @@ Wave your hands in the air and shout hooray because React Query comes with dedic When you begin your React Query journey, you'll want these devtools by your side. They help visualize all the inner workings of React Query and will likely save you hours of debugging if you find yourself in a pinch! -> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: +> +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) > For React Native users: A third-party native macOS app is available for debugging React Query in ANY js-based application. Monitor queries across devices in real-time. Check it out here: [rn-better-dev-tools](https://github.com/LovesWorking/rn-better-dev-tools) diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index 4fe752a385..772903dd23 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -7,7 +7,11 @@ Wave your hands in the air and shout hooray because Solid Query comes with dedic When you begin your Solid Query journey, you'll want these devtools by your side. They help visualize all of the inner workings of Solid Query and will likely save you hours of debugging if you find yourself in a pinch! -> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: +> +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Install and Import the Devtools diff --git a/docs/framework/svelte/devtools.md b/docs/framework/svelte/devtools.md index 56d2260344..fa69364f1e 100644 --- a/docs/framework/svelte/devtools.md +++ b/docs/framework/svelte/devtools.md @@ -3,7 +3,11 @@ id: devtools title: Devtools --- -> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: +> +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Install and Import the Devtools diff --git a/docs/framework/vue/community/community-projects.md b/docs/framework/vue/community/community-projects.md index b6f3cf064c..8ea35d639f 100644 --- a/docs/framework/vue/community/community-projects.md +++ b/docs/framework/vue/community/community-projects.md @@ -7,11 +7,15 @@ There are lots of community projects that build on top of Vue Query and use it t > Please note that these projects are entirely community maintained. If you have questions about these projects, please reach out to the project maintainers. -## DevTools Chrome Extension +## DevTools Browser Extensions -A Chrome browser extension that provides devtools for TanStack Query, allowing you to inspect and debug queries, mutations, and cache state directly in Chrome DevTools. +Browser extensions for Chrome, Firefox, and Edge that provide devtools for TanStack Query, allowing you to inspect and debug queries, mutations, and cache state directly in browser DevTools. -Link: https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai +Links: + +- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## oRPC diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index 3180fab8e4..002bdce692 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -7,7 +7,11 @@ Wave your hands in the air and shout hooray because Vue Query comes with dedicat When you begin your Vue Query journey, you'll want these devtools by your side. They help visualize all of the inner workings of Vue Query and will likely save you hours of debugging if you find yourself in a pinch! -> For Google Chrome users: A third-party Chrome extension is available for debugging TanStack Query directly in Chrome DevTools. This provides the same functionality as the framework-specific devtools packages. Check it out here: [TanStack Query DevTools](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: +> +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Component based Devtools (Vue 3) diff --git a/media/browser-logos/chrome.svg b/media/browser-logos/chrome.svg new file mode 100644 index 0000000000..b138a3f432 --- /dev/null +++ b/media/browser-logos/chrome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/media/browser-logos/edge.svg b/media/browser-logos/edge.svg new file mode 100644 index 0000000000..4f95f8de93 --- /dev/null +++ b/media/browser-logos/edge.svg @@ -0,0 +1 @@ + diff --git a/media/browser-logos/firefox.svg b/media/browser-logos/firefox.svg new file mode 100644 index 0000000000..9ad3545b68 --- /dev/null +++ b/media/browser-logos/firefox.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file From 6402d756b702ac560b69a5ce84d6e4e764b96451 Mon Sep 17 00:00:00 2001 From: Dmytro Borysov <4720760+dborysov@users.noreply.github.com> Date: Mon, 11 Aug 2025 18:22:20 +0200 Subject: [PATCH 342/432] chore: update browser icons (#9555) --- docs/framework/angular/devtools.md | 6 +++--- docs/framework/react/community/community-projects.md | 6 +++--- docs/framework/react/devtools.md | 6 +++--- docs/framework/solid/devtools.md | 6 +++--- docs/framework/svelte/devtools.md | 6 +++--- docs/framework/vue/community/community-projects.md | 6 +++--- docs/framework/vue/devtools.md | 6 +++--- media/browser-logos/chrome.svg | 1 - media/browser-logos/edge.svg | 1 - media/browser-logos/firefox.svg | 2 -- 10 files changed, 21 insertions(+), 25 deletions(-) delete mode 100644 media/browser-logos/chrome.svg delete mode 100644 media/browser-logos/edge.svg delete mode 100644 media/browser-logos/firefox.svg diff --git a/docs/framework/angular/devtools.md b/docs/framework/angular/devtools.md index 3e8811fef4..721e3d5e10 100644 --- a/docs/framework/angular/devtools.md +++ b/docs/framework/angular/devtools.md @@ -5,9 +5,9 @@ title: Devtools > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Enable devtools diff --git a/docs/framework/react/community/community-projects.md b/docs/framework/react/community/community-projects.md index 94995a0721..173c5d3258 100644 --- a/docs/framework/react/community/community-projects.md +++ b/docs/framework/react/community/community-projects.md @@ -37,9 +37,9 @@ Browser extensions for Chrome, Firefox, and Edge that provide devtools for TanSt Links: -- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## GraphQL Code Generator diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md index bf7904d89d..f7c489e016 100644 --- a/docs/framework/react/devtools.md +++ b/docs/framework/react/devtools.md @@ -9,9 +9,9 @@ When you begin your React Query journey, you'll want these devtools by your side > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) > For React Native users: A third-party native macOS app is available for debugging React Query in ANY js-based application. Monitor queries across devices in real-time. Check it out here: [rn-better-dev-tools](https://github.com/LovesWorking/rn-better-dev-tools) diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index 772903dd23..ac6f91f3c1 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -9,9 +9,9 @@ When you begin your Solid Query journey, you'll want these devtools by your side > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Install and Import the Devtools diff --git a/docs/framework/svelte/devtools.md b/docs/framework/svelte/devtools.md index fa69364f1e..d19925fe9e 100644 --- a/docs/framework/svelte/devtools.md +++ b/docs/framework/svelte/devtools.md @@ -5,9 +5,9 @@ title: Devtools > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Install and Import the Devtools diff --git a/docs/framework/vue/community/community-projects.md b/docs/framework/vue/community/community-projects.md index 8ea35d639f..8a1068cf35 100644 --- a/docs/framework/vue/community/community-projects.md +++ b/docs/framework/vue/community/community-projects.md @@ -13,9 +13,9 @@ Browser extensions for Chrome, Firefox, and Edge that provide devtools for TanSt Links: -- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## oRPC diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index 002bdce692..f9a8364f8a 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -9,9 +9,9 @@ When you begin your Vue Query journey, you'll want these devtools by your side. > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Component based Devtools (Vue 3) diff --git a/media/browser-logos/chrome.svg b/media/browser-logos/chrome.svg deleted file mode 100644 index b138a3f432..0000000000 --- a/media/browser-logos/chrome.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/media/browser-logos/edge.svg b/media/browser-logos/edge.svg deleted file mode 100644 index 4f95f8de93..0000000000 --- a/media/browser-logos/edge.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/media/browser-logos/firefox.svg b/media/browser-logos/firefox.svg deleted file mode 100644 index 9ad3545b68..0000000000 --- a/media/browser-logos/firefox.svg +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file From c63713fc38eab68f9dfd67b4d024f9148814cc74 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Tue, 12 Aug 2025 14:37:39 +0200 Subject: [PATCH 343/432] feat: add solid devtools panel export to solid devtools (#9551) * feat: add solid devtools panel export to solid devtools * ci: apply automated fixes * fix knip + eslint --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister Co-authored-by: Oscar Beaumont --- packages/react-query-devtools/src/index.ts | 2 + .../src/devtoolsPanel.tsx | 85 +++++++++++++++++++ packages/solid-query-devtools/src/index.tsx | 9 ++ 3 files changed, 96 insertions(+) create mode 100644 packages/solid-query-devtools/src/devtoolsPanel.tsx diff --git a/packages/react-query-devtools/src/index.ts b/packages/react-query-devtools/src/index.ts index e922d8788d..f0636e62b8 100644 --- a/packages/react-query-devtools/src/index.ts +++ b/packages/react-query-devtools/src/index.ts @@ -16,3 +16,5 @@ export const ReactQueryDevtoolsPanel: (typeof DevtoolsPanel)['ReactQueryDevtools return null } : DevtoolsPanel.ReactQueryDevtoolsPanel + +export type DevtoolsPanelOptions = DevtoolsPanel.DevtoolsPanelOptions diff --git a/packages/solid-query-devtools/src/devtoolsPanel.tsx b/packages/solid-query-devtools/src/devtoolsPanel.tsx new file mode 100644 index 0000000000..215ce0903b --- /dev/null +++ b/packages/solid-query-devtools/src/devtoolsPanel.tsx @@ -0,0 +1,85 @@ +import { createEffect, createMemo, onCleanup, onMount } from 'solid-js' +import { onlineManager, useQueryClient } from '@tanstack/solid-query' +import { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools' +import type { DevtoolsErrorType } from '@tanstack/query-devtools' +import type { QueryClient } from '@tanstack/solid-query' + +export interface DevtoolsPanelOptions { + /** + * Custom instance of QueryClient + */ + client?: QueryClient + /** + * Use this so you can define custom errors that can be shown in the devtools. + */ + errorTypes?: Array + /** + * Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. + */ + styleNonce?: string + /** + * Use this so you can attach the devtool's styles to specific element in the DOM. + */ + shadowDOMTarget?: ShadowRoot + + /** + * Custom styles for the devtools panel + * @default { height: '500px' } + * @example { height: '100%' } + * @example { height: '100%', width: '100%' } + */ + style?: CSSStyleValue + + /** + * Callback function that is called when the devtools panel is closed + */ + onClose?: () => unknown + /** + * Set this to true to hide disabled queries from the devtools panel. + */ + hideDisabledQueries?: boolean +} + +export default function SolidQueryDevtoolsPanel(props: DevtoolsPanelOptions) { + const queryClient = useQueryClient() + const client = createMemo(() => props.client || queryClient) + let ref!: HTMLDivElement + const { errorTypes, styleNonce, shadowDOMTarget, hideDisabledQueries } = props + const devtools = new TanstackQueryDevtoolsPanel({ + client: client(), + queryFlavor: 'Solid Query', + version: '5', + onlineManager, + buttonPosition: 'bottom-left', + position: 'bottom', + initialIsOpen: true, + errorTypes, + styleNonce, + shadowDOMTarget, + onClose: props.onClose, + hideDisabledQueries, + }) + createEffect(() => { + devtools.setClient(client()) + }) + createEffect(() => { + devtools.setOnClose(props.onClose ?? (() => {})) + }) + + createEffect(() => { + devtools.setErrorTypes(props.errorTypes || []) + }) + + onMount(() => { + devtools.mount(ref) + onCleanup(() => devtools.unmount()) + }) + + return ( +
+ ) +} diff --git a/packages/solid-query-devtools/src/index.tsx b/packages/solid-query-devtools/src/index.tsx index a67e7cede1..e6fd3ba983 100644 --- a/packages/solid-query-devtools/src/index.tsx +++ b/packages/solid-query-devtools/src/index.tsx @@ -1,9 +1,18 @@ import { isDev } from 'solid-js/web' import clientOnly from './clientOnly' import type SolidQueryDevtoolsComp from './devtools' +import type SolidQueryDevtoolsCompPanel from './devtoolsPanel' export const SolidQueryDevtools: typeof SolidQueryDevtoolsComp = isDev ? clientOnly(() => import('./devtools')) : function () { return null } + +export const SolidQueryDevtoolsPanel: typeof SolidQueryDevtoolsCompPanel = isDev + ? clientOnly(() => import('./devtoolsPanel')) + : function () { + return null + } + +export type { DevtoolsPanelOptions } from './devtoolsPanel' From aab51d93981e1de27abdcfd421cc4f6fcbc46e94 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 12 Aug 2025 12:41:10 +0000 Subject: [PATCH 344/432] release: v5.85.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 2 +- examples/solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- examples/solid/default-query-function/package.json | 2 +- examples/solid/simple/package.json | 2 +- examples/solid/solid-start-streaming/package.json | 2 +- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- 50 files changed, 81 insertions(+), 81 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index d2e169f44c..c482b2da66 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index fcda8d487d..a3862e6180 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.83.1", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index a9a099e026..8b79fa788c 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 6fd0252573..b5b1d22188 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.84.2", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-devtools-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index bc8704fdda..dfd4ee8679 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index c7ce0980da..c026d2c6ce 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 6720385281..c87728b3db 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index d085f58b6f..d573c00a9d 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 47ce920b8e..687bec3614 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 45f2f775c2..b8458a0e93 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 7a7e573cfd..503bc6c84d 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.84.2", + "@tanstack/angular-query-experimental": "^5.85.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 7a8ce2db67..857deda2a5 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index fe586892ad..29ae33d86c 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 27728c5506..555c89fdfe 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 0278ba6d83..01533eb5ed 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", - "@tanstack/react-query-persist-client": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query-persist-client": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 3dfe961909..879f04fb3a 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 6757fef0cd..b0e981e454 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 7b7926544c..6e2b0a6a4c 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 60286d4c61..31fa517007 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", - "@tanstack/react-query-persist-client": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query-persist-client": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b0bac4661c..3d4362dd2a 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index a09bf243fd..ddec19f940 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 7db2c6e14a..d211071dce 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 9d088036fc..8a3e6cf15e 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", - "@tanstack/react-query-next-experimental": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query-next-experimental": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 112ee9dbb0..920c882ffc 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 37ef3c9b0c..67f7a8ef56 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.83.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", - "@tanstack/react-query-persist-client": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query-persist-client": "^5.85.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 39e3a045df..ad06de3a31 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 08010b231a..35bc13b7ec 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index f880ce3917..108096448f 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 9129da7000..3f02080a22 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 0132e12505..3694bb61f3 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 4cc8222556..15d2bb3617 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 787ca2fe1a..07589ced22 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index bc25551103..0829bf7b84 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index f73a2f0792..ad502e9c9e 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 1fa1c78b24..2e278ab06e 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 71224f8048..1d9a686c36 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index fb882c2581..655f78f182 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.84.2", - "@tanstack/react-query-devtools": "^5.84.2", + "@tanstack/react-query": "^5.85.0", + "@tanstack/react-query-devtools": "^5.85.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 8bb4584dbf..c05222bf87 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -16,7 +16,7 @@ "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.84.0", + "@tanstack/solid-query-devtools": "^5.85.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 005a061180..4a8df1df37 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.84.0", + "@tanstack/solid-query-devtools": "^5.85.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 20c90c267f..bd3908b320 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.84.0", + "@tanstack/solid-query-devtools": "^5.85.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index caa110572b..90820052bf 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.84.0", + "@tanstack/solid-query-devtools": "^5.85.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 92ecee6e8c..bf74b3c9c0 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.84.0", + "@tanstack/solid-query-devtools": "^5.85.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 8a40679408..63f20f5cfb 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -13,7 +13,7 @@ "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.84.0", + "@tanstack/solid-query-devtools": "^5.85.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 2877d2ec26..f515ef15b4 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.84.2", + "version": "5.85.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 4576f41f14..3960aba748 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.84.2", + "version": "5.85.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 0ddc1db03a..042d9ee7ca 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.84.2", + "version": "5.85.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 121e94a892..636f406277 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.84.2", + "version": "5.85.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index ba1216a6ab..a940209ad7 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.84.2", + "version": "5.85.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 47aef73348..7e9350105f 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.84.2", + "version": "5.85.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 3445b7ef4d..0a2b00003f 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.84.0", + "version": "5.85.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", From 9ae770b9d0846e32494dca51b1387b8a32f02552 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Thu, 14 Aug 2025 09:50:27 +0200 Subject: [PATCH 345/432] chore: update bundle-size badges to react 19.1.1 --- .github/workflows/pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ec188c41bf..989f74ac94 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -71,6 +71,6 @@ jobs: Sizes for commit ${{ env.COMMIT_SHA }}: | Branch | Bundle Size | |--------|--------| - | Main | [![](https://deno.bundlejs.com/badge?q=https://esm.sh/@tanstack/react-query/es2022/react-query.mjs&config={%22esbuild%22:{%22external%22:[%22react@^19.1.0/jsx-runtime?target=es2022%22,%22react@^19.1.0?target=es2022%22]}}&badge=detailed)](https://bundlejs.com/?q=https://esm.sh/@tanstack/react-query/es2022/react-query.mjs&config=%7B%22esbuild%22:%7B%22external%22:%5B%22react@%5E19.1.0/jsx-runtime?target=es2022%22,%22react@%5E19.1.0?target=es2022%22%5D%7D%7D) | - | This PR | [![](https://deno.bundlejs.com/badge?q=https://esm.sh/pr/@tanstack/react-query@${{ env.COMMIT_SHA }}/es2022/react-query.mjs&config={%22esbuild%22:{%22external%22:[%22react@^19.1.0/jsx-runtime?target=es2022%22,%22react@^19.1.0?target=es2022%22]}}&badge=detailed)](https://bundlejs.com/?q=https://esm.sh/pr/@tanstack/react-query@${{ env.COMMIT_SHA }}/es2022/react-query.mjs&config=%7B%22esbuild%22:%7B%22external%22:%5B%22react@%5E19.1.0/jsx-runtime?target=es2022%22,%22react@%5E19.1.0?target=es2022%22%5D%7D%7D) | + | Main | [![](https://deno.bundlejs.com/badge?q=https://esm.sh/@tanstack/react-query/es2022/react-query.mjs&config={%22esbuild%22:{%22external%22:[%22react@^19.1.1/jsx-runtime?target=es2022%22,%22react@^19.1.1?target=es2022%22]}}&badge=detailed)](https://bundlejs.com/?q=https://esm.sh/@tanstack/react-query/es2022/react-query.mjs&config=%7B%22esbuild%22:%7B%22external%22:%5B%22react@%5E19.1.1/jsx-runtime?target=es2022%22,%22react@%5E19.1.1?target=es2022%22%5D%7D%7D) | + | This PR | [![](https://deno.bundlejs.com/badge?q=https://esm.sh/pr/@tanstack/react-query@${{ env.COMMIT_SHA }}/es2022/react-query.mjs&config={%22esbuild%22:{%22external%22:[%22react@^19.1.1/jsx-runtime?target=es2022%22,%22react@^19.1.1?target=es2022%22]}}&badge=detailed)](https://bundlejs.com/?q=https://esm.sh/pr/@tanstack/react-query@${{ env.COMMIT_SHA }}/es2022/react-query.mjs&config=%7B%22esbuild%22:%7B%22external%22:%5B%22react@%5E19.1.1/jsx-runtime?target=es2022%22,%22react@%5E19.1.1?target=es2022%22%5D%7D%7D) | continue-on-error: true From 4806dfaf236029262ca6485ae18579587bd42b58 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 14 Aug 2025 09:56:12 +0200 Subject: [PATCH 346/432] fix(query-core): have revertState capture manual updates (#9558) --- .../src/__tests__/streamedQuery.test.tsx | 41 +++++++++++++++++++ packages/query-core/src/query.ts | 14 ++++--- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index c2cebb46e2..6eccf4536c 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -350,6 +350,47 @@ describe('streamedQuery', () => { unsubscribe() }) + test('should abort when unsubscribed', async () => { + const key = queryKey() + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: streamedQuery({ + queryFn: (context) => { + // just consume the signal + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + const numbers = context.signal ? 3 : 0 + return createAsyncNumberGenerator(numbers) + }, + }), + }) + + const unsubscribe = observer.subscribe(vi.fn()) + + expect(queryClient.getQueryState(key)).toMatchObject({ + status: 'pending', + fetchStatus: 'fetching', + data: undefined, + }) + + await vi.advanceTimersByTimeAsync(60) + + expect(queryClient.getQueryState(key)).toMatchObject({ + status: 'success', + fetchStatus: 'fetching', + data: [0], + }) + + unsubscribe() + + await vi.advanceTimersByTimeAsync(10) + + expect(queryClient.getQueryState(key)).toMatchObject({ + status: 'success', + fetchStatus: 'idle', + data: [0], + }) + }) + test('should support maxChunks', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 0987564694..8ffe43e1c1 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -604,22 +604,26 @@ export class Query< fetchMeta: action.meta ?? null, } case 'success': - // If fetching ends successfully, we don't need revertState as a fallback anymore. - this.#revertState = undefined - return { + const newState = { ...state, data: action.data, dataUpdateCount: state.dataUpdateCount + 1, dataUpdatedAt: action.dataUpdatedAt ?? Date.now(), error: null, isInvalidated: false, - status: 'success', + status: 'success' as const, ...(!action.manual && { - fetchStatus: 'idle', + fetchStatus: 'idle' as const, fetchFailureCount: 0, fetchFailureReason: null, }), } + + // If fetching ends successfully, we don't need revertState as a fallback anymore. + // For manual updates, capture the state to revert to it in case of a cancellation. + this.#revertState = action.manual ? newState : undefined + + return newState case 'error': const error = action.error From 31f51b97fa24166a33766b59937684a8826ee59b Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 14 Aug 2025 07:57:58 +0000 Subject: [PATCH 347/432] release: v5.85.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index c482b2da66..b638049d74 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index a3862e6180..0d720ecacd 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.83.1", + "@tanstack/query-async-storage-persister": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 8b79fa788c..7309eca00f 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index b5b1d22188..2e2f1b47c7 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-devtools-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index dfd4ee8679..936840cfe6 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index c026d2c6ce..cbdeb6ebe4 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index c87728b3db..97c38d8901 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index d573c00a9d..d2be55a13c 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 687bec3614..0aebde8bc6 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index b8458a0e93..ab67c72a09 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 503bc6c84d..4cbd3f79c8 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.0", + "@tanstack/angular-query-experimental": "^5.85.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 857deda2a5..cafb9acd9d 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 29ae33d86c..a728152650 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 555c89fdfe..e37a1743d9 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 01533eb5ed..2e3ada953b 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", - "@tanstack/react-query-persist-client": "^5.85.0", + "@tanstack/query-async-storage-persister": "^5.85.1", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query-persist-client": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 879f04fb3a..55c9421445 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index b0e981e454..7a56644874 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 6e2b0a6a4c..b49d5636ce 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 31fa517007..af202c7285 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", - "@tanstack/react-query-persist-client": "^5.85.0", + "@tanstack/query-async-storage-persister": "^5.85.1", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query-persist-client": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 3d4362dd2a..91b369346b 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index ddec19f940..ae9fe65bb5 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index d211071dce..3941afa05e 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 8a3e6cf15e..ada4ac0e5a 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", - "@tanstack/react-query-next-experimental": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query-next-experimental": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 920c882ffc..2c8e514ec7 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 67f7a8ef56..952d8ef374 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.1", + "@tanstack/query-async-storage-persister": "^5.85.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", - "@tanstack/react-query-persist-client": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query-persist-client": "^5.85.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index ad06de3a31..213d9359cc 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 35bc13b7ec..f9bf3660dc 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 108096448f..71a90908b8 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 3f02080a22..72de6dc70b 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 3694bb61f3..1718bf66c6 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 15d2bb3617..2ed1d7eafd 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 07589ced22..e42b1c9651 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 0829bf7b84..bd37f39a90 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index ad502e9c9e..cc1a4c998d 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 2e278ab06e..2f8c2e1663 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 1d9a686c36..73523dea74 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 655f78f182..a4e2c4424b 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.0", - "@tanstack/react-query-devtools": "^5.85.0", + "@tanstack/react-query": "^5.85.1", + "@tanstack/react-query-devtools": "^5.85.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index c05222bf87..25ce13fecc 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.85.0", + "@tanstack/solid-query": "^5.85.1", + "@tanstack/solid-query-devtools": "^5.85.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 4a8df1df37..0508eb018b 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.85.0", + "@tanstack/solid-query": "^5.85.1", + "@tanstack/solid-query-devtools": "^5.85.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index bd3908b320..99d5640cce 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.85.0", + "@tanstack/solid-query": "^5.85.1", + "@tanstack/solid-query-devtools": "^5.85.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 90820052bf..e3a95035b2 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.85.0", + "@tanstack/solid-query": "^5.85.1", + "@tanstack/solid-query-devtools": "^5.85.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index bf74b3c9c0..f1aca9039d 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.85.0", + "@tanstack/solid-query": "^5.85.1", + "@tanstack/solid-query-devtools": "^5.85.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 63f20f5cfb..fe4adc477a 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.83.1", - "@tanstack/solid-query-devtools": "^5.85.0", + "@tanstack/solid-query": "^5.85.1", + "@tanstack/solid-query-devtools": "^5.85.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 14ce35e9eb..e024839368 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0" + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index d97f1acfca..9698f3c8ca 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.83.1", - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0", - "@tanstack/svelte-query-persist-client": "^5.83.1" + "@tanstack/query-async-storage-persister": "^5.85.1", + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1", + "@tanstack/svelte-query-persist-client": "^5.85.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 97a14d329f..d0881af748 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0" + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 9fa0cb91b0..71ecc10377 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0" + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index f96e4a431e..9e1f133dde 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0" + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 6c89120c62..1c32abd309 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0" + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index bb24b5955a..01cdf6d13a 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0" + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index a2e271959e..7486d6c1a5 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.83.1", - "@tanstack/svelte-query-devtools": "^5.84.0" + "@tanstack/svelte-query": "^5.85.1", + "@tanstack/svelte-query-devtools": "^5.85.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index cdea803345..5d2e834ebc 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.1", + "@tanstack/vue-query": "^5.85.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 41d96daf79..fa091503ba 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.1", + "@tanstack/vue-query": "^5.85.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 7a5f9e6221..f74730d66e 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.1", - "@tanstack/vue-query-devtools": "^5.84.0", + "@tanstack/vue-query": "^5.85.1", + "@tanstack/vue-query-devtools": "^5.85.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 289ae4caae..d17c47231a 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.1", + "@tanstack/vue-query": "^5.85.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index eb86b6643e..e75740b21d 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.83.1" + "@tanstack/vue-query": "^5.85.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 6cd23ce60f..46fd2e1caa 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.83.1", - "@tanstack/query-persist-client-core": "^5.83.1", - "@tanstack/query-sync-storage-persister": "^5.83.1", - "@tanstack/vue-query": "^5.83.1", + "@tanstack/query-core": "^5.85.1", + "@tanstack/query-persist-client-core": "^5.85.1", + "@tanstack/query-sync-storage-persister": "^5.85.1", + "@tanstack/vue-query": "^5.85.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 963150c6b4..5b4840de32 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.83.1", - "@tanstack/vue-query-devtools": "^5.84.0", + "@tanstack/vue-query": "^5.85.1", + "@tanstack/vue-query-devtools": "^5.85.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index f515ef15b4..01e76044bc 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.0", + "version": "5.85.1", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 3960aba748..c4aaf5c285 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.0", + "version": "5.85.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 09ad1b7795..95ddeae1ff 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.83.1", + "version": "5.85.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 3a11a7c9c3..44e18a6665 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.83.1", + "version": "5.85.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 759c79b069..4abbeeee7c 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.83.1", + "version": "5.85.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 2da6501986..513f095ff3 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.83.1", + "version": "5.85.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 9a2f1ee21c..79ccdcba02 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.83.1", + "version": "5.85.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 042d9ee7ca..dc425ad51d 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.0", + "version": "5.85.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 636f406277..959c2dfc8d 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.0", + "version": "5.85.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index a940209ad7..1c4e64af44 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.0", + "version": "5.85.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 7e9350105f..01d97fc810 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.0", + "version": "5.85.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 0a2b00003f..04176cb8a1 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.0", + "version": "5.85.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index ae0fa936f3..9f108b9a2c 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.83.1", + "version": "5.85.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index d6f75e5de3..4fc0631c51 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.83.1", + "version": "5.85.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 47a0511eaa..c507f3efe0 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.84.0", + "version": "5.85.1", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index a115f98994..170b87cf87 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.83.1", + "version": "5.85.1", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 5d5cacbc6f..8351294f17 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.83.1", + "version": "5.85.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 7fd2d0528f..25ae10c8a5 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.84.0", + "version": "5.85.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index a600659718..44839b2625 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.83.1", + "version": "5.85.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 099157678173f875745d208e4806d1fa7b3367b5 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 14 Aug 2025 10:49:58 +0200 Subject: [PATCH 348/432] fix(query-core): query cancellation and reverting (#9293) * fix: we don't want errors that get reverted internally to throw on imperative methods to achieve that, we let the retryer's `onError` "transform" the result back to potentially TData, and if so, we'll resolve the promise to that instead; that means calls to `fetchQuery` will be "successful" when a cancellation happens in the meantime, but they will then resolve to the reverted data; also, if the initial fetch is cancelled, we would still throw, as there is no data to revert to. * refactor: async/await * minimal test adjustments * test: fix it * fix: revertState is now a local variable * fix: make sure "silent" reverts do not reject ongoing promises up until now, silent reverts have only stopped the query from going into error state, but the exposed promise was still rejected now, the promise won't reject because a silent revert indicates another refetch happening, so we'd want to get that promise's result instead this also means "silent" is an internal thing that shouldn't be used by consumers, because it can lead to never resolving promises instead * chore: bring back isCancelledError and deprecate it * test: revert changes * test: minimal adjustment to timings --- .../src/__tests__/hydration.test.tsx | 3 - .../__tests__/infiniteQueryBehavior.test.tsx | 4 +- .../query-core/src/__tests__/query.test.tsx | 124 +++++++++++++++-- .../src/__tests__/queryClient.test.tsx | 2 +- packages/query-core/src/query.ts | 126 +++++++++--------- packages/query-core/src/retryer.ts | 7 +- .../src/__tests__/useQuery.test.tsx | 1 + 7 files changed, 181 insertions(+), 86 deletions(-) diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index 5582e9da16..30a4b9a985 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -1398,8 +1398,5 @@ describe('dehydration and rehydration', () => { // Need to await the original promise or else it will get a cancellation // error and test will fail await originalPromise - - clientQueryClient.clear() - serverQueryClient.clear() }) }) diff --git a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx index 5c365f5152..db96ea17da 100644 --- a/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx +++ b/packages/query-core/src/__tests__/infiniteQueryBehavior.test.tsx @@ -315,7 +315,9 @@ describe('InfiniteQueryBehavior', () => { // Cancel the query const query = observer.getCurrentQuery() - query.cancel() + await query.cancel() + + vi.advanceTimersByTime(10) expect(observerResult).toMatchObject({ isFetching: false, diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index c041f1c276..febe71cf4c 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -5,12 +5,12 @@ import { sleep, } from '@tanstack/query-test-utils' import { + CancelledError, Query, QueryClient, QueryObserver, dehydrate, hydrate, - isCancelledError, } from '..' import { hashQueryKeyByOptions } from '../utils' import { mockOnlineManagerIsOnline, setIsServer } from './utils' @@ -190,14 +190,52 @@ describe('query', () => { await promise expect.unreachable() } catch { - expect(isCancelledError(result)).toBe(true) - expect(result instanceof Error).toBe(true) + expect(result).toBeInstanceOf(CancelledError) } finally { // Reset visibilityState to original value visibilityMock.mockRestore() } }) + test('should not throw a CancelledError when fetchQuery is in progress and the last observer unsubscribes when AbortSignal is consumed', async () => { + const key = queryKey() + + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: async () => { + await sleep(100) + return 'data' + }, + }) + + const unsubscribe = observer.subscribe(() => undefined) + await vi.advanceTimersByTimeAsync(100) + + expect(queryCache.find({ queryKey: key })?.state.data).toBe('data') + + const promise = queryClient.fetchQuery({ + queryKey: key, + queryFn: async ({ signal }) => { + await sleep(100) + return 'data2' + String(signal) + }, + }) + + // Ensure the fetch is in progress + await vi.advanceTimersByTimeAsync(10) + + // Unsubscribe while fetch is in progress + unsubscribe() + // await queryClient.cancelQueries() + + await vi.advanceTimersByTimeAsync(90) + + // Fetch should complete successfully without throwing a CancelledError + await expect(promise).resolves.toBe('data') + + expect(queryCache.find({ queryKey: key })?.state.data).toBe('data') + }) + test('should provide context to queryFn', () => { const key = queryKey() @@ -330,7 +368,7 @@ describe('query', () => { expect(signal.aborted).toBe(true) expect(onAbort).toHaveBeenCalledTimes(1) expect(abortListener).toHaveBeenCalledTimes(1) - expect(isCancelledError(error)).toBe(true) + expect(error).toBeInstanceOf(CancelledError) }) test('should not continue if explicitly cancelled', async () => { @@ -362,7 +400,7 @@ describe('query', () => { await vi.advanceTimersByTimeAsync(100) expect(queryFn).toHaveBeenCalledTimes(1) - expect(isCancelledError(error)).toBe(true) + expect(error).toBeInstanceOf(CancelledError) }) test('should not error if reset while pending', async () => { @@ -375,7 +413,18 @@ describe('query', () => { throw new Error() }) - queryClient.fetchQuery({ queryKey: key, queryFn, retry: 3, retryDelay: 10 }) + let error + + queryClient + .fetchQuery({ + queryKey: key, + queryFn, + retry: 3, + retryDelay: 10, + }) + .catch((e) => { + error = e + }) // Ensure the query is pending const query = queryCache.find({ queryKey: key })! @@ -390,6 +439,12 @@ describe('query', () => { expect(queryFn).toHaveBeenCalledTimes(1) // have been called, expect(query.state.error).toBe(null) // not have an error, and expect(query.state.fetchStatus).toBe('idle') // not be loading any longer + expect(query.state.data).toBe(undefined) // have no data + + // the call to fetchQuery must reject + // because it was reset and not reverted + // so it would resolve with undefined otherwise + expect(error).toBeInstanceOf(CancelledError) }) test('should reset to default state when created from hydration', async () => { @@ -426,7 +481,7 @@ describe('query', () => { await vi.advanceTimersByTimeAsync(100) expect(queryFn).toHaveBeenCalledTimes(1) - expect(isCancelledError(query.state.error)).toBe(true) + expect(query.state.error).toBeInstanceOf(CancelledError) const result = query.fetch() await vi.advanceTimersByTimeAsync(50) await expect(result).resolves.toBe('data') @@ -459,7 +514,7 @@ describe('query', () => { await vi.advanceTimersByTimeAsync(10) expect(query.state.error).toBe(error) - expect(isCancelledError(query.state.error)).toBe(false) + expect(query.state.error).not.toBeInstanceOf(CancelledError) }) test('the previous query status should be kept when refetching', async () => { @@ -897,7 +952,7 @@ describe('query', () => { unsubscribe() }) - test('should always revert to idle state (#5958)', async () => { + test('should always revert to idle state (#5968)', async () => { let mockedData = [1] const key = queryKey() @@ -931,24 +986,69 @@ describe('query', () => { const unsubscribe = observer.subscribe(() => undefined) await vi.advanceTimersByTimeAsync(50) // let it resolve + expect(observer.getCurrentResult().data).toBe('1') + expect(observer.getCurrentResult().fetchStatus).toBe('idle') + mockedData = [1, 2] // update "server" state in the background - queryClient.invalidateQueries({ queryKey: key }) - queryClient.invalidateQueries({ queryKey: key }) + void queryClient.invalidateQueries({ queryKey: key }) + await vi.advanceTimersByTimeAsync(5) + void queryClient.invalidateQueries({ queryKey: key }) + await vi.advanceTimersByTimeAsync(5) unsubscribe() // unsubscribe to simulate unmount + await vi.advanceTimersByTimeAsync(5) + + // reverted to previous data and idle fetchStatus + expect(queryCache.find({ queryKey: key })?.state).toMatchObject({ + status: 'success', + data: '1', + fetchStatus: 'idle', + }) // set up a new observer to simulate a mount of new component const newObserver = new QueryObserver(queryClient, { queryKey: key, queryFn, }) - const spy = vi.fn() newObserver.subscribe(({ data }) => spy(data)) await vi.advanceTimersByTimeAsync(60) // let it resolve expect(spy).toHaveBeenCalledWith('1 - 2') }) + test('should not reject a promise when silently cancelled in the background', async () => { + const key = queryKey() + + let x = 0 + + queryClient.setQueryData(key, 'initial') + const queryFn = vi.fn().mockImplementation(async () => { + await sleep(100) + return 'data' + x + }) + + const promise = queryClient.fetchQuery({ + queryKey: key, + queryFn, + }) + + await vi.advanceTimersByTimeAsync(10) + + expect(queryFn).toHaveBeenCalledTimes(1) + + x = 1 + + // cancel ongoing re-fetches + void queryClient.refetchQueries({ queryKey: key }, { cancelRefetch: true }) + + await vi.advanceTimersByTimeAsync(10) + + // The promise should not reject + await vi.waitFor(() => expect(promise).resolves.toBe('data1')) + + expect(queryFn).toHaveBeenCalledTimes(2) + }) + it('should have an error log when queryFn data is not serializable', async () => { const consoleMock = vi.spyOn(console, 'error') diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index 568270d5dd..4f512053a8 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -1049,7 +1049,7 @@ describe('queryClient', () => { queryKey: key1, queryFn: () => 'data', }) - queryClient.fetchQuery({ + queryClient.prefetchQuery({ queryKey: key1, queryFn: () => sleep(1000).then(() => 'data2'), }) diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 8ffe43e1c1..270177e866 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -8,7 +8,7 @@ import { timeUntilStale, } from './utils' import { notifyManager } from './notifyManager' -import { canFetch, createRetryer, isCancelledError } from './retryer' +import { CancelledError, canFetch, createRetryer } from './retryer' import { Removable } from './removable' import type { QueryCache } from './queryCache' import type { QueryClient } from './queryClient' @@ -372,7 +372,7 @@ export class Query< } } - fetch( + async fetch( options?: QueryOptions, fetchOptions?: FetchOptions, ): Promise { @@ -495,32 +495,6 @@ export class Query< this.#dispatch({ type: 'fetch', meta: context.fetchOptions?.meta }) } - const onError = (error: TError | { silent?: boolean }) => { - // Optimistically update state if needed - if (!(isCancelledError(error) && error.silent)) { - this.#dispatch({ - type: 'error', - error: error as TError, - }) - } - - if (!isCancelledError(error)) { - // Notify cache callback - this.#cache.config.onError?.( - error as any, - this as Query, - ) - this.#cache.config.onSettled?.( - this.state.data, - error as any, - this as Query, - ) - } - - // Schedule query gc after fetching - this.scheduleGc() - } - // Try to fetch the data this.#retryer = createRetryer({ initialPromise: fetchOptions?.initialPromise as @@ -528,36 +502,6 @@ export class Query< | undefined, fn: context.fetchFn as () => Promise, abort: abortController.abort.bind(abortController), - onSuccess: (data) => { - if (data === undefined) { - if (process.env.NODE_ENV !== 'production') { - console.error( - `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`, - ) - } - onError(new Error(`${this.queryHash} data is undefined`) as any) - return - } - - try { - this.setData(data) - } catch (error) { - onError(error as TError) - return - } - - // Notify cache callback - this.#cache.config.onSuccess?.(data, this as Query) - this.#cache.config.onSettled?.( - data, - this.state.error as any, - this as Query, - ) - - // Schedule query gc after fetching - this.scheduleGc() - }, - onError, onFail: (failureCount, error) => { this.#dispatch({ type: 'failed', failureCount, error }) }, @@ -573,7 +517,65 @@ export class Query< canRun: () => true, }) - return this.#retryer.start() + try { + const data = await this.#retryer.start() + // this is more of a runtime guard + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (data === undefined) { + if (process.env.NODE_ENV !== 'production') { + console.error( + `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`, + ) + } + throw new Error(`${this.queryHash} data is undefined`) + } + + this.setData(data) + + // Notify cache callback + this.#cache.config.onSuccess?.(data, this as Query) + this.#cache.config.onSettled?.( + data, + this.state.error as any, + this as Query, + ) + return data + } catch (error) { + if (error instanceof CancelledError) { + if (error.silent) { + // silent cancellation implies a new fetch is going to be started, + // so we hatch onto that promise + return this.#retryer.promise + } else if (error.revert) { + this.setState({ + ...this.#revertState, + fetchStatus: 'idle' as const, + }) + // transform error into reverted state data + return this.state.data! + } + } + this.#dispatch({ + type: 'error', + error: error as TError, + }) + + // Notify cache callback + this.#cache.config.onError?.( + error as any, + this as Query, + ) + this.#cache.config.onSettled?.( + this.state.data, + error as any, + this as Query, + ) + + throw error // rethrow the error for further handling + } finally { + // Schedule query gc after fetching + this.scheduleGc() + } } #dispatch(action: Action): void { @@ -618,7 +620,6 @@ export class Query< fetchFailureReason: null, }), } - // If fetching ends successfully, we don't need revertState as a fallback anymore. // For manual updates, capture the state to revert to it in case of a cancellation. this.#revertState = action.manual ? newState : undefined @@ -626,11 +627,6 @@ export class Query< return newState case 'error': const error = action.error - - if (isCancelledError(error) && error.revert && this.#revertState) { - return { ...this.#revertState, fetchStatus: 'idle' } - } - return { ...state, error, diff --git a/packages/query-core/src/retryer.ts b/packages/query-core/src/retryer.ts index baa93aa5b4..3bc4070f46 100644 --- a/packages/query-core/src/retryer.ts +++ b/packages/query-core/src/retryer.ts @@ -10,8 +10,6 @@ interface RetryerConfig { fn: () => TData | Promise initialPromise?: Promise abort?: () => void - onError?: (error: TError) => void - onSuccess?: (data: TData) => void onFail?: (failureCount: number, error: TError) => void onPause?: () => void onContinue?: () => void @@ -65,6 +63,9 @@ export class CancelledError extends Error { } } +/** + * @deprecated Use instanceof `CancelledError` instead. + */ export function isCancelledError(value: any): value is CancelledError { return value instanceof CancelledError } @@ -104,7 +105,6 @@ export function createRetryer( const resolve = (value: any) => { if (!isResolved) { isResolved = true - config.onSuccess?.(value) continueFn?.() thenable.resolve(value) } @@ -113,7 +113,6 @@ export function createRetryer( const reject = (value: any) => { if (!isResolved) { isResolved = true - config.onError?.(value) continueFn?.() thenable.reject(value) } diff --git a/packages/react-query/src/__tests__/useQuery.test.tsx b/packages/react-query/src/__tests__/useQuery.test.tsx index 0b85ad136d..7eea42110c 100644 --- a/packages/react-query/src/__tests__/useQuery.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.test.tsx @@ -3075,6 +3075,7 @@ describe('useQuery', () => { fireEvent.click(rendered.getByRole('button', { name: /hide/i })) fireEvent.click(rendered.getByRole('button', { name: /cancel/i })) expect(rendered.getByRole('button', { name: /show/i })).toBeInTheDocument() + await vi.advanceTimersByTimeAsync(1) fireEvent.click(rendered.getByRole('button', { name: /show/i })) await vi.advanceTimersByTimeAsync(11) await vi.advanceTimersByTimeAsync(110) From e14f39c6eec7310a9d73ade48ed64d147ef84f62 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 14 Aug 2025 08:51:42 +0000 Subject: [PATCH 349/432] release: v5.85.2 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index b638049d74..84c848e793 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 0d720ecacd..d34ab7f330 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.1", + "@tanstack/query-async-storage-persister": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 7309eca00f..c981b3dc1d 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 2e2f1b47c7..369eb6d5eb 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.1", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-devtools-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 936840cfe6..625feca818 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index cbdeb6ebe4..97f5f6f61d 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 97c38d8901..d1cd708f9d 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index d2be55a13c..3c5254c714 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 0aebde8bc6..a58c51af81 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index ab67c72a09..10969db0ab 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 4cbd3f79c8..6a8fcb1bda 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.1", + "@tanstack/angular-query-experimental": "^5.85.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index cafb9acd9d..82f88c8751 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index a728152650..d7d816ba16 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index e37a1743d9..ba60318291 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 2e3ada953b..0ee5a4b206 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.1", - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", - "@tanstack/react-query-persist-client": "^5.85.1", + "@tanstack/query-async-storage-persister": "^5.85.2", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query-persist-client": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 55c9421445..fe7e2f42a2 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 7a56644874..23483e6655 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index b49d5636ce..8222c8d7f4 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index af202c7285..0e754fbbf1 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.1", - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", - "@tanstack/react-query-persist-client": "^5.85.1", + "@tanstack/query-async-storage-persister": "^5.85.2", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query-persist-client": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 91b369346b..0ea85be0ff 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index ae9fe65bb5..e0057750d1 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 3941afa05e..d965001a1c 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index ada4ac0e5a..d82870775f 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", - "@tanstack/react-query-next-experimental": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query-next-experimental": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 2c8e514ec7..008aaffa8d 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 952d8ef374..856c6db43e 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.1", + "@tanstack/query-async-storage-persister": "^5.85.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", - "@tanstack/react-query-persist-client": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query-persist-client": "^5.85.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 213d9359cc..b00a59d6f1 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index f9bf3660dc..70429d1488 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 71a90908b8..942bc1dd3e 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 72de6dc70b..7c6559e2e3 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 1718bf66c6..7a041a21dd 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 2ed1d7eafd..d4b78d7f26 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index e42b1c9651..6f140e2211 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index bd37f39a90..fd2be51152 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index cc1a4c998d..720f26e9d2 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 2f8c2e1663..9e554aec0b 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 73523dea74..114fd84e3a 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index a4e2c4424b..bc9231cc61 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.1", - "@tanstack/react-query-devtools": "^5.85.1", + "@tanstack/react-query": "^5.85.2", + "@tanstack/react-query-devtools": "^5.85.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 25ce13fecc..f15b8f1d67 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.1", - "@tanstack/solid-query-devtools": "^5.85.1", + "@tanstack/solid-query": "^5.85.2", + "@tanstack/solid-query-devtools": "^5.85.2", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 0508eb018b..39f18421ff 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.1", - "@tanstack/solid-query-devtools": "^5.85.1", + "@tanstack/solid-query": "^5.85.2", + "@tanstack/solid-query-devtools": "^5.85.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 99d5640cce..64e11951be 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.1", - "@tanstack/solid-query-devtools": "^5.85.1", + "@tanstack/solid-query": "^5.85.2", + "@tanstack/solid-query-devtools": "^5.85.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index e3a95035b2..db466493e8 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.1", - "@tanstack/solid-query-devtools": "^5.85.1", + "@tanstack/solid-query": "^5.85.2", + "@tanstack/solid-query-devtools": "^5.85.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index f1aca9039d..3bfb139b78 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.1", - "@tanstack/solid-query-devtools": "^5.85.1", + "@tanstack/solid-query": "^5.85.2", + "@tanstack/solid-query-devtools": "^5.85.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index fe4adc477a..4a75f172f5 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.1", - "@tanstack/solid-query-devtools": "^5.85.1", + "@tanstack/solid-query": "^5.85.2", + "@tanstack/solid-query-devtools": "^5.85.2", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index e024839368..75e569e018 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1" + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 9698f3c8ca..f79dfdf0f1 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.1", - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1", - "@tanstack/svelte-query-persist-client": "^5.85.1" + "@tanstack/query-async-storage-persister": "^5.85.2", + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2", + "@tanstack/svelte-query-persist-client": "^5.85.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index d0881af748..7cae07a2b1 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1" + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 71ecc10377..acf0d50797 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1" + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 9e1f133dde..5993c24e54 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1" + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 1c32abd309..be967d17ca 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1" + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 01cdf6d13a..c8c008c66f 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1" + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 7486d6c1a5..62167179a2 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.1", - "@tanstack/svelte-query-devtools": "^5.85.1" + "@tanstack/svelte-query": "^5.85.2", + "@tanstack/svelte-query-devtools": "^5.85.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 5d2e834ebc..747e0e4e4c 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.1", + "@tanstack/vue-query": "^5.85.2", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index fa091503ba..d7fce488a8 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.1", + "@tanstack/vue-query": "^5.85.2", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index f74730d66e..517c4b1841 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.1", - "@tanstack/vue-query-devtools": "^5.85.1", + "@tanstack/vue-query": "^5.85.2", + "@tanstack/vue-query-devtools": "^5.85.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index d17c47231a..11a2594516 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.1", + "@tanstack/vue-query": "^5.85.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index e75740b21d..8ddda6be2f 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.1" + "@tanstack/vue-query": "^5.85.2" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 46fd2e1caa..9d36399158 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.1", - "@tanstack/query-persist-client-core": "^5.85.1", - "@tanstack/query-sync-storage-persister": "^5.85.1", - "@tanstack/vue-query": "^5.85.1", + "@tanstack/query-core": "^5.85.2", + "@tanstack/query-persist-client-core": "^5.85.2", + "@tanstack/query-sync-storage-persister": "^5.85.2", + "@tanstack/vue-query": "^5.85.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 5b4840de32..05c169356c 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.1", - "@tanstack/vue-query-devtools": "^5.85.1", + "@tanstack/vue-query": "^5.85.2", + "@tanstack/vue-query-devtools": "^5.85.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 01e76044bc..e7960db578 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.1", + "version": "5.85.2", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index c4aaf5c285..114296e415 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.1", + "version": "5.85.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 95ddeae1ff..e91c5cd37b 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.1", + "version": "5.85.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 44e18a6665..81190536c4 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.1", + "version": "5.85.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 4abbeeee7c..a3e502aceb 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.1", + "version": "5.85.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 513f095ff3..8862264759 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.1", + "version": "5.85.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 79ccdcba02..42bb6d8c3f 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.1", + "version": "5.85.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index dc425ad51d..79bd6941f7 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.1", + "version": "5.85.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 959c2dfc8d..c8560ac6ab 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.1", + "version": "5.85.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 1c4e64af44..69fc32cc7d 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.1", + "version": "5.85.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 01d97fc810..bfc433ac73 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.1", + "version": "5.85.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 04176cb8a1..8e41810066 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.1", + "version": "5.85.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 9f108b9a2c..14fa19e3f4 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.1", + "version": "5.85.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 4fc0631c51..6c73c00c6a 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.1", + "version": "5.85.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index c507f3efe0..d73b7bde80 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.1", + "version": "5.85.2", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 170b87cf87..5bfa3ad8f5 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.1", + "version": "5.85.2", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 8351294f17..995459003c 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.1", + "version": "5.85.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 25ae10c8a5..d04d7aa450 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.1", + "version": "5.85.2", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 44839b2625..a88168fe9a 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.1", + "version": "5.85.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From de3626a3686ffd3deabbb87727fbc46c9f408867 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Thu, 14 Aug 2025 13:49:05 +0200 Subject: [PATCH 350/432] test(core): tests for StrictMode behaviour --- .../src/__tests__/queryObserver.test.tsx | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 706006786c..c1ddefbfa5 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -4,6 +4,7 @@ import { describe, expect, expectTypeOf, + it, test, vi, } from 'vitest' @@ -1427,4 +1428,70 @@ describe('queryObserver', () => { const result = observer.getCurrentResult() expect(result.isEnabled).toBe(true) }) + + describe('StrictMode behavior', () => { + it('should deduplicate calls to queryFn', async () => { + const key = queryKey() + const queryFn = vi.fn(async () => { + await sleep(50) + return 'data' + }) + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + }) + + const unsubscribe1 = observer.subscribe(vi.fn()) + + await vi.advanceTimersByTimeAsync(5) + unsubscribe1() + + // replicate strict mode behavior + await vi.advanceTimersByTimeAsync(5) + const unsubscribe2 = observer.subscribe(vi.fn()) + + await vi.advanceTimersByTimeAsync(40) + + expect(queryClient.getQueryState(key)).toMatchObject({ + status: 'success', + data: 'data', + }) + + expect(queryFn).toHaveBeenCalledTimes(1) + + unsubscribe2() + }) + + it('should resolve with data when signal was consumed', async () => { + const key = queryKey() + const queryFn = vi.fn(async ({ signal }) => { + await sleep(50) + return 'data' + String(signal) + }) + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + }) + + const unsubscribe1 = observer.subscribe(vi.fn()) + + await vi.advanceTimersByTimeAsync(5) + unsubscribe1() + + // replicate strict mode behavior + await vi.advanceTimersByTimeAsync(5) + const unsubscribe2 = observer.subscribe(vi.fn()) + + await vi.advanceTimersByTimeAsync(50) + + expect(queryClient.getQueryState(key)).toMatchObject({ + status: 'success', + data: 'data[object AbortSignal]', + }) + + expect(queryFn).toHaveBeenCalledTimes(2) + + unsubscribe2() + }) + }) }) From 51aad7ddf701d7cb2c22ae15d1488804572e48a9 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 14 Aug 2025 15:04:05 +0200 Subject: [PATCH 351/432] fix(query-core): race condition in StrictMode (#9565) --- packages/query-core/src/query.ts | 8 +++++++- packages/query-core/src/retryer.ts | 23 +++++++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 270177e866..733a4c70ef 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -376,7 +376,13 @@ export class Query< options?: QueryOptions, fetchOptions?: FetchOptions, ): Promise { - if (this.state.fetchStatus !== 'idle') { + if ( + this.state.fetchStatus !== 'idle' && + // If the promise in the retyer is already rejected, we have to definitely + // re-start the fetch; there is a chance that the query is still in a + // pending state when that happens + this.#retryer?.status() !== 'rejected' + ) { if (this.state.data !== undefined && fetchOptions?.cancelRefetch) { // Silently cancel current fetch if the user wants to cancel refetch this.cancel({ silent: true }) diff --git a/packages/query-core/src/retryer.ts b/packages/query-core/src/retryer.ts index 3bc4070f46..add23dcd05 100644 --- a/packages/query-core/src/retryer.ts +++ b/packages/query-core/src/retryer.ts @@ -2,6 +2,7 @@ import { focusManager } from './focusManager' import { onlineManager } from './onlineManager' import { pendingThenable } from './thenable' import { isServer, sleep } from './utils' +import type { Thenable } from './thenable' import type { CancelOptions, DefaultError, NetworkMode } from './types' // TYPES @@ -27,6 +28,7 @@ export interface Retryer { continueRetry: () => void canStart: () => boolean start: () => Promise + status: () => 'pending' | 'resolved' | 'rejected' } export type RetryValue = boolean | number | ShouldRetryFunction @@ -75,13 +77,15 @@ export function createRetryer( ): Retryer { let isRetryCancelled = false let failureCount = 0 - let isResolved = false let continueFn: ((value?: unknown) => void) | undefined const thenable = pendingThenable() + const isResolved = () => + (thenable.status as Thenable['status']) !== 'pending' + const cancel = (cancelOptions?: CancelOptions): void => { - if (!isResolved) { + if (!isResolved()) { reject(new CancelledError(cancelOptions)) config.abort?.() @@ -103,16 +107,14 @@ export function createRetryer( const canStart = () => canFetch(config.networkMode) && config.canRun() const resolve = (value: any) => { - if (!isResolved) { - isResolved = true + if (!isResolved()) { continueFn?.() thenable.resolve(value) } } const reject = (value: any) => { - if (!isResolved) { - isResolved = true + if (!isResolved()) { continueFn?.() thenable.reject(value) } @@ -121,14 +123,14 @@ export function createRetryer( const pause = () => { return new Promise((continueResolve) => { continueFn = (value) => { - if (isResolved || canContinue()) { + if (isResolved() || canContinue()) { continueResolve(value) } } config.onPause?.() }).then(() => { continueFn = undefined - if (!isResolved) { + if (!isResolved()) { config.onContinue?.() } }) @@ -137,7 +139,7 @@ export function createRetryer( // Create loop function const run = () => { // Do nothing if already resolved - if (isResolved) { + if (isResolved()) { return } @@ -158,7 +160,7 @@ export function createRetryer( .then(resolve) .catch((error) => { // Stop if the fetch is already resolved - if (isResolved) { + if (isResolved()) { return } @@ -203,6 +205,7 @@ export function createRetryer( return { promise: thenable, + status: () => thenable.status, cancel, continue: () => { continueFn?.() From b6516bd25edcc67dfaced09412f52c9660386a9b Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 14 Aug 2025 13:05:50 +0000 Subject: [PATCH 352/432] release: v5.85.3 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 84c848e793..f34e26454a 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index d34ab7f330..205985068c 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.2", + "@tanstack/query-async-storage-persister": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index c981b3dc1d..e914900b89 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 369eb6d5eb..10c1aa4a29 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.2", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-devtools-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 625feca818..6dc3f69338 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 97f5f6f61d..d4930f1b39 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index d1cd708f9d..dc6b9b65b7 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 3c5254c714..bf3d74960c 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index a58c51af81..10cdf19bda 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 10969db0ab..7cc0a4d19d 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 6a8fcb1bda..0906cbdbfb 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.2", + "@tanstack/angular-query-experimental": "^5.85.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 82f88c8751..e218334499 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index d7d816ba16..5955de0079 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index ba60318291..9a7dc955ac 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 0ee5a4b206..d378894af8 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.2", - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", - "@tanstack/react-query-persist-client": "^5.85.2", + "@tanstack/query-async-storage-persister": "^5.85.3", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query-persist-client": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index fe7e2f42a2..c0863b0261 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 23483e6655..d9533c9157 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 8222c8d7f4..81aeb620e9 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 0e754fbbf1..ff96fc5c4b 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.2", - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", - "@tanstack/react-query-persist-client": "^5.85.2", + "@tanstack/query-async-storage-persister": "^5.85.3", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query-persist-client": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 0ea85be0ff..aba87216c0 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index e0057750d1..2288144b67 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index d965001a1c..ae794d9945 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index d82870775f..7fd6bab3d3 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", - "@tanstack/react-query-next-experimental": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query-next-experimental": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 008aaffa8d..0f2ecdf90a 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 856c6db43e..f9b126e3e4 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.2", + "@tanstack/query-async-storage-persister": "^5.85.3", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", - "@tanstack/react-query-persist-client": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query-persist-client": "^5.85.3", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index b00a59d6f1..824cf16d47 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 70429d1488..ec4689a0e1 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 942bc1dd3e..1350786feb 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 7c6559e2e3..28e7e754d4 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 7a041a21dd..517fd0abcf 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index d4b78d7f26..d3cc2174d8 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 6f140e2211..31466b1599 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index fd2be51152..b39a4eb763 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 720f26e9d2..5197a171f3 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 9e554aec0b..37ba631d5a 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 114fd84e3a..cadc535a4a 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index bc9231cc61..b9426301d1 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.2", - "@tanstack/react-query-devtools": "^5.85.2", + "@tanstack/react-query": "^5.85.3", + "@tanstack/react-query-devtools": "^5.85.3", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index f15b8f1d67..348a9cc52f 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.2", - "@tanstack/solid-query-devtools": "^5.85.2", + "@tanstack/solid-query": "^5.85.3", + "@tanstack/solid-query-devtools": "^5.85.3", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 39f18421ff..06fcb66dbf 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.2", - "@tanstack/solid-query-devtools": "^5.85.2", + "@tanstack/solid-query": "^5.85.3", + "@tanstack/solid-query-devtools": "^5.85.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 64e11951be..001e71cb53 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.2", - "@tanstack/solid-query-devtools": "^5.85.2", + "@tanstack/solid-query": "^5.85.3", + "@tanstack/solid-query-devtools": "^5.85.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index db466493e8..a3047db1c4 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.2", - "@tanstack/solid-query-devtools": "^5.85.2", + "@tanstack/solid-query": "^5.85.3", + "@tanstack/solid-query-devtools": "^5.85.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 3bfb139b78..307d25ec0d 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.2", - "@tanstack/solid-query-devtools": "^5.85.2", + "@tanstack/solid-query": "^5.85.3", + "@tanstack/solid-query-devtools": "^5.85.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 4a75f172f5..171bcfd23a 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.2", - "@tanstack/solid-query-devtools": "^5.85.2", + "@tanstack/solid-query": "^5.85.3", + "@tanstack/solid-query-devtools": "^5.85.3", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 75e569e018..9520e066ee 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2" + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index f79dfdf0f1..6e49778470 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.2", - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2", - "@tanstack/svelte-query-persist-client": "^5.85.2" + "@tanstack/query-async-storage-persister": "^5.85.3", + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3", + "@tanstack/svelte-query-persist-client": "^5.85.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 7cae07a2b1..e465888817 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2" + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index acf0d50797..ddec840dc3 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2" + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 5993c24e54..a5270a6dc8 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2" + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index be967d17ca..bd5691cf33 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2" + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index c8c008c66f..16d4b4f893 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2" + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 62167179a2..09893f0892 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.2", - "@tanstack/svelte-query-devtools": "^5.85.2" + "@tanstack/svelte-query": "^5.85.3", + "@tanstack/svelte-query-devtools": "^5.85.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 747e0e4e4c..52b12f5ade 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.2", + "@tanstack/vue-query": "^5.85.3", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index d7fce488a8..1d3e3bb644 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.2", + "@tanstack/vue-query": "^5.85.3", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 517c4b1841..43c5edf175 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.2", - "@tanstack/vue-query-devtools": "^5.85.2", + "@tanstack/vue-query": "^5.85.3", + "@tanstack/vue-query-devtools": "^5.85.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 11a2594516..eac588f9b8 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.2", + "@tanstack/vue-query": "^5.85.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 8ddda6be2f..c654db650d 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.2" + "@tanstack/vue-query": "^5.85.3" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 9d36399158..6776952b89 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.2", - "@tanstack/query-persist-client-core": "^5.85.2", - "@tanstack/query-sync-storage-persister": "^5.85.2", - "@tanstack/vue-query": "^5.85.2", + "@tanstack/query-core": "^5.85.3", + "@tanstack/query-persist-client-core": "^5.85.3", + "@tanstack/query-sync-storage-persister": "^5.85.3", + "@tanstack/vue-query": "^5.85.3", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 05c169356c..2b435721bf 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.2", - "@tanstack/vue-query-devtools": "^5.85.2", + "@tanstack/vue-query": "^5.85.3", + "@tanstack/vue-query-devtools": "^5.85.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index e7960db578..69dfdbd6ec 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.2", + "version": "5.85.3", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 114296e415..9920246dbc 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.2", + "version": "5.85.3", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index e91c5cd37b..7dd295d58c 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.2", + "version": "5.85.3", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 81190536c4..6dd63dd29b 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.2", + "version": "5.85.3", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a3e502aceb..7ec5559962 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.2", + "version": "5.85.3", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 8862264759..d39bf8e8b7 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.2", + "version": "5.85.3", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 42bb6d8c3f..10681ee456 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.2", + "version": "5.85.3", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 79bd6941f7..d78d9e5fd4 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.2", + "version": "5.85.3", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index c8560ac6ab..8a6ed20af5 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.2", + "version": "5.85.3", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 69fc32cc7d..dce59f0353 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.2", + "version": "5.85.3", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index bfc433ac73..8ffc7cd1e7 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.2", + "version": "5.85.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 8e41810066..88830a4cf3 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.2", + "version": "5.85.3", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 14fa19e3f4..0f1b57b58b 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.2", + "version": "5.85.3", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 6c73c00c6a..e5ed3c94da 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.2", + "version": "5.85.3", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index d73b7bde80..16464c39f7 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.2", + "version": "5.85.3", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 5bfa3ad8f5..832e0b6557 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.2", + "version": "5.85.3", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 995459003c..fa823a318a 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.2", + "version": "5.85.3", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index d04d7aa450..b9d7a35362 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.2", + "version": "5.85.3", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index a88168fe9a..70f2705cd1 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.2", + "version": "5.85.3", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From f1e608bcac59a309f61057faa951bd0fad8f75a1 Mon Sep 17 00:00:00 2001 From: TkDodo Date: Mon, 18 Aug 2025 12:19:08 +0200 Subject: [PATCH 353/432] docs: update community resources --- .../framework/react/community/tkdodos-blog.md | 44 +++++++++++++++++++ docs/framework/react/guides/advanced-ssr.md | 8 ++++ .../react/guides/important-defaults.md | 1 + .../react/guides/infinite-queries.md | 8 ++++ .../guides/invalidations-from-mutations.md | 9 ++++ .../react/guides/optimistic-updates.md | 8 ++++ .../react/guides/render-optimizations.md | 2 +- docs/framework/react/overview.md | 1 + .../framework/react/reference/queryOptions.md | 8 ++++ docs/framework/react/typescript.md | 19 ++++---- docs/framework/react/videos.md | 39 ++++++++++++++++ 11 files changed, 137 insertions(+), 10 deletions(-) diff --git a/docs/framework/react/community/tkdodos-blog.md b/docs/framework/react/community/tkdodos-blog.md index 996e7e8215..92c328c104 100644 --- a/docs/framework/react/community/tkdodos-blog.md +++ b/docs/framework/react/community/tkdodos-blog.md @@ -84,3 +84,47 @@ TanStack Query maintainer [TkDodo](https://bsky.app/profile/tkdodo.eu) has a ser ## [#19: Type-safe React Query](https://tkdodo.eu/blog/type-safe-react-query) > There's a big difference between "having types" and "being type-safe". This article tries to outline those differences and shows how you can get the best possible type-safety when using React Query together with TypeScript [Read more...](https://tkdodo.eu/blog/type-safe-react-query) + +## [#20: You Might Not Need React Query](https://tkdodo.eu/blog/you-might-not-need-react-query) + +> If your application doesnโ€™t rely on client-side data fetching, especially when using frameworks like Next.js or Remix with built-in server components, React Query may be unnecessary. That said, it still shines in hybrid use cases (like infinite scrolling or offline support) where its smart caching and revalidation can be invaluable. [Read more...](https://tkdodo.eu/blog/you-might-not-need-react-query) + +## [#21: Thinking in React Query](https://tkdodo.eu/blog/thinking-in-react-query) + +> React Query isnโ€™t a data-fetching library - it's an async state manager designed to treat parameters as dependencies, optimize refetch behavior via `staleTime`, and encourage declarative patterns where `queryKey` drives cache and updates. A small shift in mindset can dramatically streamline how you use React Query. [Read more...](https://tkdodo.eu/blog/thinking-in-react-query) + +## [#22: React Query and React Context](https://tkdodo.eu/blog/react-query-and-react-context) + +> React Query lets components independently manage their own data, making them self-sufficient and resilient, but when shared data (like user info fetched higher up) is needed deeper in the tree, React Context can make that implicit dependency explicit and safer. [Read more...](https://tkdodo.eu/blog/react-query-and-react-context) + +## [#23: Why You Want React Query](https://tkdodo.eu/blog/why-you-want-react-query) + +> While fetching data with `fetch` inside `useEffect` may seem simple, it quickly gets tangled with bugs like race conditions, missing loading states, stale data, and Strict Mode quirksโ€”making async state management far more complex than it appears. [Read more...](https://tkdodo.eu/blog/why-you-want-react-query) + +## [#24: The Query Options API](https://tkdodo.eu/blog/the-query-options-api) + +> React Query v5 introduces a unified "Query Options" API - where all functions like `useQuery`, `invalidateQueries`, and imperative calls accept a single object - simplifying the interface and making reuse across different query contexts much easier while at the same time improving type-safety. [Read more...](https://tkdodo.eu/blog/the-query-options-api) + +## [#25: Automatic Query Invalidation after Mutations](https://tkdodo.eu/blog/automatic-query-invalidation-after-mutations) + +> React Query doesnโ€™t automatically tie mutations to queries - but you can leverage "global cache callbacks" in a central `MutationCache` to define shared behaviors like invalidating queries on every mutation. [Read more...](https://tkdodo.eu/blog/automatic-query-invalidation-after-mutations) + +## [#26: How Infinite Queries work](https://tkdodo.eu/blog/how-infinite-queries-work) + +> This blog post is a deep dive into how Infinite Queries are designed and work under the hood. Interestingly, there is no distinct InfiniteQuery representation - just a different "behaviour" attached to regular Queries. [Read more...](https://tkdodo.eu/blog/how-infinite-queries-work) + +## [#27: React Query API Design - Lessons Learned](https://tkdodo.eu/blog/react-query-api-design-lessons-learned) + +> In this talk, Dominik walks us through some of the API design choices that were made in React Query to get to its arguably good developer experience. You'll hear stories about things that went well, but also about tradeoffs and mistakes that were made, and what lessons we can all learn from those. [Read more...](https://tkdodo.eu/blog/react-query-api-design-lessons-learned) + +## [#28: React Query - The Bad Parts](https://tkdodo.eu/blog/react-query-the-bad-parts) + +> In this talk, Dominik explores the less favorable aspects of React Query and situations where it may not be the best fit. No library is perfect; every choice involves trade-offs. By the end of this talk, you'll have a better understanding of React Query's limitations and why it remains a compelling choice despite them. [Read more...](https://tkdodo.eu/blog/react-query-the-bad-parts) + +## [#29: Concurrent Optimistic Updates in React Query](https://tkdodo.eu/blog/concurrent-optimistic-updates-in-react-query) + +> Optimistic updates in React Query can cause race conditions when multiple mutations run at once, leading to inconsistent UI states. Cancelling in-flight queries helps, but overlapping invalidations may still overwrite newer updates. [Read more...](https://tkdodo.eu/blog/concurrent-optimistic-updates-in-react-query) + +## [#30: React Query Selectors, Supercharged](https://tkdodo.eu/blog/react-query-selectors-supercharged) + +> React Queryโ€™s `select` option enables components to subscribe only to the specific part of a queryโ€™s data they care about - so updating one field wonโ€™t cause unrelated UI to re-render unnecessarily. This fine-grained approach keeps full responses in the cache while optimizing component updates for performance. [Read more...](https://tkdodo.eu/blog/react-query-selectors-supercharged) diff --git a/docs/framework/react/guides/advanced-ssr.md b/docs/framework/react/guides/advanced-ssr.md index 6b5b91c425..30abf188bb 100644 --- a/docs/framework/react/guides/advanced-ssr.md +++ b/docs/framework/react/guides/advanced-ssr.md @@ -621,3 +621,11 @@ If you value DX/iteration/shipping speed with low code complexity over performan Server Components and streaming are still fairly new concepts and we are still figuring out how React Query fits in and what improvements we can make to the API. We welcome suggestions, feedback and bug reports! Similarly, it would be impossible to teach all the intricacies of this new paradigm all in one guide, on the first try. If you are missing some piece of information here or have suggestions on how to improve this content, also get in touch, or even better, click the "Edit on GitHub" button below and help us out. + +[//]: # 'Materials' + +## Further reading + +To understand if your application can benefit from React Query when also using Server Components, have a look at [You Might Not Need React Query](../../community/tkdodos-blog.md#20-you-might-not-need-react-query) from the Community Resources. + +[//]: # 'Materials' diff --git a/docs/framework/react/guides/important-defaults.md b/docs/framework/react/guides/important-defaults.md index ef5a3d366e..5330ca4eee 100644 --- a/docs/framework/react/guides/important-defaults.md +++ b/docs/framework/react/guides/important-defaults.md @@ -44,5 +44,6 @@ Have a look at the following articles from our Community Resources for further e - [Practical React Query](../../community/tkdodos-blog.md#1-practical-react-query) - [React Query as a State Manager](../../community/tkdodos-blog.md#10-react-query-as-a-state-manager) +- [Thinking in React Query](../../community/tkdodos-blog.md#21-thinking-in-react-query) [//]: # 'Materials' diff --git a/docs/framework/react/guides/infinite-queries.md b/docs/framework/react/guides/infinite-queries.md index 04e4ac7eea..d73cfb8dd3 100644 --- a/docs/framework/react/guides/infinite-queries.md +++ b/docs/framework/react/guides/infinite-queries.md @@ -257,3 +257,11 @@ return useInfiniteQuery({ ``` [//]: # 'Example9' +[//]: # 'Materials' + +## Further reading + +To get a better understanding of how Infinite Queries work under the hood, read [How Infinite Queries work](../../community/tkdodos-blog.md#26-how-infinite-queries-work) from +the Community Resources. + +[//]: # 'Materials' diff --git a/docs/framework/react/guides/invalidations-from-mutations.md b/docs/framework/react/guides/invalidations-from-mutations.md index 6f0e75537f..ed2a262a41 100644 --- a/docs/framework/react/guides/invalidations-from-mutations.md +++ b/docs/framework/react/guides/invalidations-from-mutations.md @@ -37,3 +37,12 @@ const mutation = useMutation({ [//]: # 'Example2' You can wire up your invalidations to happen using any of the callbacks available in the [`useMutation` hook](../mutations.md) + +[//]: # 'Materials' + +## Further reading + +For a technique to automatically invalidate Queries after Mutations, have a look at [Automatic Query Invalidation after Mutations](../../community/tkdodos-blog.md#25-automatic-query-invalidation-after-mutations) from +the Community Resources. + +[//]: # 'Materials' diff --git a/docs/framework/react/guides/optimistic-updates.md b/docs/framework/react/guides/optimistic-updates.md index 19d9220cbc..1c04627646 100644 --- a/docs/framework/react/guides/optimistic-updates.md +++ b/docs/framework/react/guides/optimistic-updates.md @@ -185,3 +185,11 @@ useMutation({ If you only have one place where the optimistic result should be shown, using `variables` and updating the UI directly is the approach that requires less code and is generally easier to reason about. For example, you don't need to handle rollbacks at all. However, if you have multiple places on the screen that would require to know about the update, manipulating the cache directly will take care of this for you automatically. + +[//]: # 'Materials' + +## Further reading + +Have a look at the Community Resources for a guide on [Concurrent Optimistic Updates](../../community/tkdodos-blog.md#29-concurrent-optimistic-updates-in-react-query). + +[//]: # 'Materials' diff --git a/docs/framework/react/guides/render-optimizations.md b/docs/framework/react/guides/render-optimizations.md index 91254670d2..e06dd84825 100644 --- a/docs/framework/react/guides/render-optimizations.md +++ b/docs/framework/react/guides/render-optimizations.md @@ -73,4 +73,4 @@ export const useTodoCount = () => { ## Further Reading For an in-depth guide about these topics, read [React Query Render Optimizations](../../community/tkdodos-blog.md#3-react-query-render-optimizations) from -the Community Resources. +the Community Resources. To learn how to best optimize the `select` option, read [React Query Selectors, Supercharged](../../community/tkdodos-blog.md#30-react-query-selectors-supercharged) diff --git a/docs/framework/react/overview.md b/docs/framework/react/overview.md index c83a01ad94..5ca9c1eaa4 100644 --- a/docs/framework/react/overview.md +++ b/docs/framework/react/overview.md @@ -97,5 +97,6 @@ function Example() { - Consider taking the official [TanStack Query Course](https://query.gg?s=tanstack) (or buying it for your whole team!) - Learn TanStack Query at your own pace with our amazingly thorough [Walkthrough Guide](../installation.md) and [API Reference](../reference/useQuery.md) +- Have a read at [Why You Want React Query](../community/tkdodos-blog.md#23-why-you-want-react-query) from the Community Resources. [//]: # 'Materials' diff --git a/docs/framework/react/reference/queryOptions.md b/docs/framework/react/reference/queryOptions.md index 3bf604a687..c62abc669b 100644 --- a/docs/framework/react/reference/queryOptions.md +++ b/docs/framework/react/reference/queryOptions.md @@ -22,3 +22,11 @@ You can generally pass everything to `queryOptions` that you can also pass to [` - Defaults to `false` - When set to `true`, queries will be prefetched during render, which can be useful for certain optimization scenarios - Needs to be turned on for the experimental `useQuery().promise` functionality + +[//]: # 'Materials' + +## Further reading + +To learn more about `QueryOptions`, have a look at [The Query Options API](../../community/tkdodos-blog.md#24-the-query-options-api) from the Community Resources. + +[//]: # 'Materials' diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md index e362797d50..98a5c3e8ea 100644 --- a/docs/framework/react/typescript.md +++ b/docs/framework/react/typescript.md @@ -236,9 +236,6 @@ Without `queryOptions`, the type of `data` would be `unknown`, unless we'd pass const data = queryClient.getQueryData(['groups']) ``` -[//]: # 'TypingQueryOptions' -[//]: # 'Materials' - ## Typing Mutation Options Similarly to `queryOptions`, you can use `mutationOptions` to extract mutation options into a separate function: @@ -259,14 +256,18 @@ useIsMutating(groupMutationOptions()) queryClient.isMutating(groupMutationOptions()) ``` -## Further Reading - -For tips and tricks around type inference, have a look at [React Query and TypeScript](../community/tkdodos-blog.md#6-react-query-and-typescript) from -the Community Resources. To find out how to get the best possible type-safety, you can read [Type-safe React Query](../community/tkdodos-blog.md#19-type-safe-react-query). - -[//]: # 'Materials' +[//]: # 'TypingQueryOptions' ## Typesafe disabling of queries using `skipToken` If you are using TypeScript, you can use the `skipToken` to disable a query. This is useful when you want to disable a query based on a condition, but you still want to keep the query to be type safe. Read more about it in the [Disabling Queries](../guides/disabling-queries.md) guide. + +[//]: # 'Materials' + +## Further Reading + +For tips and tricks around type inference, have a look at [React Query and TypeScript](../community/tkdodos-blog.md#6-react-query-and-typescript) from +the Community Resources. To find out how to get the best possible type-safety, you can read [Type-safe React Query](../community/tkdodos-blog.md#19-type-safe-react-query). [The Query Options API](../community/tkdodos-blog.md#24-the-query-options-api) outlines how type inference works with the `queryOptions` helper function. + +[//]: # 'Materials' diff --git a/docs/framework/react/videos.md b/docs/framework/react/videos.md index fb49dded4a..7d305cf084 100644 --- a/docs/framework/react/videos.md +++ b/docs/framework/react/videos.md @@ -69,3 +69,42 @@ title: Videos & Talks width: '100%', }} > + + + + + + From 2989e69dc0278f663f81b68186891199ab9baf42 Mon Sep 17 00:00:00 2001 From: Lee Date: Tue, 19 Aug 2025 00:46:32 +0900 Subject: [PATCH 354/432] docs(react-query): recommend `defaultError = unknown` instead of `AxiosError` (#9575) * docs(react-query): recommend defaultError = unknown instead of AxiosError Signed-off-by: leesb971204 * docs(react-query): clarify usage of defaultError in global Error type registration Signed-off-by: leesb971204 * ci: apply automated fixes * docs(solid-query): recommend defaultError = unknown instead of AxiosError Signed-off-by: leesb971204 * docs(angular-query): recommend defaultError = unknown instead of AxiosError Signed-off-by: leesb971204 * docs(vue-query): add example code for Registering a global Error Signed-off-by: leesb971204 --------- Signed-off-by: leesb971204 Co-authored-by: Dominik Dorfmeister Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- docs/framework/angular/typescript.md | 5 +++-- docs/framework/react/typescript.md | 7 ++++--- docs/framework/solid/typescript.md | 11 ++++++----- docs/framework/vue/typescript.md | 15 +++++++++++++++ 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/docs/framework/angular/typescript.md b/docs/framework/angular/typescript.md index 6a10e940bd..0aa2ff2638 100644 --- a/docs/framework/angular/typescript.md +++ b/docs/framework/angular/typescript.md @@ -153,7 +153,8 @@ import '@tanstack/angular-query-experimental' declare module '@tanstack/angular-query-experimental' { interface Register { - defaultError: AxiosError + // Use unknown so call sites must narrow explicitly. + defaultError: unknown } } @@ -164,7 +165,7 @@ const query = injectQuery(() => ({ computed(() => { const error = query.error() - // ^? error: AxiosError | null + // ^? error: unknown | null }) ``` diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md index 98a5c3e8ea..cddd6e6b97 100644 --- a/docs/framework/react/typescript.md +++ b/docs/framework/react/typescript.md @@ -130,7 +130,7 @@ if (axios.isAxiosError(error)) { ### Registering a global Error -TanStack Query v5 allows for a way to set a global Error type for everything, without having to specify generics on call-sides, by amending the `Register` interface. This will make sure inference still works, but the error field will be of the specified type: +TanStack Query v5 allows for a way to set a global Error type for everything, without having to specify generics on call-sides, by amending the `Register` interface. This will make sure inference still works, but the error field will be of the specified type. If you want to enforce that call-sides must do explicit type-narrowing, set `defaultError` to `unknown`: [//]: # 'RegisterErrorType' @@ -139,12 +139,13 @@ import '@tanstack/react-query' declare module '@tanstack/react-query' { interface Register { - defaultError: AxiosError + // Use unknown so call sites must narrow explicitly. + defaultError: unknown } } const { error } = useQuery({ queryKey: ['groups'], queryFn: fetchGroups }) -// ^? const error: AxiosError | null +// ^? const error: unknown | null ``` [//]: # 'RegisterErrorType' diff --git a/docs/framework/solid/typescript.md b/docs/framework/solid/typescript.md index aa6bd28a8f..67711cbabc 100644 --- a/docs/framework/solid/typescript.md +++ b/docs/framework/solid/typescript.md @@ -129,16 +129,15 @@ if (axios.isAxiosError(query.error)) { [typescript playground](https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBAbzgYygUwIYzQRQK5pQCecAvnAGZQQhwDkAAjBgHYDOzyA1gPRsQAbYABMAtAEcCxOgFgAUKEiw4GAB7AIbStVp01GtrLnyYRMGjgBxanjBwAvIjgiAXHBZ4QAI0Jl585Ah2eAo0GGQAC2sIWy1HAAoASjcABR1gNjQAHmjbAG0AXQA+BxL9TQA6AHMw+LoeKpswQ0SKmAi0Fnj0Nkh2C3sSnr7MiuEsDET-OUDguElCEkdUTGx8Rfik0rh4hHk4A-mpIgBpNCI3PLpGmOa6AoAaOH3DheIAMRY3UPCoprYHvJSIkpsY5G8iBVCNQoPIeDxDnAAHoAfmmwAoO3KbAqGQAgupNABRKAw+IQqGk6AgxAvA4U6HQOlweGI1FA+RAA) -## Registering a global `Error` - -TanStack Query v5 allows for a way to set a global Error type for everything, without having to specify generics on call-sides, by amending the `Register` interface. This will make sure inference still works, but the error field will be of the specified type: +[//]: # 'RegisterErrorType' ```tsx import '@tanstack/solid-query' declare module '@tanstack/solid-query' { interface Register { - defaultError: AxiosError + // Use unknown so call sites must narrow explicitly. + defaultError: unknown } } @@ -148,9 +147,11 @@ const query = useQuery(() => ({ })) query.error -// ^? (property) error: AxiosError | null +// ^? (property) error: unknown | null ``` +[//]: # 'RegisterErrorType' + ## Registering global `Meta` Similarly to registering a [global error type](#registering-a-global-error) you can also register a global `Meta` type. This ensures the optional `meta` field on [queries](../reference/useQuery.md) and [mutations](../reference/useMutation.md) stays consistent and is type-safe. Note that the registered type must extend `Record` so that `meta` remains an object. diff --git a/docs/framework/vue/typescript.md b/docs/framework/vue/typescript.md index 731c276a24..7cf70dbc4f 100644 --- a/docs/framework/vue/typescript.md +++ b/docs/framework/vue/typescript.md @@ -89,6 +89,21 @@ if (error.value instanceof Error) { [//]: # 'TypingError3' [//]: # 'TypingError3' [//]: # 'RegisterErrorType' + +```tsx +import '@tanstack/vue-query' + +declare module '@tanstack/vue-query' { + interface Register { + // Use unknown so call sites must narrow explicitly. + defaultError: unknown + } +} + +const { error } = useQuery({ queryKey: ['groups'], queryFn: fetchGroups }) +// ^? const error: unknown | null +``` + [//]: # 'RegisterErrorType' [//]: # 'TypingMeta' [//]: # 'TypingMeta' From e4f5ce8ec2167382e15d913ca129a05f646140e7 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Tue, 19 Aug 2025 11:09:11 +0200 Subject: [PATCH 355/432] fix(core): never revert to undefined data (#9577) * fix(core): never revert to undefined data * fix: throw CancelledError for imperative fetches, but keep query reverted to idle state * chore: improve test --- .../src/__tests__/queryClient.test.tsx | 76 +++++++++---------- packages/query-core/src/query.ts | 7 +- 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/packages/query-core/src/__tests__/queryClient.test.tsx b/packages/query-core/src/__tests__/queryClient.test.tsx index 4f512053a8..8449d93670 100644 --- a/packages/query-core/src/__tests__/queryClient.test.tsx +++ b/packages/query-core/src/__tests__/queryClient.test.tsx @@ -1,6 +1,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' import { + CancelledError, MutationObserver, QueryClient, QueryObserver, @@ -993,54 +994,25 @@ describe('queryClient', () => { describe('cancelQueries', () => { test('should revert queries to their previous state', async () => { const key1 = queryKey() - const key2 = queryKey() - const key3 = queryKey() - await queryClient.fetchQuery({ - queryKey: key1, - queryFn: () => 'data', - }) - try { - await queryClient.fetchQuery({ - queryKey: key2, - queryFn: async () => { - return Promise.reject('err') - }, - }) - } catch {} - queryClient.fetchQuery({ + queryClient.setQueryData(key1, 'data') + + const pending = queryClient.fetchQuery({ queryKey: key1, queryFn: () => sleep(1000).then(() => 'data2'), }) - try { - queryClient.fetchQuery({ - queryKey: key2, - queryFn: () => - sleep(1000).then(() => Promise.reject('err2')), - }) - } catch {} - queryClient.fetchQuery({ - queryKey: key3, - queryFn: () => sleep(1000).then(() => 'data3'), - }) + await vi.advanceTimersByTimeAsync(10) + await queryClient.cancelQueries() + + // with previous data present, imperative fetch should resolve to that data after cancel + await expect(pending).resolves.toBe('data') + const state1 = queryClient.getQueryState(key1) - const state2 = queryClient.getQueryState(key2) - const state3 = queryClient.getQueryState(key3) expect(state1).toMatchObject({ data: 'data', status: 'success', }) - expect(state2).toMatchObject({ - data: undefined, - error: 'err', - status: 'error', - }) - expect(state3).toMatchObject({ - data: undefined, - status: 'pending', - fetchStatus: 'idle', - }) }) test('should not revert if revert option is set to false', async () => { @@ -1060,6 +1032,34 @@ describe('queryClient', () => { status: 'error', }) }) + + test('should throw CancelledError for imperative methods when initial fetch is cancelled', async () => { + const key = queryKey() + + const promise = queryClient.fetchQuery({ + queryKey: key, + queryFn: async () => { + await sleep(50) + return 25 + }, + }) + + await vi.advanceTimersByTimeAsync(10) + + await queryClient.cancelQueries({ queryKey: key }) + + // we have to reject here because we can't resolve with `undefined` + // the alternative would be a never-ending promise + await expect(promise).rejects.toBeInstanceOf(CancelledError) + + // however, the query was correctly reverted to pending state + expect(queryClient.getQueryState(key)).toMatchObject({ + status: 'pending', + fetchStatus: 'idle', + data: undefined, + error: null, + }) + }) }) describe('refetchQueries', () => { diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 733a4c70ef..df5b7c030e 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -558,7 +558,12 @@ export class Query< fetchStatus: 'idle' as const, }) // transform error into reverted state data - return this.state.data! + // if the initial fetch was cancelled, we have no data, so we have + // to get reject with a CancelledError + if (this.state.data === undefined) { + throw error + } + return this.state.data } } this.#dispatch({ From ef0a9d2c7e96f1f69b55be2e31d3b492c2266f1c Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 19 Aug 2025 09:10:56 +0000 Subject: [PATCH 356/432] release: v5.85.4 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index f34e26454a..e2cd391c6b 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 205985068c..c339004e87 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.3", + "@tanstack/query-async-storage-persister": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index e914900b89..d21a003a61 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 10c1aa4a29..c7537d3fe3 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.3", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-devtools-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 6dc3f69338..ae750bbf0f 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index d4930f1b39..2c68d94cbb 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index dc6b9b65b7..5d030341e3 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index bf3d74960c..003549eb07 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 10cdf19bda..331d0b0700 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 7cc0a4d19d..6e6859b13d 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 0906cbdbfb..9389f88acb 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.3", + "@tanstack/angular-query-experimental": "^5.85.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index e218334499..ba02d2759b 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 5955de0079..42a1e0c4a5 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 9a7dc955ac..8bb5a97b53 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index d378894af8..24e340871e 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.3", - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", - "@tanstack/react-query-persist-client": "^5.85.3", + "@tanstack/query-async-storage-persister": "^5.85.4", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query-persist-client": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index c0863b0261..e2ae236458 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index d9533c9157..57f120ff31 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 81aeb620e9..071a41ad41 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index ff96fc5c4b..e13b99480f 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.3", - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", - "@tanstack/react-query-persist-client": "^5.85.3", + "@tanstack/query-async-storage-persister": "^5.85.4", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query-persist-client": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index aba87216c0..be9250504e 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 2288144b67..5d6dc86579 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index ae794d9945..b69a9ea610 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 7fd6bab3d3..0c41ca8f7a 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", - "@tanstack/react-query-next-experimental": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query-next-experimental": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 0f2ecdf90a..f8f4387f9e 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index f9b126e3e4..14c7cf583e 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.3", + "@tanstack/query-async-storage-persister": "^5.85.4", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", - "@tanstack/react-query-persist-client": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query-persist-client": "^5.85.4", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 824cf16d47..29eac496cf 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index ec4689a0e1..bdda9e8d62 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 1350786feb..a9876540d7 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 28e7e754d4..abd00fb511 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 517fd0abcf..e8ac64237c 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index d3cc2174d8..5682e1ba91 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 31466b1599..22fa73de2f 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index b39a4eb763..a2f4e1dd28 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 5197a171f3..5ecc8953f9 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 37ba631d5a..4c8c325911 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index cadc535a4a..318da13060 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index b9426301d1..cc61e529d9 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.3", - "@tanstack/react-query-devtools": "^5.85.3", + "@tanstack/react-query": "^5.85.4", + "@tanstack/react-query-devtools": "^5.85.4", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 348a9cc52f..87887138a9 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.3", - "@tanstack/solid-query-devtools": "^5.85.3", + "@tanstack/solid-query": "^5.85.4", + "@tanstack/solid-query-devtools": "^5.85.4", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 06fcb66dbf..1346d8d362 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.3", - "@tanstack/solid-query-devtools": "^5.85.3", + "@tanstack/solid-query": "^5.85.4", + "@tanstack/solid-query-devtools": "^5.85.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 001e71cb53..e5714dca4f 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.3", - "@tanstack/solid-query-devtools": "^5.85.3", + "@tanstack/solid-query": "^5.85.4", + "@tanstack/solid-query-devtools": "^5.85.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index a3047db1c4..b9077d88f4 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.3", - "@tanstack/solid-query-devtools": "^5.85.3", + "@tanstack/solid-query": "^5.85.4", + "@tanstack/solid-query-devtools": "^5.85.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 307d25ec0d..43df1cdc09 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.3", - "@tanstack/solid-query-devtools": "^5.85.3", + "@tanstack/solid-query": "^5.85.4", + "@tanstack/solid-query-devtools": "^5.85.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 171bcfd23a..5a1b16cbb9 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.3", - "@tanstack/solid-query-devtools": "^5.85.3", + "@tanstack/solid-query": "^5.85.4", + "@tanstack/solid-query-devtools": "^5.85.4", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 9520e066ee..441e73be91 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3" + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 6e49778470..25ba306131 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.3", - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3", - "@tanstack/svelte-query-persist-client": "^5.85.3" + "@tanstack/query-async-storage-persister": "^5.85.4", + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4", + "@tanstack/svelte-query-persist-client": "^5.85.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index e465888817..cdbc09557c 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3" + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index ddec840dc3..ef78b6d55d 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3" + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index a5270a6dc8..05fb7ca22f 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3" + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index bd5691cf33..d0f20d115c 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3" + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 16d4b4f893..cde72402a3 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3" + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 09893f0892..e6ccdc943d 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.3", - "@tanstack/svelte-query-devtools": "^5.85.3" + "@tanstack/svelte-query": "^5.85.4", + "@tanstack/svelte-query-devtools": "^5.85.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 52b12f5ade..e394602342 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.3", + "@tanstack/vue-query": "^5.85.4", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 1d3e3bb644..4e9622f84c 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.3", + "@tanstack/vue-query": "^5.85.4", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 43c5edf175..927afc1f06 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.3", - "@tanstack/vue-query-devtools": "^5.85.3", + "@tanstack/vue-query": "^5.85.4", + "@tanstack/vue-query-devtools": "^5.85.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index eac588f9b8..b14654428f 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.3", + "@tanstack/vue-query": "^5.85.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index c654db650d..78e64d28b2 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.3" + "@tanstack/vue-query": "^5.85.4" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 6776952b89..e220310280 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.3", - "@tanstack/query-persist-client-core": "^5.85.3", - "@tanstack/query-sync-storage-persister": "^5.85.3", - "@tanstack/vue-query": "^5.85.3", + "@tanstack/query-core": "^5.85.4", + "@tanstack/query-persist-client-core": "^5.85.4", + "@tanstack/query-sync-storage-persister": "^5.85.4", + "@tanstack/vue-query": "^5.85.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 2b435721bf..b5ddcfb413 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.3", - "@tanstack/vue-query-devtools": "^5.85.3", + "@tanstack/vue-query": "^5.85.4", + "@tanstack/vue-query-devtools": "^5.85.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 69dfdbd6ec..6e6c6d381f 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.3", + "version": "5.85.4", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 9920246dbc..2037bc0d21 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.3", + "version": "5.85.4", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 7dd295d58c..46ba09353e 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.3", + "version": "5.85.4", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 6dd63dd29b..78715f02a9 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.3", + "version": "5.85.4", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 7ec5559962..fbf15127c5 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.3", + "version": "5.85.4", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index d39bf8e8b7..c0a68d2aa7 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.3", + "version": "5.85.4", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 10681ee456..f1891ce887 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.3", + "version": "5.85.4", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index d78d9e5fd4..e3132bce7c 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.3", + "version": "5.85.4", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 8a6ed20af5..ad4f9362d8 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.3", + "version": "5.85.4", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index dce59f0353..f34f77bd87 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.3", + "version": "5.85.4", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 8ffc7cd1e7..4a6f579225 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.3", + "version": "5.85.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 88830a4cf3..ecfb3a4574 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.3", + "version": "5.85.4", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 0f1b57b58b..979bbccb8a 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.3", + "version": "5.85.4", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index e5ed3c94da..c6595565fa 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.3", + "version": "5.85.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 16464c39f7..ec75fe951a 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.3", + "version": "5.85.4", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 832e0b6557..94fddc868e 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.3", + "version": "5.85.4", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index fa823a318a..3858e640e1 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.3", + "version": "5.85.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index b9d7a35362..4a1683a6ac 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.3", + "version": "5.85.4", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 70f2705cd1..8409ea4181 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.3", + "version": "5.85.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From abab082593424bd4b6a3c3e494f0cf4a8c40dcc1 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Tue, 19 Aug 2025 11:39:34 +0200 Subject: [PATCH 357/432] fix(core): only reject when `promise` gets used (#9576) * fix(core): do not reject promise right away - only when `promise` gets used * Apply suggestion from @TkDodo * fix: status check --- packages/query-core/src/queryObserver.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index ac0a3e079a..1137503694 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -82,11 +82,6 @@ export class QueryObserver< this.#client = client this.#selectError = null this.#currentThenable = pendingThenable() - if (!this.options.experimental_prefetchInRender) { - this.#currentThenable.reject( - new Error('experimental_prefetchInRender feature flag is not enabled'), - ) - } this.bindMethods() this.setOptions(options) @@ -272,6 +267,17 @@ export class QueryObserver< get: (target, key) => { this.trackProp(key as keyof QueryObserverResult) onPropTracked?.(key as keyof QueryObserverResult) + if ( + key === 'promise' && + !this.options.experimental_prefetchInRender && + this.#currentThenable.status === 'pending' + ) { + this.#currentThenable.reject( + new Error( + 'experimental_prefetchInRender feature flag is not enabled', + ), + ) + } return Reflect.get(target, key) }, }) From 0a0e01443d24760ff52518f68be5172f5aac93dc Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 19 Aug 2025 09:41:34 +0000 Subject: [PATCH 358/432] release: v5.85.5 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e2cd391c6b..60be68ee9c 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index c339004e87..01e9e2b537 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.4", + "@tanstack/query-async-storage-persister": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index d21a003a61..f843a40ac7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index c7537d3fe3..11b33ed9ce 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.4", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-devtools-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index ae750bbf0f..5573458312 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 2c68d94cbb..253f3f582d 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 5d030341e3..cb2a2cb83d 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 003549eb07..ab6bfcb1d1 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 331d0b0700..cfb1025c5d 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 6e6859b13d..e3a7600268 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 9389f88acb..65e0785b7c 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.4", + "@tanstack/angular-query-experimental": "^5.85.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index ba02d2759b..6dd362aa81 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 42a1e0c4a5..432e73e4f8 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 8bb5a97b53..8c2d21607d 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 24e340871e..de5a1da253 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.4", - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", - "@tanstack/react-query-persist-client": "^5.85.4", + "@tanstack/query-async-storage-persister": "^5.85.5", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query-persist-client": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index e2ae236458..2294e5e2df 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 57f120ff31..5b970d6edb 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 071a41ad41..dce26c4317 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index e13b99480f..16bf4b62aa 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.4", - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", - "@tanstack/react-query-persist-client": "^5.85.4", + "@tanstack/query-async-storage-persister": "^5.85.5", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query-persist-client": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index be9250504e..c2e32a2966 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 5d6dc86579..a102f43a75 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index b69a9ea610..8192c4d467 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 0c41ca8f7a..84eef75727 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", - "@tanstack/react-query-next-experimental": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query-next-experimental": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index f8f4387f9e..378e8b0ef9 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 14c7cf583e..3272072d1e 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.4", + "@tanstack/query-async-storage-persister": "^5.85.5", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", - "@tanstack/react-query-persist-client": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query-persist-client": "^5.85.5", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 29eac496cf..06b2ad5e97 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index bdda9e8d62..c9e2ed52c7 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index a9876540d7..20f530ba8e 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index abd00fb511..51f313f77d 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index e8ac64237c..8b5092e4d5 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 5682e1ba91..05e1b9b62c 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 22fa73de2f..55d3849074 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index a2f4e1dd28..e143b7057b 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 5ecc8953f9..f73cd2ed28 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 4c8c325911..01a1db5d77 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 318da13060..7439458d62 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index cc61e529d9..e1cc5bfc41 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.4", - "@tanstack/react-query-devtools": "^5.85.4", + "@tanstack/react-query": "^5.85.5", + "@tanstack/react-query-devtools": "^5.85.5", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 87887138a9..932d4ed2f3 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.4", - "@tanstack/solid-query-devtools": "^5.85.4", + "@tanstack/solid-query": "^5.85.5", + "@tanstack/solid-query-devtools": "^5.85.5", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 1346d8d362..e32897b86e 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.4", - "@tanstack/solid-query-devtools": "^5.85.4", + "@tanstack/solid-query": "^5.85.5", + "@tanstack/solid-query-devtools": "^5.85.5", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index e5714dca4f..29108a5eb3 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.4", - "@tanstack/solid-query-devtools": "^5.85.4", + "@tanstack/solid-query": "^5.85.5", + "@tanstack/solid-query-devtools": "^5.85.5", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index b9077d88f4..f100cc9e6e 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.4", - "@tanstack/solid-query-devtools": "^5.85.4", + "@tanstack/solid-query": "^5.85.5", + "@tanstack/solid-query-devtools": "^5.85.5", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 43df1cdc09..e76160ed2e 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.4", - "@tanstack/solid-query-devtools": "^5.85.4", + "@tanstack/solid-query": "^5.85.5", + "@tanstack/solid-query-devtools": "^5.85.5", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 5a1b16cbb9..3cf2e8e9dd 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.4", - "@tanstack/solid-query-devtools": "^5.85.4", + "@tanstack/solid-query": "^5.85.5", + "@tanstack/solid-query-devtools": "^5.85.5", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 441e73be91..106a9f8f2b 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4" + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 25ba306131..e88237d5aa 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.4", - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4", - "@tanstack/svelte-query-persist-client": "^5.85.4" + "@tanstack/query-async-storage-persister": "^5.85.5", + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5", + "@tanstack/svelte-query-persist-client": "^5.85.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index cdbc09557c..ff54a1483e 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4" + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index ef78b6d55d..bca090390c 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4" + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 05fb7ca22f..0a44f1f161 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4" + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index d0f20d115c..aaefe09741 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4" + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index cde72402a3..5f56a97d08 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4" + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index e6ccdc943d..3784024c9b 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.4", - "@tanstack/svelte-query-devtools": "^5.85.4" + "@tanstack/svelte-query": "^5.85.5", + "@tanstack/svelte-query-devtools": "^5.85.5" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index e394602342..98b9223c4f 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.4", + "@tanstack/vue-query": "^5.85.5", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 4e9622f84c..66e517e05e 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.4", + "@tanstack/vue-query": "^5.85.5", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 927afc1f06..2b30f7e172 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.4", - "@tanstack/vue-query-devtools": "^5.85.4", + "@tanstack/vue-query": "^5.85.5", + "@tanstack/vue-query-devtools": "^5.85.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index b14654428f..cea883e3a0 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.4", + "@tanstack/vue-query": "^5.85.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 78e64d28b2..401d6160c5 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.4" + "@tanstack/vue-query": "^5.85.5" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index e220310280..3ee239ac94 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.4", - "@tanstack/query-persist-client-core": "^5.85.4", - "@tanstack/query-sync-storage-persister": "^5.85.4", - "@tanstack/vue-query": "^5.85.4", + "@tanstack/query-core": "^5.85.5", + "@tanstack/query-persist-client-core": "^5.85.5", + "@tanstack/query-sync-storage-persister": "^5.85.5", + "@tanstack/vue-query": "^5.85.5", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index b5ddcfb413..52e8274ae6 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.4", - "@tanstack/vue-query-devtools": "^5.85.4", + "@tanstack/vue-query": "^5.85.5", + "@tanstack/vue-query-devtools": "^5.85.5", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 6e6c6d381f..6cdd666d90 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.4", + "version": "5.85.5", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 2037bc0d21..7018665635 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.4", + "version": "5.85.5", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 46ba09353e..2e8511f7a5 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.4", + "version": "5.85.5", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 78715f02a9..de364be5f3 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.4", + "version": "5.85.5", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index fbf15127c5..57c8f39d95 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.4", + "version": "5.85.5", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index c0a68d2aa7..aef686f0c4 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.4", + "version": "5.85.5", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index f1891ce887..595cda5f18 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.4", + "version": "5.85.5", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index e3132bce7c..3b0262cb93 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.4", + "version": "5.85.5", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index ad4f9362d8..48b62f9505 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.4", + "version": "5.85.5", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index f34f77bd87..b0d762574e 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.4", + "version": "5.85.5", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 4a6f579225..08202d2d88 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.4", + "version": "5.85.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index ecfb3a4574..b12908efa7 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.4", + "version": "5.85.5", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 979bbccb8a..f4a81340ec 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.4", + "version": "5.85.5", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index c6595565fa..88c5c0da52 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.4", + "version": "5.85.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index ec75fe951a..17b116bcf7 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.4", + "version": "5.85.5", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 94fddc868e..01ad4119d6 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.4", + "version": "5.85.5", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 3858e640e1..7bcea20627 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.4", + "version": "5.85.5", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 4a1683a6ac..bad44ab7de 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.4", + "version": "5.85.5", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 8409ea4181..4739d71f01 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.4", + "version": "5.85.5", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 9a3f68373d31d712e63f2214407dfc3038aadb14 Mon Sep 17 00:00:00 2001 From: Dmytro Borysov <4720760+dborysov@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:59:08 +0200 Subject: [PATCH 359/432] docs: Add not-prose class to browser logo images in devtools documentation (#9556) --- docs/framework/angular/devtools.md | 6 +++--- docs/framework/react/community/community-projects.md | 6 +++--- docs/framework/react/devtools.md | 6 +++--- docs/framework/solid/devtools.md | 6 +++--- docs/framework/svelte/devtools.md | 6 +++--- docs/framework/vue/community/community-projects.md | 6 +++--- docs/framework/vue/devtools.md | 6 +++--- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/framework/angular/devtools.md b/docs/framework/angular/devtools.md index 721e3d5e10..7b3ad785b6 100644 --- a/docs/framework/angular/devtools.md +++ b/docs/framework/angular/devtools.md @@ -5,9 +5,9 @@ title: Devtools > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Enable devtools diff --git a/docs/framework/react/community/community-projects.md b/docs/framework/react/community/community-projects.md index 173c5d3258..97e16b7a0d 100644 --- a/docs/framework/react/community/community-projects.md +++ b/docs/framework/react/community/community-projects.md @@ -37,9 +37,9 @@ Browser extensions for Chrome, Firefox, and Edge that provide devtools for TanSt Links: -- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## GraphQL Code Generator diff --git a/docs/framework/react/devtools.md b/docs/framework/react/devtools.md index f7c489e016..43f57680ab 100644 --- a/docs/framework/react/devtools.md +++ b/docs/framework/react/devtools.md @@ -9,9 +9,9 @@ When you begin your React Query journey, you'll want these devtools by your side > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) > For React Native users: A third-party native macOS app is available for debugging React Query in ANY js-based application. Monitor queries across devices in real-time. Check it out here: [rn-better-dev-tools](https://github.com/LovesWorking/rn-better-dev-tools) diff --git a/docs/framework/solid/devtools.md b/docs/framework/solid/devtools.md index ac6f91f3c1..9034e8f6a5 100644 --- a/docs/framework/solid/devtools.md +++ b/docs/framework/solid/devtools.md @@ -9,9 +9,9 @@ When you begin your Solid Query journey, you'll want these devtools by your side > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Install and Import the Devtools diff --git a/docs/framework/svelte/devtools.md b/docs/framework/svelte/devtools.md index d19925fe9e..0969b7d004 100644 --- a/docs/framework/svelte/devtools.md +++ b/docs/framework/svelte/devtools.md @@ -5,9 +5,9 @@ title: Devtools > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Install and Import the Devtools diff --git a/docs/framework/vue/community/community-projects.md b/docs/framework/vue/community/community-projects.md index 8a1068cf35..9d3326c086 100644 --- a/docs/framework/vue/community/community-projects.md +++ b/docs/framework/vue/community/community-projects.md @@ -13,9 +13,9 @@ Browser extensions for Chrome, Firefox, and Edge that provide devtools for TanSt Links: -- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +- Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +- Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +- Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## oRPC diff --git a/docs/framework/vue/devtools.md b/docs/framework/vue/devtools.md index f9a8364f8a..2e2195b4d9 100644 --- a/docs/framework/vue/devtools.md +++ b/docs/framework/vue/devtools.md @@ -9,9 +9,9 @@ When you begin your Vue Query journey, you'll want these devtools by your side. > For Chrome, Firefox, and Edge users: Third-party browser extensions are available for debugging TanStack Query directly in browser DevTools. These provide the same functionality as the framework-specific devtools packages: > -> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) -> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) -> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) +> - Chrome logo [Devtools for Chrome](https://chromewebstore.google.com/detail/tanstack-query-devtools/annajfchloimdhceglpgglpeepfghfai) +> - Firefox logo [Devtools for Firefox](https://addons.mozilla.org/en-US/firefox/addon/tanstack-query-devtools/) +> - Edge logo [Devtools for Edge](https://microsoftedge.microsoft.com/addons/detail/tanstack-query-devtools/edmdpkgkacmjopodhfolmphdenmddobj) ## Component based Devtools (Vue 3) From 1b0346fca81febca777a92b3d06b17fc99d21a22 Mon Sep 17 00:00:00 2001 From: Kier Borromeo Date: Tue, 19 Aug 2025 18:23:41 +0800 Subject: [PATCH 360/432] docs: Updates examples for invalidation from mutations (#9261) * Updates examples for invalidation from mutations * ci: apply automated fixes * Elaborate promise --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../react/guides/invalidations-from-mutations.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/framework/react/guides/invalidations-from-mutations.md b/docs/framework/react/guides/invalidations-from-mutations.md index ed2a262a41..f1396a312c 100644 --- a/docs/framework/react/guides/invalidations-from-mutations.md +++ b/docs/framework/react/guides/invalidations-from-mutations.md @@ -27,15 +27,25 @@ const queryClient = useQueryClient() // When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key const mutation = useMutation({ mutationFn: addTodo, - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: ['todos'] }) - queryClient.invalidateQueries({ queryKey: ['reminders'] }) + onSuccess: async () => { + // If you're invalidating a single query + await queryClient.invalidateQueries({ queryKey: ['todos'] }) + + // If you're invalidating multiple queries + await Promise.all([ + queryClient.invalidateQueries({ queryKey: ['todos'] }), + queryClient.invalidateQueries({ queryKey: ['reminders'] }), + ]) }, }) ``` [//]: # 'Example2' +Returning a Promise on `onSuccess` makes sure the data is updated before the mutation is entirely complete (i.e., isPending is true until onSuccess is fulfilled) + +[//]: # 'Example2' + You can wire up your invalidations to happen using any of the callbacks available in the [`useMutation` hook](../mutations.md) [//]: # 'Materials' From 7c464e3ded7c4764170839b4aa7f763c7d0aa647 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 12:29:46 +0200 Subject: [PATCH 361/432] chore(deps): update marocchino/sticky-pull-request-comment digest to 9c40848 (#9473) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 989f74ac94..93c879bcca 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -65,7 +65,7 @@ jobs: run: | echo "COMMIT_SHA=${{ github.event.pull_request.head.sha || github.sha }}" >> $GITHUB_ENV - name: Preview Bundle Size - uses: marocchino/sticky-pull-request-comment@28d58c4b5a5eae3bbe45348c3990dcbc2ffcdc69 + uses: marocchino/sticky-pull-request-comment@9c40848920de7cd32a71773ba792d8b04f03bf7a with: message: | Sizes for commit ${{ env.COMMIT_SHA }}: From a1b1279be3befc37a9d4fbb2fa79826bfb0955a4 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 20 Aug 2025 12:58:59 +0900 Subject: [PATCH 362/432] test(react-query/useMutation): remove '@testing-library/jest-dom/vitest' import (#9569) Co-authored-by: Jonghyeon Ko --- packages/react-query/src/__tests__/useMutation.test.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 04711c4baf..5ea9a53a4f 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -1,5 +1,3 @@ -import '@testing-library/jest-dom/vitest' - import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { fireEvent, render } from '@testing-library/react' import * as React from 'react' From ad0ca9f37cadeb254a1d0c4a6e64410fecbf3a32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9A=B0=ED=98=81?= Date: Sat, 30 Aug 2025 14:28:48 +0900 Subject: [PATCH 363/432] docs: fix missing comma in useMutation example to prevent syntax errors (#9593) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- docs/framework/react/typescript.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md index cddd6e6b97..d9fe0319ed 100644 --- a/docs/framework/react/typescript.md +++ b/docs/framework/react/typescript.md @@ -250,8 +250,8 @@ function groupMutationOptions() { } useMutation({ - ...groupMutationOptions() - onSuccess: () => queryClient.invalidateQueries({ queryKey: ['groups'] }) + ...groupMutationOptions(), + onSuccess: () => queryClient.invalidateQueries({ queryKey: ['groups'] }), }) useIsMutating(groupMutationOptions()) queryClient.isMutating(groupMutationOptions()) From 54efe225b6ae8469ec1d179a69b69bc416134baf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9A=B0=ED=98=81?= Date: Sat, 30 Aug 2025 14:36:19 +0900 Subject: [PATCH 364/432] docs: fix type definitions in useQuery options (union, parameters, extra parentheses) (#9596) Co-authored-by: Jonghyeon Ko --- docs/framework/react/reference/useQuery.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md index d4f1554e0e..2eda63b605 100644 --- a/docs/framework/react/reference/useQuery.md +++ b/docs/framework/react/reference/useQuery.md @@ -91,7 +91,7 @@ const { - This function receives a `retryAttempt` integer and the actual Error and returns the delay to apply before the next attempt in milliseconds. - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff. - A function like `attempt => attempt * 1000` applies linear backoff. -- `staleTime: number | 'static' ((query: Query) => number | 'static')` +- `staleTime: number | 'static' | ((query: Query) => number | 'static')` - Optional - Defaults to `0` - The time in milliseconds after which data is considered stale. This value only applies to the hook it is defined on. @@ -154,12 +154,12 @@ const { - `initialDataUpdatedAt: number | (() => number | undefined)` - Optional - If set, this value will be used as the time (in milliseconds) of when the `initialData` itself was last updated. -- `placeholderData: TData | (previousValue: TData | undefined; previousQuery: Query | undefined,) => TData` +- `placeholderData: TData | (previousValue: TData | undefined, previousQuery: Query | undefined) => TData` - Optional - If set, this value will be used as the placeholder data for this particular query observer while the query is still in the `pending` state. - `placeholderData` is **not persisted** to the cache - If you provide a function for `placeholderData`, as a first argument you will receive previously watched query data if available, and the second argument will be the complete previousQuery instance. -- `structuralSharing: boolean | (oldData: unknown | undefined, newData: unknown) => unknown)` +- `structuralSharing: boolean | (oldData: unknown | undefined, newData: unknown) => unknown` - Optional - Defaults to `true` - If set to `false`, structural sharing between query results will be disabled. @@ -178,7 +178,7 @@ const { **Parameter2 (QueryClient)** -- `queryClient?: QueryClient`, +- `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. **Returns** From 2a8ba49919eb916be00df4019c37e5d9ada9f84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9A=B0=ED=98=81?= Date: Sat, 30 Aug 2025 14:44:30 +0900 Subject: [PATCH 365/432] docs: remove unnecessary trailing comma (#9594) Co-authored-by: Jonghyeon Ko --- docs/framework/react/reference/hydration.md | 4 ++-- docs/framework/react/reference/useIsFetching.md | 2 +- docs/framework/react/reference/useIsMutating.md | 2 +- docs/framework/react/reference/useMutation.md | 2 +- docs/framework/react/reference/useMutationState.md | 2 +- docs/framework/react/reference/useQueryClient.md | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/framework/react/reference/hydration.md b/docs/framework/react/reference/hydration.md index 0c91545687..6f2a3346ad 100644 --- a/docs/framework/react/reference/hydration.md +++ b/docs/framework/react/reference/hydration.md @@ -91,7 +91,7 @@ hydrate(queryClient, dehydratedState, options) - `mutations: MutationOptions` The default mutation options to use for the hydrated mutations. - `queries: QueryOptions` The default query options to use for the hydrated queries. - `deserializeData?: (data: any) => any` A function to transform (deserialize) data before it is put into the cache. - - `queryClient?: QueryClient`, + - `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. ### Limitations @@ -122,7 +122,7 @@ function App() { - Optional - `defaultOptions: QueryOptions` - The default query options to use for the hydrated queries. - - `queryClient?: QueryClient`, + - `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. [//]: # 'HydrationBoundary' diff --git a/docs/framework/react/reference/useIsFetching.md b/docs/framework/react/reference/useIsFetching.md index e60e2b6de8..cf6ed23173 100644 --- a/docs/framework/react/reference/useIsFetching.md +++ b/docs/framework/react/reference/useIsFetching.md @@ -16,7 +16,7 @@ const isFetchingPosts = useIsFetching({ queryKey: ['posts'] }) **Options** - `filters?: QueryFilters`: [Query Filters](../../guides/filters.md#query-filters) -- `queryClient?: QueryClient`, +- `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. **Returns** diff --git a/docs/framework/react/reference/useIsMutating.md b/docs/framework/react/reference/useIsMutating.md index 6118468d76..0b6d3c003d 100644 --- a/docs/framework/react/reference/useIsMutating.md +++ b/docs/framework/react/reference/useIsMutating.md @@ -16,7 +16,7 @@ const isMutatingPosts = useIsMutating({ mutationKey: ['posts'] }) **Options** - `filters?: MutationFilters`: [Mutation Filters](../../guides/filters.md#mutation-filters) -- `queryClient?: QueryClient`, +- `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. **Returns** diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md index 9147c072ef..ace5d14462 100644 --- a/docs/framework/react/reference/useMutation.md +++ b/docs/framework/react/reference/useMutation.md @@ -103,7 +103,7 @@ mutate(variables, { **Parameter2 (QueryClient)** -- `queryClient?: QueryClient`, +- `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. **Returns** diff --git a/docs/framework/react/reference/useMutationState.md b/docs/framework/react/reference/useMutationState.md index e2c9b1ceb5..53d6d6dae8 100644 --- a/docs/framework/react/reference/useMutationState.md +++ b/docs/framework/react/reference/useMutationState.md @@ -72,7 +72,7 @@ const latest = data[data.length - 1] - `filters?: MutationFilters`: [Mutation Filters](../../guides/filters.md#mutation-filters) - `select?: (mutation: Mutation) => TResult` - Use this to transform the mutation state. -- `queryClient?: QueryClient`, +- `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. **Returns** diff --git a/docs/framework/react/reference/useQueryClient.md b/docs/framework/react/reference/useQueryClient.md index e3b55206f7..4fb04c1bf7 100644 --- a/docs/framework/react/reference/useQueryClient.md +++ b/docs/framework/react/reference/useQueryClient.md @@ -13,5 +13,5 @@ const queryClient = useQueryClient(queryClient?: QueryClient) **Options** -- `queryClient?: QueryClient`, +- `queryClient?: QueryClient` - Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used. From 428c19fa334518eb12e5fe95181c503e858438a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9A=B0=ED=98=81?= Date: Sat, 30 Aug 2025 14:47:27 +0900 Subject: [PATCH 366/432] docs: update mutation status type (#9595) Co-authored-by: Jonghyeon Ko --- docs/framework/react/reference/useMutation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md index ace5d14462..e3800b0025 100644 --- a/docs/framework/react/reference/useMutation.md +++ b/docs/framework/react/reference/useMutation.md @@ -128,7 +128,7 @@ mutate(variables, { - If you make multiple requests, `onSuccess` will fire only after the latest call you've made. - `mutateAsync: (variables: TVariables, { onSuccess, onSettled, onError }) => Promise` - Similar to `mutate` but returns a promise which can be awaited. -- `status: string` +- `status: MutationStatus` - Will be: - `idle` initial status prior to the mutation function executing. - `pending` if the mutation is currently executing. From 379670dd0a004df872da8494396d30eadcd71d19 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sat, 30 Aug 2025 14:19:17 +0200 Subject: [PATCH 367/432] fix(core): make sure queries revert synchronously (#9601) the switch from the callback approach to async/await with catch was necessary to be able to transform errors into revert-state data for imperative query calls; however, this was a change in behavior because catch in async/await doesn't happen immediately - it runs in the next microtask. That opened up an opportunity for a slight race condition if we re-start a fetch in-between. And who does that? Of course, React Strict Mode. This PR moves the actual state reverting back to a callback (so it happens synchronously), while still keeping the try/catch refactoring merely to transform the promise and the usual error handling --- .../query-core/src/__tests__/query.test.tsx | 50 +++++++++++++++++++ packages/query-core/src/query.ts | 16 +++--- packages/query-core/src/retryer.ts | 7 +-- 3 files changed, 64 insertions(+), 9 deletions(-) diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index febe71cf4c..6a966bb240 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -1192,4 +1192,54 @@ describe('query', () => { expect(initialDataFn).toHaveBeenCalledTimes(1) expect(query.state.data).toBe('initial data') }) + + test('should not override fetching state when revert happens after new observer subscribes', async () => { + const key = queryKey() + let count = 0 + + const queryFn = vi.fn(async ({ signal: _signal }) => { + // Destructure `signal` to intentionally consume it so observer-removal uses revert-cancel path + await sleep(50) + return 'data' + count++ + }) + + const query = new Query({ + client: queryClient, + queryKey: key, + queryHash: hashQueryKeyByOptions(key), + options: { queryFn }, + }) + + const observer1 = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + }) + + query.addObserver(observer1) + const promise1 = query.fetch() + + await vi.advanceTimersByTimeAsync(10) + + query.removeObserver(observer1) + + const observer2 = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + }) + + query.addObserver(observer2) + + query.fetch() + + await expect(promise1).rejects.toBeInstanceOf(CancelledError) + await vi.waitFor(() => expect(query.state.fetchStatus).toBe('idle')) + + expect(queryFn).toHaveBeenCalledTimes(2) + + expect(query.state).toMatchObject({ + fetchStatus: 'idle', + status: 'success', + data: 'data1', + }) + }) }) diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index df5b7c030e..715d969cd0 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -507,7 +507,15 @@ export class Query< | Promise | undefined, fn: context.fetchFn as () => Promise, - abort: abortController.abort.bind(abortController), + onCancel: (error) => { + if (error instanceof CancelledError && error.revert) { + this.setState({ + ...this.#revertState, + fetchStatus: 'idle' as const, + }) + } + abortController.abort() + }, onFail: (failureCount, error) => { this.#dispatch({ type: 'failed', failureCount, error }) }, @@ -550,13 +558,9 @@ export class Query< if (error instanceof CancelledError) { if (error.silent) { // silent cancellation implies a new fetch is going to be started, - // so we hatch onto that promise + // so we piggyback onto that promise return this.#retryer.promise } else if (error.revert) { - this.setState({ - ...this.#revertState, - fetchStatus: 'idle' as const, - }) // transform error into reverted state data // if the initial fetch was cancelled, we have no data, so we have // to get reject with a CancelledError diff --git a/packages/query-core/src/retryer.ts b/packages/query-core/src/retryer.ts index add23dcd05..f4ada851c9 100644 --- a/packages/query-core/src/retryer.ts +++ b/packages/query-core/src/retryer.ts @@ -10,7 +10,7 @@ import type { CancelOptions, DefaultError, NetworkMode } from './types' interface RetryerConfig { fn: () => TData | Promise initialPromise?: Promise - abort?: () => void + onCancel?: (error: TError) => void onFail?: (failureCount: number, error: TError) => void onPause?: () => void onContinue?: () => void @@ -86,9 +86,10 @@ export function createRetryer( const cancel = (cancelOptions?: CancelOptions): void => { if (!isResolved()) { - reject(new CancelledError(cancelOptions)) + const error = new CancelledError(cancelOptions) as TError + reject(error) - config.abort?.() + config.onCancel?.(error) } } const cancelRetry = () => { From b998f68a57e4cefbb3b353e72f118c8607f4f77d Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sat, 30 Aug 2025 12:21:11 +0000 Subject: [PATCH 368/432] release: v5.85.6 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 60be68ee9c..b2a00b543d 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 01e9e2b537..3c818ac8bc 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.5", + "@tanstack/query-async-storage-persister": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index f843a40ac7..8272a2e83d 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 11b33ed9ce..2ae21b4190 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.5", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-devtools-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 5573458312..a1f0386d29 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 253f3f582d..20a2f4750a 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index cb2a2cb83d..d789d99d77 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index ab6bfcb1d1..c13784f2ac 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index cfb1025c5d..8a2cdf4478 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index e3a7600268..169716e19f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 65e0785b7c..b391ba638d 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.5", + "@tanstack/angular-query-experimental": "^5.85.6", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 6dd362aa81..9f0d8d247f 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 432e73e4f8..6bce025199 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 8c2d21607d..cfe452c84f 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index de5a1da253..80958a3319 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.5", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", - "@tanstack/react-query-persist-client": "^5.85.5", + "@tanstack/query-async-storage-persister": "^5.85.6", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query-persist-client": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 2294e5e2df..00a44798fb 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 5b970d6edb..3f0c844718 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index dce26c4317..610095c7b0 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 16bf4b62aa..d71d906c20 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.5", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", - "@tanstack/react-query-persist-client": "^5.85.5", + "@tanstack/query-async-storage-persister": "^5.85.6", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query-persist-client": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index c2e32a2966..b9e5e7ef25 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index a102f43a75..47942e4e9f 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 8192c4d467..b63fe5d3aa 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 84eef75727..af3696fd3d 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", - "@tanstack/react-query-next-experimental": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query-next-experimental": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 378e8b0ef9..13ac076698 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 3272072d1e..925e8c6f2d 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.5", + "@tanstack/query-async-storage-persister": "^5.85.6", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", - "@tanstack/react-query-persist-client": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query-persist-client": "^5.85.6", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 06b2ad5e97..4f96ac57ec 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index c9e2ed52c7..12299e8345 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 20f530ba8e..c976516e50 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 51f313f77d..c41ef6cf87 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 8b5092e4d5..cfa521d73a 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 05e1b9b62c..4a2d53509e 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 55d3849074..11fdd3cf0b 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index e143b7057b..af43606f4d 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index f73cd2ed28..ed76ea5429 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 01a1db5d77..e405514809 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 7439458d62..ef3f5c731f 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index e1cc5bfc41..8df1b99d18 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.5", - "@tanstack/react-query-devtools": "^5.85.5", + "@tanstack/react-query": "^5.85.6", + "@tanstack/react-query-devtools": "^5.85.6", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 932d4ed2f3..889bb16a0d 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.5", - "@tanstack/solid-query-devtools": "^5.85.5", + "@tanstack/solid-query": "^5.85.6", + "@tanstack/solid-query-devtools": "^5.85.6", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index e32897b86e..c07e3fdeb1 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.5", - "@tanstack/solid-query-devtools": "^5.85.5", + "@tanstack/solid-query": "^5.85.6", + "@tanstack/solid-query-devtools": "^5.85.6", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 29108a5eb3..06d7933e98 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.5", - "@tanstack/solid-query-devtools": "^5.85.5", + "@tanstack/solid-query": "^5.85.6", + "@tanstack/solid-query-devtools": "^5.85.6", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index f100cc9e6e..4b966ab414 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.5", - "@tanstack/solid-query-devtools": "^5.85.5", + "@tanstack/solid-query": "^5.85.6", + "@tanstack/solid-query-devtools": "^5.85.6", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index e76160ed2e..527e212f79 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.5", - "@tanstack/solid-query-devtools": "^5.85.5", + "@tanstack/solid-query": "^5.85.6", + "@tanstack/solid-query-devtools": "^5.85.6", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 3cf2e8e9dd..35d6f9a387 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.5", - "@tanstack/solid-query-devtools": "^5.85.5", + "@tanstack/solid-query": "^5.85.6", + "@tanstack/solid-query-devtools": "^5.85.6", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 106a9f8f2b..15e322ffdf 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5" + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index e88237d5aa..f1625fda63 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.5", - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5", - "@tanstack/svelte-query-persist-client": "^5.85.5" + "@tanstack/query-async-storage-persister": "^5.85.6", + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6", + "@tanstack/svelte-query-persist-client": "^5.85.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index ff54a1483e..88cb1c049f 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5" + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index bca090390c..fc1563d6fd 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5" + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 0a44f1f161..850ceed684 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5" + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index aaefe09741..9500c17a3b 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5" + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 5f56a97d08..f8b2d8cdbf 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5" + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 3784024c9b..d1c0a7182b 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.5", - "@tanstack/svelte-query-devtools": "^5.85.5" + "@tanstack/svelte-query": "^5.85.6", + "@tanstack/svelte-query-devtools": "^5.85.6" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 98b9223c4f..cfd1152714 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.5", + "@tanstack/vue-query": "^5.85.6", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 66e517e05e..1255d63998 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.5", + "@tanstack/vue-query": "^5.85.6", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 2b30f7e172..ff0d6cbfea 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.5", - "@tanstack/vue-query-devtools": "^5.85.5", + "@tanstack/vue-query": "^5.85.6", + "@tanstack/vue-query-devtools": "^5.85.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index cea883e3a0..49d7cf634e 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.5", + "@tanstack/vue-query": "^5.85.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 401d6160c5..87dab50117 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.5" + "@tanstack/vue-query": "^5.85.6" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 3ee239ac94..ccddec41dd 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.5", - "@tanstack/query-persist-client-core": "^5.85.5", - "@tanstack/query-sync-storage-persister": "^5.85.5", - "@tanstack/vue-query": "^5.85.5", + "@tanstack/query-core": "^5.85.6", + "@tanstack/query-persist-client-core": "^5.85.6", + "@tanstack/query-sync-storage-persister": "^5.85.6", + "@tanstack/vue-query": "^5.85.6", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 52e8274ae6..0e62f0993f 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.5", - "@tanstack/vue-query-devtools": "^5.85.5", + "@tanstack/vue-query": "^5.85.6", + "@tanstack/vue-query-devtools": "^5.85.6", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 6cdd666d90..65669d8d56 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.5", + "version": "5.85.6", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 7018665635..7142e58c8a 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.5", + "version": "5.85.6", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 2e8511f7a5..6fac78bf1c 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.5", + "version": "5.85.6", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index de364be5f3..1da42db43d 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.5", + "version": "5.85.6", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 57c8f39d95..355454304f 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.5", + "version": "5.85.6", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index aef686f0c4..dce46e13c1 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.5", + "version": "5.85.6", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 595cda5f18..1a374bd953 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.5", + "version": "5.85.6", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 3b0262cb93..e1dcd892d3 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.5", + "version": "5.85.6", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 48b62f9505..cc16f8e492 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.5", + "version": "5.85.6", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index b0d762574e..52ff96b537 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.5", + "version": "5.85.6", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 08202d2d88..65b60dab85 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.5", + "version": "5.85.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index b12908efa7..89c98300c3 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.5", + "version": "5.85.6", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index f4a81340ec..2afade4ef1 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.5", + "version": "5.85.6", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 88c5c0da52..3978b5bad6 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.5", + "version": "5.85.6", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 17b116bcf7..1b7ad3dbc5 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.5", + "version": "5.85.6", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 01ad4119d6..35eca18d9c 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.5", + "version": "5.85.6", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 7bcea20627..36c91bbcff 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.5", + "version": "5.85.6", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index bad44ab7de..b7255aea6a 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.5", + "version": "5.85.6", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 4739d71f01..4a39f933c9 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.5", + "version": "5.85.6", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 0650eaf11669cddfb3a2a31be10346a567e05c37 Mon Sep 17 00:00:00 2001 From: Imad Selka <104644824+imadselka@users.noreply.github.com> Date: Mon, 1 Sep 2025 11:53:17 +0100 Subject: [PATCH 369/432] docs: clarify queryClient refetch behavior for stale queries (#9560) * docs(queryClient): add example for refetchQueries with stale: true and type: active * docs(react-native): modify useRefreshOnFocus example * docs(react-native): add queryKey in useRefreshOnFocus example * Apply suggestion from @TkDodo * ci: apply automated fixes --------- Co-authored-by: Dominik Dorfmeister Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- docs/framework/react/react-native.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/framework/react/react-native.md b/docs/framework/react/react-native.md index 6936b0b13a..3560420c93 100644 --- a/docs/framework/react/react-native.md +++ b/docs/framework/react/react-native.md @@ -74,13 +74,15 @@ useEffect(() => { ## Refresh on Screen focus In some situations, you may want to refetch the query when a React Native Screen is focused again. -This custom hook will call the provided `refetch` function when the screen is focused again. +This custom hook will refetch **all active stale queries** when the screen is focused again. ```tsx import React from 'react' import { useFocusEffect } from '@react-navigation/native' +import { useQueryClient } from '@tanstack/react-query' -export function useRefreshOnFocus(refetch: () => Promise) { +export function useRefreshOnFocus() { + const queryClient = useQueryClient() const firstTimeRef = React.useRef(true) useFocusEffect( @@ -90,13 +92,18 @@ export function useRefreshOnFocus(refetch: () => Promise) { return } - refetch() - }, [refetch]), + // refetch all stale active queries + queryClient.refetchQueries({ + queryKey: ['posts'], + stale: true, + type: 'active', + }) + }, [queryClient]), ) } ``` -In the above code, `refetch` is skipped the first time because `useFocusEffect` calls our callback on mount in addition to screen focus. +In the above code, the first focus (when the screen is initially mounted) is skipped because `useFocusEffect` calls our callback on mount in addition to screen focus. ## Disable queries on out of focus screens From f97d7258a0608f1a6b9e5c16f83807a29f11e8aa Mon Sep 17 00:00:00 2001 From: Vlad Kovechenkov Date: Tue, 2 Sep 2025 05:08:19 +0200 Subject: [PATCH 370/432] docs: mention second parameter for `cancelQueries` (#9597) Co-authored-by: Jonghyeon Ko --- .../react/guides/query-cancellation.md | 18 ++++++++++++++++++ docs/reference/QueryClient.md | 6 +++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/framework/react/guides/query-cancellation.md b/docs/framework/react/guides/query-cancellation.md index 528262336b..1d34c13492 100644 --- a/docs/framework/react/guides/query-cancellation.md +++ b/docs/framework/react/guides/query-cancellation.md @@ -188,6 +188,24 @@ return ( [//]: # 'Example7' +## `Cancel Options` + +Cancel options are used to control the behavior of query cancellation operations. + +```tsx +// Cancel specific queries silently +await queryClient.cancelQueries({ queryKey: ['posts'] }, { silent: true }) +``` + +A cancel options object supports the following properties: + +- `silent?: boolean` + - When set to `true`, suppresses propagation of `CancelledError` to observers (e.g., `onError` callbacks) and related notifications, and returns the retry promise instead of rejecting. + - Defaults to `false` +- `revert?: boolean` + - When set to `true`, restores the queryโ€™s state (data and status) from immediately before the in-flight fetch, sets `fetchStatus` back to `idle`, and only throws if there was no prior data. + - Defaults to `true` + ## Limitations Cancellation does not work when working with `Suspense` hooks: `useSuspenseQuery`, `useSuspenseQueries` and `useSuspenseInfiniteQuery`. diff --git a/docs/reference/QueryClient.md b/docs/reference/QueryClient.md index 86634c2e5d..a6e57679e2 100644 --- a/docs/reference/QueryClient.md +++ b/docs/reference/QueryClient.md @@ -403,12 +403,16 @@ The `cancelQueries` method can be used to cancel outgoing queries based on their This is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve. ```tsx -await queryClient.cancelQueries({ queryKey: ['posts'], exact: true }) +await queryClient.cancelQueries( + { queryKey: ['posts'], exact: true }, + { silent: true }, +) ``` **Options** - `filters?: QueryFilters`: [Query Filters](../../framework/react/guides/filters.md#query-filters) +- `cancelOptions?: CancelOptions`: [Cancel Options](../../framework/react/guides/query-cancellation.md#cancel-options) **Returns** From 7d24156159cf983cc22a05f61236fd55207b10d6 Mon Sep 17 00:00:00 2001 From: Flo Date: Tue, 2 Sep 2025 09:18:20 +0200 Subject: [PATCH 371/432] refactor(query-core): improve replaceEqualDeep performance (#9604) * refactor(query-core): improve replaceEqualDeep performance * try object.prototype that broke eslint in router * no object flag * improved version w/ more code * ci: apply automated fixes * less code, but still 2x faster --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister --- packages/query-core/src/utils.ts | 67 ++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index f4bde86c8d..fc3a47a210 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -245,6 +245,8 @@ export function partialMatchKey(a: any, b: any): boolean { return false } +const hasOwn = Object.prototype.hasOwnProperty + /** * This function returns `a` if `b` is deeply equal. * If not, it will replace any deeply equal children of `b` with those of `a`. @@ -258,37 +260,43 @@ export function replaceEqualDeep(a: any, b: any): any { const array = isPlainArray(a) && isPlainArray(b) - if (array || (isPlainObject(a) && isPlainObject(b))) { - const aItems = array ? a : Object.keys(a) - const aSize = aItems.length - const bItems = array ? b : Object.keys(b) - const bSize = bItems.length - const copy: any = array ? [] : {} - const aItemsSet = new Set(aItems) - - let equalItems = 0 - - for (let i = 0; i < bSize; i++) { - const key = array ? i : bItems[i] - if ( - ((!array && aItemsSet.has(key)) || array) && - a[key] === undefined && - b[key] === undefined - ) { - copy[key] = undefined - equalItems++ - } else { - copy[key] = replaceEqualDeep(a[key], b[key]) - if (copy[key] === a[key] && a[key] !== undefined) { - equalItems++ - } - } + if (!array && !(isPlainObject(a) && isPlainObject(b))) return b + + const aItems = array ? a : Object.keys(a) + const aSize = aItems.length + const bItems = array ? b : Object.keys(b) + const bSize = bItems.length + const copy: any = array ? new Array(bSize) : {} + + let equalItems = 0 + + for (let i = 0; i < bSize; i++) { + const key: any = array ? i : bItems[i] + const aItem = a[key] + const bItem = b[key] + + if (aItem === bItem) { + copy[key] = aItem + if (array ? i < aSize : hasOwn.call(a, key)) equalItems++ + continue + } + + if ( + aItem === null || + bItem === null || + typeof aItem !== 'object' || + typeof bItem !== 'object' + ) { + copy[key] = bItem + continue } - return aSize === bSize && equalItems === aSize ? a : copy + const v = replaceEqualDeep(aItem, bItem) + copy[key] = v + if (v === aItem) equalItems++ } - return b + return aSize === bSize && equalItems === aSize ? a : copy } /** @@ -311,13 +319,12 @@ export function shallowEqualObjects>( return true } -export function isPlainArray(value: unknown) { +export function isPlainArray(value: unknown): value is Array { return Array.isArray(value) && value.length === Object.keys(value).length } // Copied from: https://github.com/jonschlinkert/is-plain-object -// eslint-disable-next-line @typescript-eslint/no-wrapper-object-types -export function isPlainObject(o: any): o is Object { +export function isPlainObject(o: any): o is Record { if (!hasObjectPrototype(o)) { return false } From a978b34b1b9ba8e1e6fcb2baf3c413fc10225100 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 2 Sep 2025 07:22:33 +0000 Subject: [PATCH 372/432] release: v5.85.7 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index b2a00b543d..f39d3611b8 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 3c818ac8bc..7492b812d4 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.6", + "@tanstack/query-async-storage-persister": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 8272a2e83d..019e65ddb6 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 2ae21b4190..49f39981c2 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.6", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-devtools-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index a1f0386d29..c8f6851e78 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 20a2f4750a..3da1f6b3ff 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index d789d99d77..ec980828f3 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index c13784f2ac..7920993d07 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 8a2cdf4478..e8826b91d1 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 169716e19f..03a3efe9c4 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index b391ba638d..ca48cfa5cf 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.6", + "@tanstack/angular-query-experimental": "^5.85.7", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 9f0d8d247f..68f5fb6752 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 6bce025199..7cf767c275 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index cfe452c84f..25a5acfc8b 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 80958a3319..1c97c56368 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.6", - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", - "@tanstack/react-query-persist-client": "^5.85.6", + "@tanstack/query-async-storage-persister": "^5.85.7", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query-persist-client": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 00a44798fb..462a1dfac2 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 3f0c844718..fcab512bd0 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 610095c7b0..6fa1608fbf 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index d71d906c20..2a9977eb35 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.6", - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", - "@tanstack/react-query-persist-client": "^5.85.6", + "@tanstack/query-async-storage-persister": "^5.85.7", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query-persist-client": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b9e5e7ef25..2c76c939b9 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 47942e4e9f..f0561c1d58 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index b63fe5d3aa..53b1b68380 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index af3696fd3d..eca217bd52 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", - "@tanstack/react-query-next-experimental": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query-next-experimental": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 13ac076698..33624d1c09 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 925e8c6f2d..f39888b6dc 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.6", + "@tanstack/query-async-storage-persister": "^5.85.7", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", - "@tanstack/react-query-persist-client": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query-persist-client": "^5.85.7", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 4f96ac57ec..05d37b45ec 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 12299e8345..289c57ea37 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index c976516e50..22619bea7d 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index c41ef6cf87..67c11da58b 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index cfa521d73a..d35efecf45 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 4a2d53509e..604845d4df 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 11fdd3cf0b..7dac5a5d4e 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index af43606f4d..3b841d03a1 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index ed76ea5429..3fe03b9efd 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index e405514809..f4b6efd0fe 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index ef3f5c731f..1a202f4e13 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 8df1b99d18..16c1d172d5 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.6", - "@tanstack/react-query-devtools": "^5.85.6", + "@tanstack/react-query": "^5.85.7", + "@tanstack/react-query-devtools": "^5.85.7", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 889bb16a0d..d75b8aaef4 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.6", - "@tanstack/solid-query-devtools": "^5.85.6", + "@tanstack/solid-query": "^5.85.7", + "@tanstack/solid-query-devtools": "^5.85.7", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index c07e3fdeb1..df4da1550e 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.6", - "@tanstack/solid-query-devtools": "^5.85.6", + "@tanstack/solid-query": "^5.85.7", + "@tanstack/solid-query-devtools": "^5.85.7", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 06d7933e98..20e6b28e81 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.6", - "@tanstack/solid-query-devtools": "^5.85.6", + "@tanstack/solid-query": "^5.85.7", + "@tanstack/solid-query-devtools": "^5.85.7", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 4b966ab414..67283c0cab 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.6", - "@tanstack/solid-query-devtools": "^5.85.6", + "@tanstack/solid-query": "^5.85.7", + "@tanstack/solid-query-devtools": "^5.85.7", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 527e212f79..1ae3226043 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.6", - "@tanstack/solid-query-devtools": "^5.85.6", + "@tanstack/solid-query": "^5.85.7", + "@tanstack/solid-query-devtools": "^5.85.7", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 35d6f9a387..68cbaecd69 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.6", - "@tanstack/solid-query-devtools": "^5.85.6", + "@tanstack/solid-query": "^5.85.7", + "@tanstack/solid-query-devtools": "^5.85.7", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 15e322ffdf..a8e9527581 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6" + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index f1625fda63..8dd8e3cc43 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.6", - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6", - "@tanstack/svelte-query-persist-client": "^5.85.6" + "@tanstack/query-async-storage-persister": "^5.85.7", + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7", + "@tanstack/svelte-query-persist-client": "^5.85.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 88cb1c049f..a7dda09b1d 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6" + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index fc1563d6fd..cd362c3284 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6" + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 850ceed684..f5ffe4d03e 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6" + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 9500c17a3b..6e0f3f6fd8 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6" + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index f8b2d8cdbf..217be86130 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6" + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index d1c0a7182b..b4b1f84380 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.6", - "@tanstack/svelte-query-devtools": "^5.85.6" + "@tanstack/svelte-query": "^5.85.7", + "@tanstack/svelte-query-devtools": "^5.85.7" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index cfd1152714..a3eb8876f1 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.6", + "@tanstack/vue-query": "^5.85.7", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 1255d63998..1ab2bdfd58 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.6", + "@tanstack/vue-query": "^5.85.7", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index ff0d6cbfea..219ce1b87f 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.6", - "@tanstack/vue-query-devtools": "^5.85.6", + "@tanstack/vue-query": "^5.85.7", + "@tanstack/vue-query-devtools": "^5.85.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 49d7cf634e..c56e83bd94 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.6", + "@tanstack/vue-query": "^5.85.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 87dab50117..c540c4878d 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.6" + "@tanstack/vue-query": "^5.85.7" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index ccddec41dd..9058de2d81 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.6", - "@tanstack/query-persist-client-core": "^5.85.6", - "@tanstack/query-sync-storage-persister": "^5.85.6", - "@tanstack/vue-query": "^5.85.6", + "@tanstack/query-core": "^5.85.7", + "@tanstack/query-persist-client-core": "^5.85.7", + "@tanstack/query-sync-storage-persister": "^5.85.7", + "@tanstack/vue-query": "^5.85.7", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 0e62f0993f..f628d94ae4 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.6", - "@tanstack/vue-query-devtools": "^5.85.6", + "@tanstack/vue-query": "^5.85.7", + "@tanstack/vue-query-devtools": "^5.85.7", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 65669d8d56..a49684b82d 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.6", + "version": "5.85.7", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 7142e58c8a..26a74d9fe4 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.6", + "version": "5.85.7", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 6fac78bf1c..c522f7eeae 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.6", + "version": "5.85.7", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 1da42db43d..a0d52a9859 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.6", + "version": "5.85.7", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 355454304f..f5db08fd41 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.6", + "version": "5.85.7", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index dce46e13c1..642533e13d 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.6", + "version": "5.85.7", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 1a374bd953..7ab0b78d83 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.6", + "version": "5.85.7", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index e1dcd892d3..92e727cea6 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.6", + "version": "5.85.7", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index cc16f8e492..ba681cf455 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.6", + "version": "5.85.7", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 52ff96b537..d003618be3 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.6", + "version": "5.85.7", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 65b60dab85..46f2f03197 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.6", + "version": "5.85.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 89c98300c3..87fbc53436 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.6", + "version": "5.85.7", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 2afade4ef1..169ab15f77 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.6", + "version": "5.85.7", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 3978b5bad6..56afbbec8e 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.6", + "version": "5.85.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 1b7ad3dbc5..dcd592dcf1 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.6", + "version": "5.85.7", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 35eca18d9c..d9c29c6e93 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.6", + "version": "5.85.7", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 36c91bbcff..8f3eab2068 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.6", + "version": "5.85.7", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index b7255aea6a..193fa5fcb7 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.6", + "version": "5.85.7", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 4a39f933c9..bde2981d72 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.6", + "version": "5.85.7", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From ef0c16ecb1cf82c5a004faf070b054dd5962d1d1 Mon Sep 17 00:00:00 2001 From: Minha Kang <118591632+m2na7@users.noreply.github.com> Date: Tue, 2 Sep 2025 16:53:28 +0900 Subject: [PATCH 373/432] refactor(react-query): replace magic number with named constant in suspense timers (#9607) --- packages/react-query/src/suspense.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-query/src/suspense.ts b/packages/react-query/src/suspense.ts index b5bb6677e2..414370ec29 100644 --- a/packages/react-query/src/suspense.ts +++ b/packages/react-query/src/suspense.ts @@ -24,9 +24,10 @@ export const ensureSuspenseTimers = ( if (defaultedOptions.suspense) { // Handle staleTime to ensure minimum 1000ms in Suspense mode // This prevents unnecessary refetching when components remount after suspending + const MIN_SUSPENSE_TIME_MS = 1000 const clamp = (value: number | 'static' | undefined) => - value === 'static' ? value : Math.max(value ?? 1000, 1000) + value === 'static' ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS) const originalStaleTime = defaultedOptions.staleTime defaultedOptions.staleTime = @@ -35,7 +36,7 @@ export const ensureSuspenseTimers = ( : clamp(originalStaleTime) if (typeof defaultedOptions.gcTime === 'number') { - defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1000) + defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, MIN_SUSPENSE_TIME_MS) } } } From c44ca473e46fd306da37df719572f1fc5e6541d6 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 2 Sep 2025 07:54:17 +0000 Subject: [PATCH 374/432] ci: apply automated fixes --- packages/react-query/src/suspense.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/react-query/src/suspense.ts b/packages/react-query/src/suspense.ts index 414370ec29..d87569f103 100644 --- a/packages/react-query/src/suspense.ts +++ b/packages/react-query/src/suspense.ts @@ -27,7 +27,9 @@ export const ensureSuspenseTimers = ( const MIN_SUSPENSE_TIME_MS = 1000 const clamp = (value: number | 'static' | undefined) => - value === 'static' ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS) + value === 'static' + ? value + : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS) const originalStaleTime = defaultedOptions.staleTime defaultedOptions.staleTime = @@ -36,7 +38,10 @@ export const ensureSuspenseTimers = ( : clamp(originalStaleTime) if (typeof defaultedOptions.gcTime === 'number') { - defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, MIN_SUSPENSE_TIME_MS) + defaultedOptions.gcTime = Math.max( + defaultedOptions.gcTime, + MIN_SUSPENSE_TIME_MS, + ) } } } From aec19c93a5bf33b1f73ca59a81197cb07c85e972 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 2 Sep 2025 07:59:16 +0000 Subject: [PATCH 375/432] release: v5.85.8 --- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 6 +++--- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 6 +++--- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 6 +++--- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- 30 files changed, 60 insertions(+), 60 deletions(-) diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 68f5fb6752..a19bce6419 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 7cf767c275..c133fdb651 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 25a5acfc8b..2b59c0f107 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 1c97c56368..c7d479dd06 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.85.7", - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", - "@tanstack/react-query-persist-client": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query-persist-client": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 462a1dfac2..97f54cf7ba 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index fcab512bd0..e5a2960755 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 6fa1608fbf..e85d6aa099 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 2a9977eb35..6c4a5bb55b 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "@tanstack/query-async-storage-persister": "^5.85.7", - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", - "@tanstack/react-query-persist-client": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query-persist-client": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 2c76c939b9..6e9f90bdc4 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index f0561c1d58..263c3d0521 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 53b1b68380..83ba2bdb8f 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index eca217bd52..50b986efba 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", - "@tanstack/react-query-next-experimental": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query-next-experimental": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 33624d1c09..d88ce384bd 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index f39888b6dc..25d43659ec 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -10,9 +10,9 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.85.7", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", - "@tanstack/react-query-persist-client": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query-persist-client": "^5.85.8", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 05d37b45ec..02d08a9ad0 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 289c57ea37..c135370f41 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 22619bea7d..56d3df65e4 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 67c11da58b..f4a9fd50eb 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index d35efecf45..8ce657369c 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 604845d4df..80e9206617 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 7dac5a5d4e..5f22047680 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 3b841d03a1..d45631fd84 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 3fe03b9efd..cfd2411041 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index f4b6efd0fe..f182188f35 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 1a202f4e13..0b1c56b90d 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 16c1d172d5..3fdee389a0 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.7", - "@tanstack/react-query-devtools": "^5.85.7", + "@tanstack/react-query": "^5.85.8", + "@tanstack/react-query-devtools": "^5.85.8", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 92e727cea6..0c87ad66dc 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.7", + "version": "5.85.8", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index ba681cf455..cc92f4282d 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.7", + "version": "5.85.8", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index d003618be3..5b8f7f2d1b 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.7", + "version": "5.85.8", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 46f2f03197..91996de24e 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.7", + "version": "5.85.8", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", From 52210299079b32d5721921e0cdc44245c57f496f Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Tue, 2 Sep 2025 17:24:46 +0900 Subject: [PATCH 376/432] test(react-query/HydrationBoundary): add tests for 'non-object' state and missing 'queries' property handling (#9605) Co-authored-by: Jonghyeon Ko --- .../src/__tests__/HydrationBoundary.test.tsx | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx index 796dfc958d..a703d0a8a7 100644 --- a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx @@ -362,6 +362,54 @@ describe('React hydration', () => { queryClient.clear() }) + test('should not hydrate queries if state is not an object', async () => { + const queryClient = new QueryClient() + + const hydrateSpy = vi.spyOn(coreModule, 'hydrate') + + function Page() { + return null + } + + render( + + + + + , + ) + + await vi.advanceTimersByTimeAsync(0) + expect(hydrateSpy).toHaveBeenCalledTimes(0) + + hydrateSpy.mockRestore() + queryClient.clear() + }) + + test('should handle state without queries property gracefully', async () => { + const queryClient = new QueryClient() + + const hydrateSpy = vi.spyOn(coreModule, 'hydrate') + + function Page() { + return null + } + + render( + + + + + , + ) + + await vi.advanceTimersByTimeAsync(0) + expect(hydrateSpy).toHaveBeenCalledTimes(0) + + hydrateSpy.mockRestore() + queryClient.clear() + }) + // https://github.com/TanStack/query/issues/8677 test('should not infinite loop when hydrating promises that resolve to errors', async () => { const originalHydrate = coreModule.hydrate From 564a4f6e19a3ac2b86122392d3bb926abce076c2 Mon Sep 17 00:00:00 2001 From: Kim YoungHoon <100750188+joseph0926@users.noreply.github.com> Date: Tue, 2 Sep 2025 21:12:59 +0900 Subject: [PATCH 377/432] fix(query-core): ensure combine re-executes after cache restoration with memoized combine (#9592) * fix(query-core): ensure combine re-executes after cache restoration with memoized combine * fix(query-core): add error field to result change detection * test(query-core): add test for QueriesObserver early return notification * test(query-core): improve test for QueriesObserver early return notification * refactor(query-core): use shallowEqualObjects for result comparison * refactor(query-core): improve setQueries flow and fix persist/restore issue with memoized combine * refactor(query-core): improve setQueries flow and remove log * test(react-query): update useQueries expectations for metadata change detection * test(react-query): fix test comments * test(react-query): add test for stable combine optimization on unrelated re-renders --------- Co-authored-by: Dominik Dorfmeister --- .../src/__tests__/queriesObserver.test.tsx | 47 ++++++ packages/query-core/src/queriesObserver.ts | 38 +++-- .../use-queries-with-persist.test.tsx | 134 ++++++++++++++++++ .../src/__tests__/useQueries.test.tsx | 93 +++++++++++- 4 files changed, 292 insertions(+), 20 deletions(-) create mode 100644 packages/react-query-persist-client/src/__tests__/use-queries-with-persist.test.tsx diff --git a/packages/query-core/src/__tests__/queriesObserver.test.tsx b/packages/query-core/src/__tests__/queriesObserver.test.tsx index a41c848393..da81daa653 100644 --- a/packages/query-core/src/__tests__/queriesObserver.test.tsx +++ b/packages/query-core/src/__tests__/queriesObserver.test.tsx @@ -347,4 +347,51 @@ describe('queriesObserver', () => { expect(queryFn1).toHaveBeenCalledTimes(1) expect(queryFn2).toHaveBeenCalledTimes(1) }) + + test('should notify when results change during early return', async () => { + const key1 = queryKey() + const key2 = queryKey() + const queryFn1 = vi.fn().mockReturnValue(1) + const queryFn2 = vi.fn().mockReturnValue(2) + + queryClient.setQueryData(key1, 1) + queryClient.setQueryData(key2, 2) + + const observer = new QueriesObserver(queryClient, [ + { queryKey: key1, queryFn: queryFn1 }, + { queryKey: key2, queryFn: queryFn2 }, + ]) + + const results: Array> = [] + results.push(observer.getCurrentResult()) + + const onUpdate = vi.fn((result: Array) => { + results.push(result) + }) + const unsubscribe = observer.subscribe(onUpdate) + const baseline = results.length + + observer.setQueries([ + { + queryKey: key1, + queryFn: queryFn1, + select: (d: any) => d + 100, + }, + { + queryKey: key2, + queryFn: queryFn2, + select: (d: any) => d + 100, + }, + ]) + + await vi.advanceTimersByTimeAsync(0) + + unsubscribe() + + expect(results.length).toBeGreaterThan(baseline) + expect(results[results.length - 1]).toMatchObject([ + { status: 'success', data: 101 }, + { status: 'success', data: 102 }, + ]) + }) }) diff --git a/packages/query-core/src/queriesObserver.ts b/packages/query-core/src/queriesObserver.ts index 853e490abd..6458f208da 100644 --- a/packages/query-core/src/queriesObserver.ts +++ b/packages/query-core/src/queriesObserver.ts @@ -1,7 +1,7 @@ import { notifyManager } from './notifyManager' import { QueryObserver } from './queryObserver' import { Subscribable } from './subscribable' -import { replaceEqualDeep } from './utils' +import { replaceEqualDeep, shallowEqualObjects } from './utils' import type { DefaultedQueryObserverOptions, QueryObserverOptions, @@ -122,26 +122,34 @@ export class QueriesObserver< (observer, index) => observer !== prevObservers[index], ) - if (prevObservers.length === newObservers.length && !hasIndexChange) { - return - } + const hasResultChange = + prevObservers.length === newObservers.length && !hasIndexChange + ? newResult.some((result, index) => { + const prev = this.#result[index] + return !prev || !shallowEqualObjects(result, prev) + }) + : true - this.#observers = newObservers - this.#result = newResult + if (!hasIndexChange && !hasResultChange) return - if (!this.hasListeners()) { - return + if (hasIndexChange) { + this.#observers = newObservers } - difference(prevObservers, newObservers).forEach((observer) => { - observer.destroy() - }) + this.#result = newResult - difference(newObservers, prevObservers).forEach((observer) => { - observer.subscribe((result) => { - this.#onUpdate(observer, result) + if (!this.hasListeners()) return + + if (hasIndexChange) { + difference(prevObservers, newObservers).forEach((observer) => { + observer.destroy() }) - }) + difference(newObservers, prevObservers).forEach((observer) => { + observer.subscribe((result) => { + this.#onUpdate(observer, result) + }) + }) + } this.#notify() }) diff --git a/packages/react-query-persist-client/src/__tests__/use-queries-with-persist.test.tsx b/packages/react-query-persist-client/src/__tests__/use-queries-with-persist.test.tsx new file mode 100644 index 0000000000..e8fae6d785 --- /dev/null +++ b/packages/react-query-persist-client/src/__tests__/use-queries-with-persist.test.tsx @@ -0,0 +1,134 @@ +import { afterEach, beforeEach, describe, expect, it } from 'vitest' +import { render, waitFor } from '@testing-library/react' +import * as React from 'react' +import { QueryClient, useQueries } from '@tanstack/react-query' +import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client' +import type { + PersistedClient, + Persister, +} from '@tanstack/query-persist-client-core' +import type { QueryObserverResult } from '@tanstack/react-query' + +describe('useQueries with persist and memoized combine', () => { + const storage: { [key: string]: string } = {} + + beforeEach(() => { + Object.defineProperty(window, 'localStorage', { + value: { + getItem: (key: string) => storage[key] || null, + setItem: (key: string, value: string) => { + storage[key] = value + }, + removeItem: (key: string) => { + delete storage[key] + }, + clear: () => { + Object.keys(storage).forEach((key) => delete storage[key]) + }, + }, + writable: true, + }) + }) + + afterEach(() => { + Object.keys(storage).forEach((key) => delete storage[key]) + }) + + it('should update UI when combine is memoized with persist', async () => { + const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 30_000, + gcTime: 1000 * 60 * 60 * 24, + }, + }, + }) + + const persister: Persister = { + persistClient: (client: PersistedClient) => { + storage['REACT_QUERY_OFFLINE_CACHE'] = JSON.stringify(client) + return Promise.resolve() + }, + restoreClient: async () => { + const stored = storage['REACT_QUERY_OFFLINE_CACHE'] + if (stored) { + await new Promise((resolve) => setTimeout(resolve, 10)) + return JSON.parse(stored) as PersistedClient + } + return undefined + }, + removeClient: () => { + delete storage['REACT_QUERY_OFFLINE_CACHE'] + return Promise.resolve() + }, + } + + const persistedData: PersistedClient = { + timestamp: Date.now(), + buster: '', + clientState: { + mutations: [], + queries: [1, 2, 3].map((id) => ({ + queryHash: `["post",${id}]`, + queryKey: ['post', id], + state: { + data: id, + dataUpdateCount: 1, + dataUpdatedAt: Date.now() - 1000, + error: null, + errorUpdateCount: 0, + errorUpdatedAt: 0, + fetchFailureCount: 0, + fetchFailureReason: null, + fetchMeta: null, + isInvalidated: false, + status: 'success' as const, + fetchStatus: 'idle' as const, + }, + })), + }, + } + + storage['REACT_QUERY_OFFLINE_CACHE'] = JSON.stringify(persistedData) + + function TestComponent() { + const combinedQueries = useQueries({ + queries: [1, 2, 3].map((id) => ({ + queryKey: ['post', id], + queryFn: () => Promise.resolve(id), + staleTime: 30_000, + })), + combine: React.useCallback( + (results: Array>) => ({ + data: results.map((r) => r.data), + isPending: results.some((r) => r.isPending), + }), + [], + ), + }) + + return ( +
+
{String(combinedQueries.isPending)}
+
+ {combinedQueries.data.filter((d) => d !== undefined).join(',')} +
+
+ ) + } + + const { getByTestId } = render( + + + , + ) + + await waitFor(() => { + expect(getByTestId('pending').textContent).toBe('false') + expect(getByTestId('data').textContent).toBe('1,2,3') + }) + }) +}) diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index c840899e90..b475bdadb6 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -1210,7 +1210,7 @@ describe('useQueries', () => { const length = results.length - expect([4, 5]).toContain(results.length) + expect([4, 5, 6]).toContain(results.length) expect(results[results.length - 1]).toStrictEqual({ combined: true, @@ -1379,8 +1379,8 @@ describe('useQueries', () => { fireEvent.click(rendered.getByRole('button', { name: /rerender/i })) - // no increase because just a re-render - expect(spy).toHaveBeenCalledTimes(3) + // one extra call due to recomputing the combined result on rerender + expect(spy).toHaveBeenCalledTimes(4) value = 1 @@ -1391,8 +1391,8 @@ describe('useQueries', () => { rendered.getByText('data: true first result:1,second result:1'), ).toBeInTheDocument() - // two value changes = two re-renders - expect(spy).toHaveBeenCalledTimes(5) + // refetch with new values triggers: both pending -> one pending -> both resolved + expect(spy).toHaveBeenCalledTimes(7) }) it('should re-run combine if the functional reference changes', async () => { @@ -1658,4 +1658,87 @@ describe('useQueries', () => { ), ).toBeInTheDocument() }) + + it('should not re-run stable combine on unrelated re-render', async () => { + const key1 = queryKey() + const key2 = queryKey() + + const client = new QueryClient() + + const spy = vi.fn() + + function Page() { + const [unrelatedState, setUnrelatedState] = React.useState(0) + + const queries = useQueries( + { + queries: [ + { + queryKey: key1, + queryFn: async () => { + await sleep(10) + return 'first result' + }, + }, + { + queryKey: key2, + queryFn: async () => { + await sleep(20) + return 'second result' + }, + }, + ], + combine: React.useCallback((results: Array) => { + const result = { + combined: true, + res: results.map((res) => res.data).join(','), + } + spy(result) + return result + }, []), + }, + client, + ) + + return ( +
+
+ data: {String(queries.combined)} {queries.res} +
+
unrelated: {unrelatedState}
+ +
+ ) + } + + const rendered = render() + + await vi.advanceTimersByTimeAsync(21) + expect( + rendered.getByText('data: true first result,second result'), + ).toBeInTheDocument() + + // initial renders: both pending, one pending, both resolved + expect(spy).toHaveBeenCalledTimes(3) + + fireEvent.click(rendered.getByRole('button', { name: /increment/i })) + + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getByText('unrelated: 1')).toBeInTheDocument() + + // combine should NOT re-run for unrelated re-render with stable reference + expect(spy).toHaveBeenCalledTimes(3) + + fireEvent.click(rendered.getByRole('button', { name: /increment/i })) + + await vi.advanceTimersByTimeAsync(0) + + expect(rendered.getByText('unrelated: 2')).toBeInTheDocument() + + // still no extra calls to combine + expect(spy).toHaveBeenCalledTimes(3) + }) }) From 0a35234ce48b7f8e5c81999bd309ae9311981280 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 2 Sep 2025 12:17:18 +0000 Subject: [PATCH 378/432] release: v5.85.9 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index f39d3611b8..2b346d7afa 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 7492b812d4..d77010cd8b 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.7", + "@tanstack/query-async-storage-persister": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 019e65ddb6..f95d232a4d 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 49f39981c2..56792fc97b 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.7", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-devtools-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index c8f6851e78..87febc7e7e 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 3da1f6b3ff..a8a2855004 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index ec980828f3..b25f065c8a 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 7920993d07..83b014e58f 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index e8826b91d1..cf47ea7d87 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 03a3efe9c4..c2c141a410 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index ca48cfa5cf..56fd2eff40 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.7", + "@tanstack/angular-query-experimental": "^5.85.9", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index a19bce6419..216731bba5 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index c133fdb651..f75364562c 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 2b59c0f107..71d5baecb7 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index c7d479dd06..963a712a1b 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.7", - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", - "@tanstack/react-query-persist-client": "^5.85.8", + "@tanstack/query-async-storage-persister": "^5.85.9", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query-persist-client": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 97f54cf7ba..d37b1df179 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index e5a2960755..8c981f0aca 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index e85d6aa099..304ebd884e 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6c4a5bb55b..9b21b43705 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.7", - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", - "@tanstack/react-query-persist-client": "^5.85.8", + "@tanstack/query-async-storage-persister": "^5.85.9", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query-persist-client": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 6e9f90bdc4..e67acf5847 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 263c3d0521..6c02a79207 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 83ba2bdb8f..e7c33dd254 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 50b986efba..5d38baf23d 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", - "@tanstack/react-query-next-experimental": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query-next-experimental": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index d88ce384bd..788216fd0f 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 25d43659ec..96804b1b47 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.7", + "@tanstack/query-async-storage-persister": "^5.85.9", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", - "@tanstack/react-query-persist-client": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query-persist-client": "^5.85.9", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 02d08a9ad0..5e9211512b 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index c135370f41..285e8b3d7e 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 56d3df65e4..0e1cc7c742 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index f4a9fd50eb..fb2cc00f66 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 8ce657369c..da8b62caad 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 80e9206617..a40848281c 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 5f22047680..80150a7aa2 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index d45631fd84..99a87cf9d6 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index cfd2411041..cfa7cccd50 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index f182188f35..6ddf3a9f7f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 0b1c56b90d..677446b0dd 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 3fdee389a0..4583ae0526 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.8", - "@tanstack/react-query-devtools": "^5.85.8", + "@tanstack/react-query": "^5.85.9", + "@tanstack/react-query-devtools": "^5.85.9", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index d75b8aaef4..8e643d99d3 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.7", - "@tanstack/solid-query-devtools": "^5.85.7", + "@tanstack/solid-query": "^5.85.9", + "@tanstack/solid-query-devtools": "^5.85.9", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index df4da1550e..b2eacab46d 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.7", - "@tanstack/solid-query-devtools": "^5.85.7", + "@tanstack/solid-query": "^5.85.9", + "@tanstack/solid-query-devtools": "^5.85.9", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 20e6b28e81..943020aaf9 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.7", - "@tanstack/solid-query-devtools": "^5.85.7", + "@tanstack/solid-query": "^5.85.9", + "@tanstack/solid-query-devtools": "^5.85.9", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 67283c0cab..fb578379f0 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.7", - "@tanstack/solid-query-devtools": "^5.85.7", + "@tanstack/solid-query": "^5.85.9", + "@tanstack/solid-query-devtools": "^5.85.9", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 1ae3226043..077c238d7f 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.7", - "@tanstack/solid-query-devtools": "^5.85.7", + "@tanstack/solid-query": "^5.85.9", + "@tanstack/solid-query-devtools": "^5.85.9", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 68cbaecd69..83a8f83e19 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.7", - "@tanstack/solid-query-devtools": "^5.85.7", + "@tanstack/solid-query": "^5.85.9", + "@tanstack/solid-query-devtools": "^5.85.9", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index a8e9527581..47620be384 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7" + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 8dd8e3cc43..a5900c42c3 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.7", - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7", - "@tanstack/svelte-query-persist-client": "^5.85.7" + "@tanstack/query-async-storage-persister": "^5.85.9", + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9", + "@tanstack/svelte-query-persist-client": "^5.85.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index a7dda09b1d..3de0edb3a1 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7" + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index cd362c3284..f60857336a 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7" + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index f5ffe4d03e..b744609dde 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7" + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 6e0f3f6fd8..e7b18562a0 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7" + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 217be86130..5632d88708 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7" + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index b4b1f84380..d61c0f7be4 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.7", - "@tanstack/svelte-query-devtools": "^5.85.7" + "@tanstack/svelte-query": "^5.85.9", + "@tanstack/svelte-query-devtools": "^5.85.9" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index a3eb8876f1..ae3d1fc889 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.7", + "@tanstack/vue-query": "^5.85.9", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 1ab2bdfd58..c962c3f97d 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.7", + "@tanstack/vue-query": "^5.85.9", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 219ce1b87f..86d290e61d 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.7", - "@tanstack/vue-query-devtools": "^5.85.7", + "@tanstack/vue-query": "^5.85.9", + "@tanstack/vue-query-devtools": "^5.85.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index c56e83bd94..60b919632b 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.7", + "@tanstack/vue-query": "^5.85.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index c540c4878d..806472f0c4 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.7" + "@tanstack/vue-query": "^5.85.9" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 9058de2d81..5d04e676a7 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.7", - "@tanstack/query-persist-client-core": "^5.85.7", - "@tanstack/query-sync-storage-persister": "^5.85.7", - "@tanstack/vue-query": "^5.85.7", + "@tanstack/query-core": "^5.85.9", + "@tanstack/query-persist-client-core": "^5.85.9", + "@tanstack/query-sync-storage-persister": "^5.85.9", + "@tanstack/vue-query": "^5.85.9", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index f628d94ae4..e53f8f65e8 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.7", - "@tanstack/vue-query-devtools": "^5.85.7", + "@tanstack/vue-query": "^5.85.9", + "@tanstack/vue-query-devtools": "^5.85.9", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index a49684b82d..3c39ae27c7 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.7", + "version": "5.85.9", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 26a74d9fe4..875a78534c 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.7", + "version": "5.85.9", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index c522f7eeae..ee289fb862 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.7", + "version": "5.85.9", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index a0d52a9859..aa297fc1aa 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.7", + "version": "5.85.9", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index f5db08fd41..a968365eb2 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.7", + "version": "5.85.9", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 642533e13d..a189b11306 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.7", + "version": "5.85.9", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 7ab0b78d83..97f30941fb 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.7", + "version": "5.85.9", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 0c87ad66dc..61e0cf2343 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.8", + "version": "5.85.9", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index cc92f4282d..db6bf28bd8 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.8", + "version": "5.85.9", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 5b8f7f2d1b..c3e9a075ee 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.8", + "version": "5.85.9", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 91996de24e..17026153ff 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.8", + "version": "5.85.9", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 87fbc53436..5260a58328 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.7", + "version": "5.85.9", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 169ab15f77..a78db18ec3 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.7", + "version": "5.85.9", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 56afbbec8e..54e7b559e9 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.7", + "version": "5.85.9", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index dcd592dcf1..23005c811e 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.7", + "version": "5.85.9", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index d9c29c6e93..ac05032335 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.7", + "version": "5.85.9", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 8f3eab2068..f38b9a2031 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.7", + "version": "5.85.9", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 193fa5fcb7..43064f89b2 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.7", + "version": "5.85.9", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index bde2981d72..90e977f39a 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.7", + "version": "5.85.9", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From c75a994ca29aafd0f9ed0448edecfd3e00e0e2cd Mon Sep 17 00:00:00 2001 From: BennettLiam Date: Wed, 3 Sep 2025 02:31:45 +0100 Subject: [PATCH 379/432] Fix svelte optimistic updates example (#8005) Co-authored-by: Jonghyeon Ko --- .../svelte/optimistic-updates/src/routes/api/data/+server.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/svelte/optimistic-updates/src/routes/api/data/+server.ts b/examples/svelte/optimistic-updates/src/routes/api/data/+server.ts index 46bfe05612..c87641730c 100644 --- a/examples/svelte/optimistic-updates/src/routes/api/data/+server.ts +++ b/examples/svelte/optimistic-updates/src/routes/api/data/+server.ts @@ -19,8 +19,9 @@ export const POST: RequestHandler = async ({ request }) => { const { text } = await request.json() if (Math.random() > 0.7) { - json({ message: 'Could not add item!' }, { status: 500 }) + return json({ message: 'Could not add item!' }, { status: 500 }) } + const newTodo = { id: Math.random().toString(), text: text.toUpperCase() as string, From 7306474eee097ea31a06a8367b7d1bc6c95bcce1 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 3 Sep 2025 16:56:51 +0900 Subject: [PATCH 380/432] chore(tsconfig.json): simplify 'include' patterns by consolidating file extensions and directory paths (#9547) Co-authored-by: Jonghyeon Ko Co-authored-by: Dominik Dorfmeister --- .../tsconfig.json | 2 +- packages/angular-query-experimental/tsconfig.json | 9 +-------- packages/angular-query-persist-client/tsconfig.json | 8 +------- packages/eslint-plugin-query/tsconfig.json | 2 +- packages/query-async-storage-persister/tsconfig.json | 2 +- .../tsconfig.json | 8 +------- packages/query-codemods/tsconfig.json | 2 +- packages/query-core/tsconfig.json | 2 +- packages/query-devtools/tsconfig.json | 2 +- packages/query-persist-client-core/tsconfig.json | 2 +- packages/query-sync-storage-persister/tsconfig.json | 2 +- packages/query-test-utils/tsconfig.json | 2 +- packages/react-query-devtools/tsconfig.json | 8 +------- packages/react-query-next-experimental/tsconfig.json | 2 +- packages/react-query-persist-client/tsconfig.json | 8 +------- packages/react-query/tsconfig.json | 8 +------- packages/solid-query-devtools/tsconfig.json | 2 +- packages/solid-query-persist-client/tsconfig.json | 8 +------- packages/solid-query/tsconfig.json | 8 +------- packages/svelte-query-devtools/tsconfig.json | 9 +-------- packages/svelte-query-persist-client/tsconfig.json | 12 +----------- packages/svelte-query/tsconfig.json | 12 +----------- packages/vue-query-devtools/tsconfig.json | 8 +------- packages/vue-query/tsconfig.json | 8 +------- tsconfig.json | 2 +- 25 files changed, 25 insertions(+), 113 deletions(-) diff --git a/packages/angular-query-devtools-experimental/tsconfig.json b/packages/angular-query-devtools-experimental/tsconfig.json index 6e4428ba78..59bdb26584 100644 --- a/packages/angular-query-devtools-experimental/tsconfig.json +++ b/packages/angular-query-devtools-experimental/tsconfig.json @@ -9,7 +9,7 @@ "useDefineForClassFields": false, "target": "ES2022" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "*.config.*", "package.json"], "references": [ { "path": "../query-devtools" }, { "path": "../angular-query-experimental" } diff --git a/packages/angular-query-experimental/tsconfig.json b/packages/angular-query-experimental/tsconfig.json index 4f63891ef7..1aea53d869 100644 --- a/packages/angular-query-experimental/tsconfig.json +++ b/packages/angular-query-experimental/tsconfig.json @@ -7,13 +7,6 @@ "useDefineForClassFields": false, "target": "ES2022" }, - "include": [ - "src", - "scripts", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "scripts", "test-setup.ts", "*.config.*", "package.json"], "references": [{ "path": "../query-core" }, { "path": "../query-devtools" }] } diff --git a/packages/angular-query-persist-client/tsconfig.json b/packages/angular-query-persist-client/tsconfig.json index f1900ba9fe..63b0ee37e8 100644 --- a/packages/angular-query-persist-client/tsconfig.json +++ b/packages/angular-query-persist-client/tsconfig.json @@ -7,13 +7,7 @@ "useDefineForClassFields": false, "target": "ES2022" }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "test-setup.ts", "*.config.*", "package.json"], "references": [ { "path": "../angular-query-experimental" }, { "path": "../query-persist-client-core" } diff --git a/packages/eslint-plugin-query/tsconfig.json b/packages/eslint-plugin-query/tsconfig.json index 82f2da1e84..bcd89cd0c8 100644 --- a/packages/eslint-plugin-query/tsconfig.json +++ b/packages/eslint-plugin-query/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"] + "include": ["src", "*.config.*", "package.json"] } diff --git a/packages/query-async-storage-persister/tsconfig.json b/packages/query-async-storage-persister/tsconfig.json index 0fe32c971d..acf3142c14 100644 --- a/packages/query-async-storage-persister/tsconfig.json +++ b/packages/query-async-storage-persister/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "*.config.*", "package.json"], "references": [{ "path": "../query-persist-client-core" }] } diff --git a/packages/query-broadcast-client-experimental/tsconfig.json b/packages/query-broadcast-client-experimental/tsconfig.json index af7124f202..06504fba34 100644 --- a/packages/query-broadcast-client-experimental/tsconfig.json +++ b/packages/query-broadcast-client-experimental/tsconfig.json @@ -4,12 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "test-setup.ts", "*.config.*", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/query-codemods/tsconfig.json b/packages/query-codemods/tsconfig.json index 82f2da1e84..bcd89cd0c8 100644 --- a/packages/query-codemods/tsconfig.json +++ b/packages/query-codemods/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"] + "include": ["src", "*.config.*", "package.json"] } diff --git a/packages/query-core/tsconfig.json b/packages/query-core/tsconfig.json index 82f2da1e84..bcd89cd0c8 100644 --- a/packages/query-core/tsconfig.json +++ b/packages/query-core/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"] + "include": ["src", "*.config.*", "package.json"] } diff --git a/packages/query-devtools/tsconfig.json b/packages/query-devtools/tsconfig.json index bdcd7fcb62..29985608e2 100644 --- a/packages/query-devtools/tsconfig.json +++ b/packages/query-devtools/tsconfig.json @@ -6,6 +6,6 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "*.config.*", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/query-persist-client-core/tsconfig.json b/packages/query-persist-client-core/tsconfig.json index 1f819b2cde..ff4f60d51d 100644 --- a/packages/query-persist-client-core/tsconfig.json +++ b/packages/query-persist-client-core/tsconfig.json @@ -4,6 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "*.config.*", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/query-sync-storage-persister/tsconfig.json b/packages/query-sync-storage-persister/tsconfig.json index 9798ef4744..e7004c08d7 100644 --- a/packages/query-sync-storage-persister/tsconfig.json +++ b/packages/query-sync-storage-persister/tsconfig.json @@ -4,7 +4,7 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "*.config.*", "package.json"], "references": [ { "path": "../query-core" }, { "path": "../query-persist-client-core" } diff --git a/packages/query-test-utils/tsconfig.json b/packages/query-test-utils/tsconfig.json index bfbc7cdf91..bcd89cd0c8 100644 --- a/packages/query-test-utils/tsconfig.json +++ b/packages/query-test-utils/tsconfig.json @@ -4,5 +4,5 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": ["src", "*.config.js", "package.json"] + "include": ["src", "*.config.*", "package.json"] } diff --git a/packages/react-query-devtools/tsconfig.json b/packages/react-query-devtools/tsconfig.json index 46a2aea3c3..d8a2b59ae9 100644 --- a/packages/react-query-devtools/tsconfig.json +++ b/packages/react-query-devtools/tsconfig.json @@ -5,12 +5,6 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "test-setup.ts", "*.config.*", "package.json"], "references": [{ "path": "../query-devtools" }, { "path": "../react-query" }] } diff --git a/packages/react-query-next-experimental/tsconfig.json b/packages/react-query-next-experimental/tsconfig.json index f6b8b87eab..1e87386f2f 100644 --- a/packages/react-query-next-experimental/tsconfig.json +++ b/packages/react-query-next-experimental/tsconfig.json @@ -5,6 +5,6 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "*.config.*", "package.json"], "references": [{ "path": "../react-query" }] } diff --git a/packages/react-query-persist-client/tsconfig.json b/packages/react-query-persist-client/tsconfig.json index 44faec7d4c..af91bf735d 100644 --- a/packages/react-query-persist-client/tsconfig.json +++ b/packages/react-query-persist-client/tsconfig.json @@ -5,13 +5,7 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "test-setup.ts", "*.config.*", "package.json"], "references": [ { "path": "../query-persist-client-core" }, { "path": "../react-query" } diff --git a/packages/react-query/tsconfig.json b/packages/react-query/tsconfig.json index 660f6b7d90..68d785f0c0 100644 --- a/packages/react-query/tsconfig.json +++ b/packages/react-query/tsconfig.json @@ -5,11 +5,5 @@ "rootDir": ".", "jsx": "react-jsx" }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ] + "include": ["src", "test-setup.ts", "*.config.*", "package.json"] } diff --git a/packages/solid-query-devtools/tsconfig.json b/packages/solid-query-devtools/tsconfig.json index afa19812a1..19cb99564d 100644 --- a/packages/solid-query-devtools/tsconfig.json +++ b/packages/solid-query-devtools/tsconfig.json @@ -6,6 +6,6 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": ["src", "*.config.js", "*.config.ts", "package.json"], + "include": ["src", "*.config.*", "package.json"], "references": [{ "path": "../query-devtools" }, { "path": "../solid-query" }] } diff --git a/packages/solid-query-persist-client/tsconfig.json b/packages/solid-query-persist-client/tsconfig.json index 46d148ec2f..7ce26ae4c3 100644 --- a/packages/solid-query-persist-client/tsconfig.json +++ b/packages/solid-query-persist-client/tsconfig.json @@ -6,13 +6,7 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "test-setup.ts", "*.config.*", "package.json"], "references": [ { "path": "../query-persist-client-core" }, { "path": "../solid-query" } diff --git a/packages/solid-query/tsconfig.json b/packages/solid-query/tsconfig.json index 842ae18cbf..a0238fb35d 100644 --- a/packages/solid-query/tsconfig.json +++ b/packages/solid-query/tsconfig.json @@ -6,12 +6,6 @@ "jsx": "preserve", "jsxImportSource": "solid-js" }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "test-setup.ts", "*.config.*", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/svelte-query-devtools/tsconfig.json b/packages/svelte-query-devtools/tsconfig.json index 4a0b41d137..773fd3d525 100644 --- a/packages/svelte-query-devtools/tsconfig.json +++ b/packages/svelte-query-devtools/tsconfig.json @@ -4,13 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": [ - "src/**/*.js", - "src/**/*.ts", - "src/**/*.svelte", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "*.config.*", "package.json"], "references": [{ "path": "../query-devtools" }, { "path": "../svelte-query" }] } diff --git a/packages/svelte-query-persist-client/tsconfig.json b/packages/svelte-query-persist-client/tsconfig.json index a4582758b7..20b4a12c42 100644 --- a/packages/svelte-query-persist-client/tsconfig.json +++ b/packages/svelte-query-persist-client/tsconfig.json @@ -4,17 +4,7 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": [ - "src/**/*.js", - "src/**/*.ts", - "src/**/*.svelte", - "tests/**/*.js", - "tests/**/*.ts", - "tests/**/*.svelte", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "tests", "*.config.*", "package.json"], "references": [ { "path": "../query-persist-client-core" }, { "path": "../svelte-query" } diff --git a/packages/svelte-query/tsconfig.json b/packages/svelte-query/tsconfig.json index 2392520338..4c9e052f88 100644 --- a/packages/svelte-query/tsconfig.json +++ b/packages/svelte-query/tsconfig.json @@ -4,16 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": [ - "src/**/*.js", - "src/**/*.ts", - "src/**/*.svelte", - "tests/**/*.js", - "tests/**/*.ts", - "tests/**/*.svelte", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "tests", "*.config.*", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/packages/vue-query-devtools/tsconfig.json b/packages/vue-query-devtools/tsconfig.json index ec69cf7f7e..7a3ba21d32 100644 --- a/packages/vue-query-devtools/tsconfig.json +++ b/packages/vue-query-devtools/tsconfig.json @@ -4,12 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": [ - "src/**/*.ts", - "src/**/*.vue", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "*.config.*", "package.json"], "references": [{ "path": "../vue-query" }, { "path": "../query-devtools" }] } diff --git a/packages/vue-query/tsconfig.json b/packages/vue-query/tsconfig.json index af7124f202..06504fba34 100644 --- a/packages/vue-query/tsconfig.json +++ b/packages/vue-query/tsconfig.json @@ -4,12 +4,6 @@ "outDir": "./dist-ts", "rootDir": "." }, - "include": [ - "src", - "test-setup.ts", - "*.config.js", - "*.config.ts", - "package.json" - ], + "include": ["src", "test-setup.ts", "*.config.*", "package.json"], "references": [{ "path": "../query-core" }] } diff --git a/tsconfig.json b/tsconfig.json index 7dc5ecfedd..e467403071 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,5 +28,5 @@ "strict": true, "target": "ES2020" }, - "include": ["eslint.config.js", "prettier.config.js"] + "include": ["*.config.*"] } From 43049c5534973bda14e1249d146d8ee7b68456ef Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 3 Sep 2025 17:35:56 +0900 Subject: [PATCH 381/432] test(react-query/useMutationState): clarify assertions and improve code formatting (#9611) --- .../src/__tests__/useMutationState.test.tsx | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/react-query/src/__tests__/useMutationState.test.tsx b/packages/react-query/src/__tests__/useMutationState.test.tsx index 186821de59..e80b9c10f9 100644 --- a/packages/react-query/src/__tests__/useMutationState.test.tsx +++ b/packages/react-query/src/__tests__/useMutationState.test.tsx @@ -20,7 +20,9 @@ describe('useIsMutating', () => { function IsMutating() { const isMutating = useIsMutating() + isMutatingArray.push(isMutating) + return null } @@ -52,6 +54,7 @@ describe('useIsMutating', () => { } const rendered = renderWithClient(queryClient, ) + fireEvent.click(rendered.getByRole('button', { name: /mutate1/i })) await vi.advanceTimersByTimeAsync(10) fireEvent.click(rendered.getByRole('button', { name: /mutate2/i })) @@ -62,12 +65,14 @@ describe('useIsMutating', () => { // [ +0, 1, 2, 1, +0 ] // our batching strategy might yield different results - await vi.advanceTimersByTimeAsync(40) + await vi.advanceTimersByTimeAsync(41) expect(isMutatingArray[0]).toEqual(0) expect(isMutatingArray[1]).toEqual(1) expect(isMutatingArray[2]).toEqual(2) - await vi.advanceTimersByTimeAsync(1) - expect(isMutatingArray[isMutatingArray.length - 1]).toEqual(0) + expect(isMutatingArray[3]).toEqual(1) + expect(isMutatingArray[4]).toEqual(0) + + expect(isMutatingArray).toEqual([0, 1, 2, 1, 0]) }) it('should filter correctly by mutationKey', async () => { @@ -99,6 +104,7 @@ describe('useIsMutating', () => { } renderWithClient(queryClient, ) + await vi.advanceTimersByTimeAsync(101) expect(isMutatingArray).toEqual([0, 1, 0]) }) @@ -135,6 +141,7 @@ describe('useIsMutating', () => { } renderWithClient(queryClient, ) + await vi.advanceTimersByTimeAsync(101) expect(isMutatingArray).toEqual([0, 1, 0]) }) @@ -163,7 +170,7 @@ describe('useIsMutating', () => { ) } - const rendered = render() + const rendered = render() await vi.advanceTimersByTimeAsync(0) expect(rendered.getByText('mutating: 1')).toBeInTheDocument() @@ -220,12 +227,11 @@ describe('useMutationState', () => { const rendered = renderWithClient(queryClient, ) - rendered.getByText('data: null') + expect(rendered.getByText('data: null')).toBeInTheDocument() fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) - await vi.advanceTimersByTimeAsync(151) - rendered.getByText('data: data1') + expect(rendered.getByText('data: data1')).toBeInTheDocument() expect(variables).toEqual([[], [1], []]) }) From 8f24580fdadfb25e1a64b4f3e4133691ddd5632d Mon Sep 17 00:00:00 2001 From: marco gobbi Date: Thu, 4 Sep 2025 11:03:41 +0200 Subject: [PATCH 382/432] feat(query-core): add custom reducer support to streamedQuery (#9532) * feat(query-core): add custom reducer support to streamedQuery Replace maxChunks parameter with flexible reducer function that delegates data aggregation to consumer code. This provides full control over how streamed chunks are combined into the final data structure. Add support for custom placeholderData that works seamlessly with the reducer function, allowing initialization of complex data types beyond simple arrays. https://github.com/TanStack/query/discussions/9065 BREAKING CHANGE: The maxChunks parameter has been removed from streamedQuery. Use a custom reducer function to control data aggregation behavior instead. * ci: apply automated fixes * feat(query-core): require initialValue when using custom reducer in streamedQuery Add type safety by making initialValue mandatory when providing a custom reducer function. This prevents runtime errors and ensures proper data initialization for custom data structures beyond simple arrays. Use conditional types to enforce the relationship between reducer and initialValue parameters, maintaining backward compatibility for simple array-based streaming while requiring explicit initialization for custom reducers. BREAKING CHANGE: When using a custom reducer function with streamedQuery, the initialValue parameter is now required and must be provided. * feat(query-core): require initialValue when using custom reducer in streamedQuery Add type safety by making initialValue mandatory when providing a custom reducer function. This prevents runtime errors and ensures proper data initialization for custom data structures beyond simple arrays. Use conditional types to enforce the relationship between reducer and initialValue parameters, maintaining backward compatibility for simple array-based streaming while requiring explicit initialization for custom reducers. BREAKING CHANGE: When using a custom reducer function with streamedQuery, the initialValue parameter is now required and must be provided. * feat(query-core): require initialValue when using custom reducer in streamedQuery Add type safety by making initialValue mandatory when providing a custom reducer function. This prevents runtime errors and ensures proper data initialization for custom data structures beyond simple arrays. Use conditional types to enforce the relationship between reducer and initialValue parameters, maintaining backward compatibility for simple array-based streaming while requiring explicit initialization for custom reducers. BREAKING CHANGE: When using a custom reducer function with streamedQuery, the initialValue parameter is now required and must be provided. * removed personal vscode workspace file * updated documentation * fix(docs): clarify reducer function description in streamedQuery documentation * ci: apply automated fixes * fix(tests): Code Review :: update streamedQuery tests to use correct initialValue type --------- Co-authored-by: gobbimar Co-authored-by: Dominik Dorfmeister Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- docs/reference/streamedQuery.md | 14 ++- .../src/__tests__/streamedQuery.test.tsx | 107 +++++------------- packages/query-core/src/streamedQuery.ts | 66 +++++++---- 3 files changed, 84 insertions(+), 103 deletions(-) diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index c02cc907ba..d6ea7963af 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -33,9 +33,13 @@ const query = queryOptions({ - When set to `'reset'`, the query will erase all data and go back into `pending` state. - When set to `'append'`, data will be appended to existing data. - When set to `'replace'`, all data will be written to the cache once the stream ends. -- `maxChunks?: number` +- `reducer?: (accumulator: TData, chunk: TQueryFnData) => TData` - Optional - - The maximum number of chunks to keep in the cache. - - Defaults to `undefined`, meaning all chunks will be kept. - - If `undefined` or `0`, the number of chunks is unlimited. - - If the number of chunks exceeds this number, the oldest chunk will be removed. + - Reduces streamed chunks (`TQueryFnData`) into the final data shape (`TData`). + - Default: appends each chunk to the end of the accumulator when `TData` is an array. + - If `TData` is not an array, you must provide a custom `reducer`. +- `initialValue?: TData = TQueryFnData` + - Optional + - Defines the initial data to be used while the first chunk is being fetched. + - It is mandatory when custom `reducer` is provided. + - Defaults to an empty array. diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index 6eccf4536c..d542935fea 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -391,13 +391,18 @@ describe('streamedQuery', () => { }) }) - test('should support maxChunks', async () => { + test('should support custom reducer', async () => { const key = queryKey() + const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(3), - maxChunks: 2, + queryFn: () => createAsyncNumberGenerator(2), + reducer: (acc, chunk) => ({ + ...acc, + [chunk]: true, + }), + initialValue: {} as Record, }), }) @@ -409,41 +414,34 @@ describe('streamedQuery', () => { data: undefined, }) - await vi.advanceTimersByTimeAsync(50) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: [0], - }) - - await vi.advanceTimersByTimeAsync(50) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: [0, 1], - }) - - await vi.advanceTimersByTimeAsync(50) + await vi.advanceTimersByTimeAsync(100) expect(observer.getCurrentResult()).toMatchObject({ status: 'success', fetchStatus: 'idle', - data: [1, 2], + data: { + 0: true, + 1: true, + }, }) unsubscribe() }) - test('maxChunks with append refetch', async () => { + test('should support custom reducer with initialValue', async () => { const key = queryKey() const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(3), - maxChunks: 2, - refetchMode: 'append', + queryFn: () => createAsyncNumberGenerator(2), + reducer: (acc, chunk) => ({ + ...acc, + [chunk]: true, + }), + initialValue: { + 10: true, + 11: true, + } as Record, }), }) @@ -455,62 +453,17 @@ describe('streamedQuery', () => { data: undefined, }) - await vi.advanceTimersByTimeAsync(50) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: [0], - }) - - await vi.advanceTimersByTimeAsync(50) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: [0, 1], - }) - - await vi.advanceTimersByTimeAsync(50) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'idle', - data: [1, 2], - }) - - void observer.refetch() - - await vi.advanceTimersByTimeAsync(10) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: [1, 2], - }) - - await vi.advanceTimersByTimeAsync(40) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: [2, 0], - }) - - await vi.advanceTimersByTimeAsync(50) - - expect(observer.getCurrentResult()).toMatchObject({ - status: 'success', - fetchStatus: 'fetching', - data: [0, 1], - }) - - await vi.advanceTimersByTimeAsync(50) + await vi.advanceTimersByTimeAsync(100) expect(observer.getCurrentResult()).toMatchObject({ status: 'success', fetchStatus: 'idle', - data: [1, 2], + data: { + 10: true, + 11: true, + 0: true, + 1: true, + }, }) unsubscribe() diff --git a/packages/query-core/src/streamedQuery.ts b/packages/query-core/src/streamedQuery.ts index 03c36bf23a..d50063c0be 100644 --- a/packages/query-core/src/streamedQuery.ts +++ b/packages/query-core/src/streamedQuery.ts @@ -1,6 +1,34 @@ import { addToEnd } from './utils' import type { QueryFunction, QueryFunctionContext, QueryKey } from './types' +type BaseStreamedQueryParams = { + queryFn: ( + context: QueryFunctionContext, + ) => AsyncIterable | Promise> + refetchMode?: 'append' | 'reset' | 'replace' +} + +type SimpleStreamedQueryParams< + TQueryFnData, + TQueryKey extends QueryKey, +> = BaseStreamedQueryParams & { + reducer?: never + initialValue?: never +} + +type ReducibleStreamedQueryParams< + TQueryFnData, + TData, + TQueryKey extends QueryKey, +> = BaseStreamedQueryParams & { + reducer: (acc: TData, chunk: TQueryFnData) => TData + initialValue: TData +} + +type StreamedQueryParams = + | SimpleStreamedQueryParams + | ReducibleStreamedQueryParams + /** * This is a helper function to create a query function that streams data from an AsyncIterable. * Data will be an Array of all the chunks received. @@ -11,31 +39,29 @@ import type { QueryFunction, QueryFunctionContext, QueryKey } from './types' * Defaults to `'reset'`, erases all data and puts the query back into `pending` state. * Set to `'append'` to append new data to the existing data. * Set to `'replace'` to write all data to the cache once the stream ends. - * @param maxChunks - The maximum number of chunks to keep in the cache. - * Defaults to `undefined`, meaning all chunks will be kept. - * If `undefined` or `0`, the number of chunks is unlimited. - * If the number of chunks exceeds this number, the oldest chunk will be removed. + * @param reducer - A function to reduce the streamed chunks into the final data. + * Defaults to a function that appends chunks to the end of the array. + * @param initialValue - Initial value to be used while the first chunk is being fetched. */ export function streamedQuery< TQueryFnData = unknown, + TData = Array, TQueryKey extends QueryKey = QueryKey, >({ queryFn, refetchMode = 'reset', - maxChunks, -}: { - queryFn: ( - context: QueryFunctionContext, - ) => AsyncIterable | Promise> - refetchMode?: 'append' | 'reset' | 'replace' - maxChunks?: number -}): QueryFunction, TQueryKey> { + reducer = (items, chunk) => + addToEnd(items as Array, chunk) as TData, + initialValue = [] as TData, +}: StreamedQueryParams): QueryFunction< + TData, + TQueryKey +> { return async (context) => { const query = context.client .getQueryCache() .find({ queryKey: context.queryKey, exact: true }) const isRefetch = !!query && query.state.data !== undefined - if (isRefetch && refetchMode === 'reset') { query.setState({ status: 'pending', @@ -45,7 +71,8 @@ export function streamedQuery< }) } - let result: Array = [] + let result = initialValue + const stream = await queryFn(context) for await (const chunk of stream) { @@ -55,19 +82,16 @@ export function streamedQuery< // don't append to the cache directly when replace-refetching if (!isRefetch || refetchMode !== 'replace') { - context.client.setQueryData>( - context.queryKey, - (prev = []) => { - return addToEnd(prev, chunk, maxChunks) - }, + context.client.setQueryData(context.queryKey, (prev) => + reducer(prev === undefined ? initialValue : prev, chunk), ) } - result = addToEnd(result, chunk, maxChunks) + result = reducer(result, chunk) } // finalize result: replace-refetching needs to write to the cache if (isRefetch && refetchMode === 'replace' && !context.signal.aborted) { - context.client.setQueryData>(context.queryKey, result) + context.client.setQueryData(context.queryKey, result) } return context.client.getQueryData(context.queryKey)! From b25412a9e30db40a662e1b44c039fb741b8fcd52 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 4 Sep 2025 11:19:15 +0200 Subject: [PATCH 383/432] ref: rename queryFn to streamFn in streamedQuery (#9606) * ref: rename queryFn to streamFn in streamedQuery this avoids the weirdly double-nested queryFn naming * chore: docs * fix: docs --- docs/reference/streamedQuery.md | 8 ++++---- examples/react/chat/src/chat.ts | 2 +- .../src/__tests__/streamedQuery.test.tsx | 18 +++++++++--------- packages/query-core/src/streamedQuery.ts | 6 +++--- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/reference/streamedQuery.md b/docs/reference/streamedQuery.md index d6ea7963af..8c70475ba3 100644 --- a/docs/reference/streamedQuery.md +++ b/docs/reference/streamedQuery.md @@ -13,7 +13,7 @@ import { experimental_streamedQuery as streamedQuery } from '@tanstack/react-que const query = queryOptions({ queryKey: ['data'], queryFn: streamedQuery({ - queryFn: fetchDataInChunks, + streamFn: fetchDataInChunks, }), }) ``` @@ -22,11 +22,11 @@ const query = queryOptions({ **Options** -- `queryFn: (context: QueryFunctionContext) => Promise>` +- `streamFn: (context: QueryFunctionContext) => Promise>` - **Required** - - The function that returns a Promise of an AsyncIterable of data to stream in. + - The function that returns a Promise of an AsyncIterable with data to stream in. - Receives a [QueryFunctionContext](../../framework/react/guides/query-functions.md#queryfunctioncontext) -- `refetchMode?: 'append' | 'reset' | 'replace` +- `refetchMode?: 'append' | 'reset' | 'replace'` - Optional - Defines how refetches are handled. - Defaults to `'reset'` diff --git a/examples/react/chat/src/chat.ts b/examples/react/chat/src/chat.ts index e806ed7cc0..5f938a7611 100644 --- a/examples/react/chat/src/chat.ts +++ b/examples/react/chat/src/chat.ts @@ -27,7 +27,7 @@ export const chatQueryOptions = (question: string) => queryOptions({ queryKey: ['chat', question], queryFn: streamedQuery({ - queryFn: () => chatAnswer(question), + streamFn: () => chatAnswer(question), }), staleTime: Infinity, }) diff --git a/packages/query-core/src/__tests__/streamedQuery.test.tsx b/packages/query-core/src/__tests__/streamedQuery.test.tsx index d542935fea..31a937f2a8 100644 --- a/packages/query-core/src/__tests__/streamedQuery.test.tsx +++ b/packages/query-core/src/__tests__/streamedQuery.test.tsx @@ -34,7 +34,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(3), + streamFn: () => createAsyncNumberGenerator(3), }), }) @@ -78,7 +78,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: async function* () { + streamFn: async function* () { for await (const num of createAsyncNumberGenerator(3)) { yield [num, num] as const } @@ -133,7 +133,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(2), + streamFn: () => createAsyncNumberGenerator(2), }), }) @@ -187,7 +187,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(2), + streamFn: () => createAsyncNumberGenerator(2), refetchMode: 'append', }), }) @@ -243,7 +243,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(2, offset), + streamFn: () => createAsyncNumberGenerator(2, offset), refetchMode: 'replace', }), }) @@ -300,7 +300,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(3), + streamFn: () => createAsyncNumberGenerator(3), refetchMode: 'append', }), }) @@ -355,7 +355,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: (context) => { + streamFn: (context) => { // just consume the signal // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition const numbers = context.signal ? 3 : 0 @@ -397,7 +397,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(2), + streamFn: () => createAsyncNumberGenerator(2), reducer: (acc, chunk) => ({ ...acc, [chunk]: true, @@ -433,7 +433,7 @@ describe('streamedQuery', () => { const observer = new QueryObserver(queryClient, { queryKey: key, queryFn: streamedQuery({ - queryFn: () => createAsyncNumberGenerator(2), + streamFn: () => createAsyncNumberGenerator(2), reducer: (acc, chunk) => ({ ...acc, [chunk]: true, diff --git a/packages/query-core/src/streamedQuery.ts b/packages/query-core/src/streamedQuery.ts index d50063c0be..f4a60ee091 100644 --- a/packages/query-core/src/streamedQuery.ts +++ b/packages/query-core/src/streamedQuery.ts @@ -2,7 +2,7 @@ import { addToEnd } from './utils' import type { QueryFunction, QueryFunctionContext, QueryKey } from './types' type BaseStreamedQueryParams = { - queryFn: ( + streamFn: ( context: QueryFunctionContext, ) => AsyncIterable | Promise> refetchMode?: 'append' | 'reset' | 'replace' @@ -48,7 +48,7 @@ export function streamedQuery< TData = Array, TQueryKey extends QueryKey = QueryKey, >({ - queryFn, + streamFn, refetchMode = 'reset', reducer = (items, chunk) => addToEnd(items as Array, chunk) as TData, @@ -73,7 +73,7 @@ export function streamedQuery< let result = initialValue - const stream = await queryFn(context) + const stream = await streamFn(context) for await (const chunk of stream) { if (context.signal.aborted) { From 1599bb4742649432a14a1b233a40cd15662fc4e1 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Thu, 4 Sep 2025 09:27:33 +0000 Subject: [PATCH 384/432] release: v5.86.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +++--- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 10 +++++----- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 10 +++++----- .../react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 6 +++--- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- .../angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/eslint-plugin-query/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- .../query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 79 files changed, 139 insertions(+), 139 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 2b346d7afa..2c833b3546 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index d77010cd8b..5c4f3e3f81 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.85.9", + "@tanstack/query-async-storage-persister": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index f95d232a4d..b129372be1 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 56792fc97b..fbf49b902f 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.85.9", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-devtools-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 87febc7e7e..85a6ee7e65 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index a8a2855004..f703cfad4c 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index b25f065c8a..8216f0dee8 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 83b014e58f..5226d02ee5 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index cf47ea7d87..19dba14362 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index c2c141a410..c88d91b51f 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 56fd2eff40..e09c979096 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.85.9", + "@tanstack/angular-query-experimental": "^5.86.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 216731bba5..cec67a2fcc 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.83.1", + "@tanstack/eslint-plugin-query": "^5.86.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index f75364562c..e3af600a30 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 71d5baecb7..c1b524fdb3 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 963a712a1b..3d745c9c29 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.9", - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", - "@tanstack/react-query-persist-client": "^5.85.9", + "@tanstack/query-async-storage-persister": "^5.86.0", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query-persist-client": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.83.1", + "@tanstack/eslint-plugin-query": "^5.86.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index d37b1df179..57fccf07b4 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 8c981f0aca..35af04e872 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 304ebd884e..d037d42f87 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 9b21b43705..7c221144eb 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.9", - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", - "@tanstack/react-query-persist-client": "^5.85.9", + "@tanstack/query-async-storage-persister": "^5.86.0", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query-persist-client": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.83.1", + "@tanstack/eslint-plugin-query": "^5.86.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index e67acf5847..276e6bf984 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 6c02a79207..410a5c26d1 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index e7c33dd254..270450d285 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 5d38baf23d..9cd23240f9 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", - "@tanstack/react-query-next-experimental": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query-next-experimental": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 788216fd0f..551aa4ce60 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 96804b1b47..698b5e8c51 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.9", + "@tanstack/query-async-storage-persister": "^5.86.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", - "@tanstack/react-query-persist-client": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query-persist-client": "^5.86.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 5e9211512b..4b67a8bcd2 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 285e8b3d7e..a17c51f157 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 0e1cc7c742..c71bd16da0 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index fb2cc00f66..20b3dd162d 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index da8b62caad..6e1dbd5220 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index a40848281c..1117c67613 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 80150a7aa2..8d717ef5ef 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 99a87cf9d6..bf7c5fa4b0 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index cfa7cccd50..1b492b775c 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 6ddf3a9f7f..58f42f855a 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 677446b0dd..c5ba3c36f9 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 4583ae0526..34cbc22998 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.85.9", - "@tanstack/react-query-devtools": "^5.85.9", + "@tanstack/react-query": "^5.86.0", + "@tanstack/react-query-devtools": "^5.86.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 8e643d99d3..cf47083e59 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.85.9", - "@tanstack/solid-query-devtools": "^5.85.9", + "@tanstack/solid-query": "^5.86.0", + "@tanstack/solid-query-devtools": "^5.86.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index b2eacab46d..bfa6aef4d0 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.9", - "@tanstack/solid-query-devtools": "^5.85.9", + "@tanstack/solid-query": "^5.86.0", + "@tanstack/solid-query-devtools": "^5.86.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 943020aaf9..ff7dd95c06 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.9", - "@tanstack/solid-query-devtools": "^5.85.9", + "@tanstack/solid-query": "^5.86.0", + "@tanstack/solid-query-devtools": "^5.86.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index fb578379f0..5d865443c1 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.9", - "@tanstack/solid-query-devtools": "^5.85.9", + "@tanstack/solid-query": "^5.86.0", + "@tanstack/solid-query-devtools": "^5.86.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 077c238d7f..b6806e1cca 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.85.9", - "@tanstack/solid-query-devtools": "^5.85.9", + "@tanstack/solid-query": "^5.86.0", + "@tanstack/solid-query-devtools": "^5.86.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.83.1", + "@tanstack/eslint-plugin-query": "^5.86.0", "typescript": "5.8.3", "vite": "^6.2.4", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 83a8f83e19..c50c1da735 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.85.9", - "@tanstack/solid-query-devtools": "^5.85.9", + "@tanstack/solid-query": "^5.86.0", + "@tanstack/solid-query-devtools": "^5.86.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 47620be384..6d3ef1e076 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9" + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index a5900c42c3..4dd8d7058b 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.85.9", - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9", - "@tanstack/svelte-query-persist-client": "^5.85.9" + "@tanstack/query-async-storage-persister": "^5.86.0", + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0", + "@tanstack/svelte-query-persist-client": "^5.86.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 3de0edb3a1..2c70e08faa 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9" + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index f60857336a..2ec2a9324c 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9" + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index b744609dde..b25c175c5d 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9" + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index e7b18562a0..868b6977b1 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9" + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 5632d88708..76d31c11f1 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9" + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index d61c0f7be4..b47d135170 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.85.9", - "@tanstack/svelte-query-devtools": "^5.85.9" + "@tanstack/svelte-query": "^5.86.0", + "@tanstack/svelte-query-devtools": "^5.86.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index ae3d1fc889..13bab816a6 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.9", + "@tanstack/vue-query": "^5.86.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index c962c3f97d..50f0234ca1 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.9", + "@tanstack/vue-query": "^5.86.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 86d290e61d..af900868f3 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.9", - "@tanstack/vue-query-devtools": "^5.85.9", + "@tanstack/vue-query": "^5.86.0", + "@tanstack/vue-query-devtools": "^5.86.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 60b919632b..bd48123e7e 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.9", + "@tanstack/vue-query": "^5.86.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 806472f0c4..0141004163 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.85.9" + "@tanstack/vue-query": "^5.86.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 5d04e676a7..90011c43f3 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.85.9", - "@tanstack/query-persist-client-core": "^5.85.9", - "@tanstack/query-sync-storage-persister": "^5.85.9", - "@tanstack/vue-query": "^5.85.9", + "@tanstack/query-core": "^5.86.0", + "@tanstack/query-persist-client-core": "^5.86.0", + "@tanstack/query-sync-storage-persister": "^5.86.0", + "@tanstack/vue-query": "^5.86.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index e53f8f65e8..5f37456107 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.85.9", - "@tanstack/vue-query-devtools": "^5.85.9", + "@tanstack/vue-query": "^5.86.0", + "@tanstack/vue-query-devtools": "^5.86.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 3c39ae27c7..9d4a242813 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.85.9", + "version": "5.86.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 875a78534c..9889bef6b4 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.85.9", + "version": "5.86.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 4bdb332636..38ab20c56d 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.83.1", + "version": "5.86.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index ee289fb862..1952770270 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.85.9", + "version": "5.86.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index aa297fc1aa..8210c42f8d 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.85.9", + "version": "5.86.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a968365eb2..6bc83604d5 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.85.9", + "version": "5.86.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 0dafb49a80..20c572749b 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.84.0", + "version": "5.86.0", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index a189b11306..9f2881dd8a 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.85.9", + "version": "5.86.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 97f30941fb..376a2e210a 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.85.9", + "version": "5.86.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 61e0cf2343..a84516be83 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.85.9", + "version": "5.86.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index db6bf28bd8..37954cc0a6 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.85.9", + "version": "5.86.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index c3e9a075ee..3592bd8835 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.85.9", + "version": "5.86.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 17026153ff..faad014b13 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.85.9", + "version": "5.86.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 5260a58328..c45b5099d4 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.85.9", + "version": "5.86.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index a78db18ec3..5e93f0c324 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.85.9", + "version": "5.86.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 54e7b559e9..0b0eac1a3e 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.85.9", + "version": "5.86.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 23005c811e..ff62c3a30f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.85.9", + "version": "5.86.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index ac05032335..1dbf73da18 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.85.9", + "version": "5.86.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index f38b9a2031..c8efb28b12 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.85.9", + "version": "5.86.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 43064f89b2..2295c6dba9 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.85.9", + "version": "5.86.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 90e977f39a..ba1843a30a 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.85.9", + "version": "5.86.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 2283633684c90e1b22cb690c30949415fe5ddb52 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Thu, 4 Sep 2025 14:05:23 +0200 Subject: [PATCH 385/432] docs(angular-query): update Angular Zoneless doc (#9616) --- .../angular-httpclient-and-other-data-fetching-clients.md | 2 +- docs/framework/angular/zoneless.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/framework/angular/angular-httpclient-and-other-data-fetching-clients.md b/docs/framework/angular/angular-httpclient-and-other-data-fetching-clients.md index 115e697feb..0784526cb5 100644 --- a/docs/framework/angular/angular-httpclient-and-other-data-fetching-clients.md +++ b/docs/framework/angular/angular-httpclient-and-other-data-fetching-clients.md @@ -11,7 +11,7 @@ Because TanStack Query's fetching mechanisms are agnostically built on Promises, - Mock responses in unit tests using [provideHttpClientTesting](https://angular.dev/guide/http/testing). - [Interceptors](https://angular.dev/guide/http/interceptors) can be used for a wide range of functionality including adding authentication headers, performing logging, etc. While some data fetching libraries have their own interceptor system, `HttpClient` interceptors are integrated with Angular's dependency injection system. -- `HttpClient` automatically informs [`PendingTasks`](https://angular.dev/api/core/PendingTasks#), which enables Angular to be aware of pending requests. Unit tests and SSR can use the resulting application _stableness_ information to wait for pending requests to finish. This makes unit testing much easier for [Zoneless](https://angular.dev/guide/experimental/zoneless) applications. +- `HttpClient` automatically informs [`PendingTasks`](https://angular.dev/api/core/PendingTasks#), which enables Angular to be aware of pending requests. Unit tests and SSR can use the resulting application _stableness_ information to wait for pending requests to finish. This makes unit testing much easier for [Zoneless](https://angular.dev/guide/zoneless) applications. - When using SSR, `HttpClient` will [cache requests](https://angular.dev/guide/ssr#caching-data-when-using-HttpClient) performed on the server. This will prevent unneeded requests on the client. `HttpClient` SSR caching works out of the box. TanStack Query has its own hydration functionality which may be more powerful but requires some setup. Which one fits your needs best depends on your use case. ### Using observables in `queryFn` diff --git a/docs/framework/angular/zoneless.md b/docs/framework/angular/zoneless.md index fce6156c02..1f8ddaa065 100644 --- a/docs/framework/angular/zoneless.md +++ b/docs/framework/angular/zoneless.md @@ -5,7 +5,6 @@ title: Zoneless Angular Because the Angular adapter for TanStack Query is built on signals, it fully supports Zoneless! -Among Zoneless benefits are improved performance and debugging experience. For details see the [Angular documentation](https://angular.dev/guide/experimental/zoneless). +Among Zoneless benefits are improved performance and debugging experience. For details see the [Angular documentation](https://angular.dev/guide/zoneless). -> Keep in mind that the API for Angular Zoneless is currently experimental and can change in Angular patch versions. > Besides Zoneless, ZoneJS change detection is also fully supported. From a0b96db9375d98ec42009d50b73e97822c72487c Mon Sep 17 00:00:00 2001 From: Jake Teton-Landis Date: Fri, 5 Sep 2025 07:37:09 -0400 Subject: [PATCH 386/432] feat(query-core): add timeoutManager to allow changing setTimeout/setInterval (#9612) * add timeoutManager class * add additional types & export functions * convert all setTimeout/setInterval to managed versions * tweaks * add claude-generated tests * tests * revert changes in query-async-storage-persister: no path to import query-core * re-export more types * console.warn -> non-production console.error * query-async-storage-persister: use query-core managedSetTimeout * pdate pnpm-lock for new dependency edge * sleep: always managedSetTimeout * remove managed* functions, call method directly * remove runtime coercion and accept unsafe any within TimeoutManager class * cleanup; fix test after changes * name is __TEST_ONLY__ * notifyManager: default scheduler === systemSetTimeoutZero * Improve TimeoutCallback comment since ai was confused * remove unnecessary timeoutManager-related exports * prettier-ify index.ts (seems my editor messed with it already this pr?) * continue to export defaultTimeoutProvider for tests * oops missing import * fix: export systemSetTimeoutZero from core * ref: use notifyManager.schedule in createPersister because it needs to work with whatever scheduleFn we have set there * ref: move provider check behind env check * docs * doc tweaks * doc tweaks * docs: reference timeoutManager in discussion of 24 day setTimout limit * Apply suggestion from @TkDodo * Apply suggestion from @TkDodo * chore: fix broken links * docs: syntax fix --------- Co-authored-by: Dominik Dorfmeister --- docs/config.json | 4 + .../react/plugins/persistQueryClient.md | 2 +- docs/framework/react/reference/useMutation.md | 2 +- docs/framework/react/reference/useQuery.md | 2 +- docs/framework/solid/reference/useQuery.md | 4 +- docs/reference/timeoutManager.md | 119 +++++++++++++++ .../package.json | 1 + .../src/asyncThrottle.ts | 5 +- .../src/__tests__/timeoutManager.test.tsx | 135 ++++++++++++++++++ packages/query-core/src/index.ts | 59 ++++---- packages/query-core/src/notifyManager.ts | 4 +- packages/query-core/src/queryObserver.ts | 14 +- packages/query-core/src/removable.ts | 8 +- packages/query-core/src/timeoutManager.ts | 135 ++++++++++++++++++ packages/query-core/src/utils.ts | 3 +- .../src/createPersister.ts | 15 +- .../query-sync-storage-persister/src/index.ts | 6 +- pnpm-lock.yaml | 4 + 18 files changed, 471 insertions(+), 51 deletions(-) create mode 100644 docs/reference/timeoutManager.md create mode 100644 packages/query-core/src/__tests__/timeoutManager.test.tsx create mode 100644 packages/query-core/src/timeoutManager.ts diff --git a/docs/config.json b/docs/config.json index 5f1bc1913e..31182f860b 100644 --- a/docs/config.json +++ b/docs/config.json @@ -757,6 +757,10 @@ { "label": "notifyManager", "to": "reference/notifyManager" + }, + { + "label": "timeoutManager", + "to": "reference/timeoutManager" } ], "frameworks": [ diff --git a/docs/framework/react/plugins/persistQueryClient.md b/docs/framework/react/plugins/persistQueryClient.md index c93c99a532..98ccf76cf5 100644 --- a/docs/framework/react/plugins/persistQueryClient.md +++ b/docs/framework/react/plugins/persistQueryClient.md @@ -21,7 +21,7 @@ It should be set as the same value or higher than persistQueryClient's `maxAge` You can also pass it `Infinity` to disable garbage collection behavior entirely. -Due to a Javascript limitation, the maximum allowed `gcTime` is about 24 days (see [more](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value)). +Due to a JavaScript limitation, the maximum allowed `gcTime` is about [24 days](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value), although it is possible to work around this limit using [timeoutManager.setTimeoutProvider](../../../../reference/timeoutManager.md#timeoutmanagersettimeoutprovider). ```tsx const queryClient = new QueryClient({ diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md index e3800b0025..76d88900df 100644 --- a/docs/framework/react/reference/useMutation.md +++ b/docs/framework/react/reference/useMutation.md @@ -55,7 +55,7 @@ mutate(variables, { - `gcTime: number | Infinity` - The time in milliseconds that unused/inactive cache data remains in memory. When a mutation's cache becomes unused or inactive, that cache data will be garbage collected after this duration. When different cache times are specified, the longest one will be used. - If set to `Infinity`, will disable garbage collection - - Note: the maximum allowed time is about 24 days. See [more](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value). + - Note: the maximum allowed time is about [24 days](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value), although it is possible to work around this limit using [timeoutManager.setTimeoutProvider](../../../../reference/timeoutManager.md#timeoutmanagersettimeoutprovider). - `mutationKey: unknown[]` - Optional - A mutation key can be set to inherit defaults set with `queryClient.setMutationDefaults`. diff --git a/docs/framework/react/reference/useQuery.md b/docs/framework/react/reference/useQuery.md index 2eda63b605..54be8ac837 100644 --- a/docs/framework/react/reference/useQuery.md +++ b/docs/framework/react/reference/useQuery.md @@ -101,7 +101,7 @@ const { - `gcTime: number | Infinity` - Defaults to `5 * 60 * 1000` (5 minutes) or `Infinity` during SSR - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration. When different garbage collection times are specified, the longest one will be used. - - Note: the maximum allowed time is about 24 days. See [more](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value). + - Note: the maximum allowed time is about [24 days](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value), although it is possible to work around this limit using [timeoutManager.setTimeoutProvider](../../../../reference/timeoutManager.md#timeoutmanagersettimeoutprovider). - If set to `Infinity`, will disable garbage collection - `queryKeyHashFn: (queryKey: QueryKey) => string` - Optional diff --git a/docs/framework/solid/reference/useQuery.md b/docs/framework/solid/reference/useQuery.md index f36ec906b8..e3c042618a 100644 --- a/docs/framework/solid/reference/useQuery.md +++ b/docs/framework/solid/reference/useQuery.md @@ -223,9 +223,9 @@ function App() { - ##### `gcTime: number | Infinity` - Defaults to `5 * 60 * 1000` (5 minutes) or `Infinity` during SSR - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration. When different garbage collection times are specified, the longest one will be used. - - Note: the maximum allowed time is about 24 days. See [more](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value). + - Note: the maximum allowed time is about [24 days](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value), although it is possible to work around this limit using [timeoutManager.setTimeoutProvider](../../../../reference/timeoutManager.md#timeoutmanagersettimeoutprovider). - If set to `Infinity`, will disable garbage collection - - ##### `networkMode: 'online' | 'always' | 'offlineFirst` + - ##### `networkMode: 'online' | 'always' | 'offlineFirst'` - optional - defaults to `'online'` - see [Network Mode](../../guides/network-mode.md) for more information. diff --git a/docs/reference/timeoutManager.md b/docs/reference/timeoutManager.md new file mode 100644 index 0000000000..4ce710484d --- /dev/null +++ b/docs/reference/timeoutManager.md @@ -0,0 +1,119 @@ +--- +id: TimeoutManager +title: TimeoutManager +--- + +The `TimeoutManager` handles `setTimeout` and `setInterval` timers in TanStack Query. + +TanStack Query uses timers to implement features like query `staleTime` and `gcTime`, as well as retries, throttling, and debouncing. + +By default, TimeoutManager uses the global `setTimeout` and `setInterval`, but it can be configured to use custom implementations instead. + +Its available methods are: + +- [`timeoutManager.setTimeoutProvider`](#timeoutmanagersettimeoutprovider) + - [`TimeoutProvider`](#timeoutprovider) +- [`timeoutManager.setTimeout`](#timeoutmanagersettimeout) +- [`timeoutManager.clearTimeout`](#timeoutmanagercleartimeout) +- [`timeoutManager.setInterval`](#timeoutmanagersetinterval) +- [`timeoutManager.clearInterval`](#timeoutmanagerclearinterval) + +## `timeoutManager.setTimeoutProvider` + +`setTimeoutProvider` can be used to set a custom implementation of the `setTimeout`, `clearTimeout`, `setInterval`, `clearInterval` functions, called a `TimeoutProvider`. + +This may be useful if you notice event loop performance issues with thousands of queries. A custom TimeoutProvider could also support timer delays longer than the global `setTimeout` maximum delay value of about [24 days](https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout#maximum_delay_value). + +It is important to call `setTimeoutProvider` before creating a QueryClient or queries, so that the same provider is used consistently for all timers in the application, since different TimeoutProviders cannot cancel each others' timers. + +```tsx +import { timeoutManager, QueryClient } from '@tanstack/react-query' +import { CustomTimeoutProvider } from './CustomTimeoutProvider' + +timeoutManager.setTimeoutProvider(new CustomTimeoutProvider()) + +export const queryClient = new QueryClient() +``` + +### `TimeoutProvider` + +Timers are very performance sensitive. Short term timers (such as those with delays less than 5 seconds) tend to be latency sensitive, where long-term timers may benefit more from [timer coalescing](https://en.wikipedia.org/wiki/Timer_coalescing) - batching timers with similar deadlines together - using a data structure like a [hierarchical time wheel](https://www.npmjs.com/package/timer-wheel). + +The `TimeoutProvider` type requires that implementations handle timer ID objects that can be converted to `number` via [Symbol.toPrimitive][toPrimitive] because runtimes like NodeJS return [objects][nodejs-timeout] from their global `setTimeout` and `setInterval` functions. TimeoutProvider implementations are free to coerce timer IDs to number internally, or to return their own custom object type that implements `{ [Symbol.toPrimitive]: () => number }`. + +[nodejs-timeout]: https://nodejs.org/api/timers.html#class-timeout +[toPrimitive]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive + +```tsx +type ManagedTimerId = number | { [Symbol.toPrimitive]: () => number } + +type TimeoutProvider = { + readonly setTimeout: (callback: TimeoutCallback, delay: number) => TTimerId + readonly clearTimeout: (timeoutId: TTimerId | undefined) => void + + readonly setInterval: (callback: TimeoutCallback, delay: number) => TTimerId + readonly clearInterval: (intervalId: TTimerId | undefined) => void +} +``` + +## `timeoutManager.setTimeout` + +`setTimeout(callback, delayMs)` schedules a callback to run after approximately `delay` milliseconds, like the global [setTimeout function](https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout).The callback can be canceled with `timeoutManager.clearTimeout`. + +It returns a timer ID, which may be a number or an object that can be coerced to a number via [Symbol.toPrimitive][toPrimitive]. + +```tsx +import { timeoutManager } from '@tanstack/react-query' + +const timeoutId = timeoutManager.setTimeout( + () => console.log('ran at:', new Date()), + 1000, +) + +const timeoutIdNumber: number = Number(timeoutId) +``` + +## `timeoutManager.clearTimeout` + +`clearTimeout(timerId)` cancels a timeout callback scheduled with `setTimeout`, like the global [clearTimeout function](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearTimeout). It should be called with a timer ID returned by `timeoutManager.setTimeout`. + +```tsx +import { timeoutManager } from '@tanstack/react-query' + +const timeoutId = timeoutManager.setTimeout( + () => console.log('ran at:', new Date()), + 1000, +) + +timeoutManager.clearTimeout(timeoutId) +``` + +## `timeoutManager.setInterval` + +`setInterval(callback, intervalMs)` schedules a callback to be called approximately every `intervalMs`, like the global [setInterval function](https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval). + +Like `setTimeout`, it returns a timer ID, which may be a number or an object that can be coerced to a number via [Symbol.toPrimitive](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive). + +```tsx +import { timeoutManager } from '@tanstack/react-query' + +const intervalId = timeoutManager.setInterval( + () => console.log('ran at:', new Date()), + 1000, +) +``` + +## `timeoutManager.clearInterval` + +`clearInterval(intervalId)` can be used to cancel an interval, like the global [clearInterval function](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearInterval). It should be called with an interval ID returned by `timeoutManager.setInterval`. + +```tsx +import { timeoutManager } from '@tanstack/react-query' + +const intervalId = timeoutManager.setInterval( + () => console.log('ran at:', new Date()), + 1000, +) + +timeoutManager.clearInterval(intervalId) +``` diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 1952770270..6f80ab820c 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -59,6 +59,7 @@ "!src/__tests__" ], "dependencies": { + "@tanstack/query-core": "workspace:*", "@tanstack/query-persist-client-core": "workspace:*" }, "devDependencies": { diff --git a/packages/query-async-storage-persister/src/asyncThrottle.ts b/packages/query-async-storage-persister/src/asyncThrottle.ts index f37737c8b5..6983b16a3a 100644 --- a/packages/query-async-storage-persister/src/asyncThrottle.ts +++ b/packages/query-async-storage-persister/src/asyncThrottle.ts @@ -1,3 +1,4 @@ +import { timeoutManager } from '@tanstack/query-core' import { noop } from './utils' interface AsyncThrottleOptions { @@ -21,11 +22,11 @@ export function asyncThrottle>( if (isScheduled) return isScheduled = true while (isExecuting) { - await new Promise((done) => setTimeout(done, interval)) + await new Promise((done) => timeoutManager.setTimeout(done, interval)) } while (Date.now() < nextExecutionTime) { await new Promise((done) => - setTimeout(done, nextExecutionTime - Date.now()), + timeoutManager.setTimeout(done, nextExecutionTime - Date.now()), ) } isScheduled = false diff --git a/packages/query-core/src/__tests__/timeoutManager.test.tsx b/packages/query-core/src/__tests__/timeoutManager.test.tsx new file mode 100644 index 0000000000..218e45cd97 --- /dev/null +++ b/packages/query-core/src/__tests__/timeoutManager.test.tsx @@ -0,0 +1,135 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { + TimeoutManager, + defaultTimeoutProvider, + systemSetTimeoutZero, + timeoutManager, +} from '../timeoutManager' + +describe('timeoutManager', () => { + function createMockProvider(name: string = 'custom') { + return { + __TEST_ONLY__name: name, + setTimeout: vi.fn(() => 123), + clearTimeout: vi.fn(), + setInterval: vi.fn(() => 456), + clearInterval: vi.fn(), + } + } + + let consoleErrorSpy: ReturnType + + beforeEach(() => { + consoleErrorSpy = vi.spyOn(console, 'error') + }) + + afterEach(() => { + vi.restoreAllMocks() + }) + + describe('TimeoutManager', () => { + let manager: TimeoutManager + + beforeEach(() => { + manager = new TimeoutManager() + }) + + it('by default proxies calls to globalThis setTimeout/clearTimeout', () => { + const setTimeoutSpy = vi.spyOn(globalThis, 'setTimeout') + const clearTimeoutSpy = vi.spyOn(globalThis, 'clearTimeout') + const setIntervalSpy = vi.spyOn(globalThis, 'setInterval') + const clearIntervalSpy = vi.spyOn(globalThis, 'clearInterval') + + const callback = vi.fn() + const timeoutId = manager.setTimeout(callback, 100) + expect(setTimeoutSpy).toHaveBeenCalledWith(callback, 100) + clearTimeout(Number(timeoutId)) + + manager.clearTimeout(200) + expect(clearTimeoutSpy).toHaveBeenCalledWith(200) + + const intervalId = manager.setInterval(callback, 300) + expect(setIntervalSpy).toHaveBeenCalledWith(callback, 300) + clearInterval(Number(intervalId)) + + manager.clearInterval(400) + expect(clearIntervalSpy).toHaveBeenCalledWith(400) + }) + + describe('setTimeoutProvider', () => { + it('proxies calls to the configured timeout provider', () => { + const customProvider = createMockProvider() + manager.setTimeoutProvider(customProvider) + + const callback = vi.fn() + + manager.setTimeout(callback, 100) + expect(customProvider.setTimeout).toHaveBeenCalledWith(callback, 100) + + manager.clearTimeout(999) + expect(customProvider.clearTimeout).toHaveBeenCalledWith(999) + + manager.setInterval(callback, 200) + expect(customProvider.setInterval).toHaveBeenCalledWith(callback, 200) + + manager.clearInterval(888) + expect(customProvider.clearInterval).toHaveBeenCalledWith(888) + }) + + it('warns when switching providers after making call', () => { + // 1. switching before making any calls does not warn + const customProvider = createMockProvider() + manager.setTimeoutProvider(customProvider) + expect(consoleErrorSpy).not.toHaveBeenCalled() + + // Make a call. The next switch should warn + manager.setTimeout(vi.fn(), 100) + + // 2. switching after making a call should warn + const customProvider2 = createMockProvider('custom2') + manager.setTimeoutProvider(customProvider2) + expect(consoleErrorSpy).toHaveBeenCalledWith( + expect.stringMatching( + /\[timeoutManager\]: Switching .* might result in unexpected behavior\..*/, + ), + expect.anything(), + ) + + // 3. Switching again with no intermediate calls should not warn + vi.mocked(consoleErrorSpy).mockClear() + const customProvider3 = createMockProvider('custom3') + manager.setTimeoutProvider(customProvider3) + expect(consoleErrorSpy).not.toHaveBeenCalled() + }) + }) + }) + + describe('globalThis timeoutManager instance', () => { + it('should be an instance of TimeoutManager', () => { + expect(timeoutManager).toBeInstanceOf(TimeoutManager) + }) + }) + + describe('exported functions', () => { + let provider: ReturnType + beforeEach(() => { + provider = createMockProvider() + timeoutManager.setTimeoutProvider(provider) + }) + afterEach(() => { + timeoutManager.setTimeoutProvider(defaultTimeoutProvider) + }) + + describe('systemSetTimeoutZero', () => { + it('should use globalThis setTimeout with 0 delay', () => { + const spy = vi.spyOn(globalThis, 'setTimeout') + + const callback = vi.fn() + systemSetTimeoutZero(callback) + + expect(spy).toHaveBeenCalledWith(callback, 0) + clearTimeout(spy.mock.results[0]?.value) + }) + }) + }) +}) diff --git a/packages/query-core/src/index.ts b/packages/query-core/src/index.ts index 889c8b02b7..a7763cf648 100644 --- a/packages/query-core/src/index.ts +++ b/packages/query-core/src/index.ts @@ -1,50 +1,55 @@ /* istanbul ignore file */ -export { CancelledError } from './retryer' -export { QueryCache } from './queryCache' -export type { QueryCacheNotifyEvent } from './queryCache' -export { QueryClient } from './queryClient' -export { QueryObserver } from './queryObserver' -export { QueriesObserver } from './queriesObserver' +export { focusManager } from './focusManager' +export { + defaultShouldDehydrateMutation, + defaultShouldDehydrateQuery, + dehydrate, + hydrate, +} from './hydration' export { InfiniteQueryObserver } from './infiniteQueryObserver' export { MutationCache } from './mutationCache' export type { MutationCacheNotifyEvent } from './mutationCache' export { MutationObserver } from './mutationObserver' -export { notifyManager, defaultScheduler } from './notifyManager' -export { focusManager } from './focusManager' +export { defaultScheduler, notifyManager } from './notifyManager' export { onlineManager } from './onlineManager' +export { QueriesObserver } from './queriesObserver' +export { QueryCache } from './queryCache' +export type { QueryCacheNotifyEvent } from './queryCache' +export { QueryClient } from './queryClient' +export { QueryObserver } from './queryObserver' +export { CancelledError, isCancelledError } from './retryer' +export { + timeoutManager, + type ManagedTimerId, + type TimeoutCallback, + type TimeoutProvider, +} from './timeoutManager' export { hashKey, - partialMatchKey, - replaceEqualDeep, isServer, - matchQuery, - matchMutation, keepPreviousData, - skipToken, + matchMutation, + matchQuery, noop, + partialMatchKey, + replaceEqualDeep, shouldThrowError, + skipToken, } from './utils' -export type { MutationFilters, QueryFilters, Updater, SkipToken } from './utils' -export { isCancelledError } from './retryer' -export { - dehydrate, - hydrate, - defaultShouldDehydrateQuery, - defaultShouldDehydrateMutation, -} from './hydration' +export type { MutationFilters, QueryFilters, SkipToken, Updater } from './utils' export { streamedQuery as experimental_streamedQuery } from './streamedQuery' // Types -export * from './types' -export type { QueryState } from './query' -export { Query } from './query' -export type { MutationState } from './mutation' -export { Mutation } from './mutation' export type { - DehydrateOptions, DehydratedState, + DehydrateOptions, HydrateOptions, } from './hydration' +export { Mutation } from './mutation' +export type { MutationState } from './mutation' export type { QueriesObserverOptions } from './queriesObserver' +export { Query } from './query' +export type { QueryState } from './query' +export * from './types' diff --git a/packages/query-core/src/notifyManager.ts b/packages/query-core/src/notifyManager.ts index 63187ed52a..f4deb73194 100644 --- a/packages/query-core/src/notifyManager.ts +++ b/packages/query-core/src/notifyManager.ts @@ -1,5 +1,7 @@ // TYPES +import { systemSetTimeoutZero } from './timeoutManager' + type NotifyCallback = () => void type NotifyFunction = (callback: () => void) => void @@ -10,7 +12,7 @@ type BatchCallsCallback> = (...args: T) => void type ScheduleFunction = (callback: () => void) => void -export const defaultScheduler: ScheduleFunction = (cb) => setTimeout(cb, 0) +export const defaultScheduler: ScheduleFunction = systemSetTimeoutZero export function createNotifyManager() { let queue: Array = [] diff --git a/packages/query-core/src/queryObserver.ts b/packages/query-core/src/queryObserver.ts index 1137503694..1fe6aae676 100644 --- a/packages/query-core/src/queryObserver.ts +++ b/packages/query-core/src/queryObserver.ts @@ -13,6 +13,8 @@ import { shallowEqualObjects, timeUntilStale, } from './utils' +import { timeoutManager } from './timeoutManager' +import type { ManagedTimerId } from './timeoutManager' import type { FetchOptions, Query, QueryState } from './query' import type { QueryClient } from './queryClient' import type { PendingThenable, Thenable } from './thenable' @@ -62,8 +64,8 @@ export class QueryObserver< // This property keeps track of the last query with defined data. // It will be used to pass the previous data and query to the placeholder function between renders. #lastQueryWithDefinedData?: Query - #staleTimeoutId?: ReturnType - #refetchIntervalId?: ReturnType + #staleTimeoutId?: ManagedTimerId + #refetchIntervalId?: ManagedTimerId #currentRefetchInterval?: number | false #trackedProps = new Set() @@ -365,7 +367,7 @@ export class QueryObserver< // To mitigate this issue we always add 1 ms to the timeout. const timeout = time + 1 - this.#staleTimeoutId = setTimeout(() => { + this.#staleTimeoutId = timeoutManager.setTimeout(() => { if (!this.#currentResult.isStale) { this.updateResult() } @@ -394,7 +396,7 @@ export class QueryObserver< return } - this.#refetchIntervalId = setInterval(() => { + this.#refetchIntervalId = timeoutManager.setInterval(() => { if ( this.options.refetchIntervalInBackground || focusManager.isFocused() @@ -411,14 +413,14 @@ export class QueryObserver< #clearStaleTimeout(): void { if (this.#staleTimeoutId) { - clearTimeout(this.#staleTimeoutId) + timeoutManager.clearTimeout(this.#staleTimeoutId) this.#staleTimeoutId = undefined } } #clearRefetchInterval(): void { if (this.#refetchIntervalId) { - clearInterval(this.#refetchIntervalId) + timeoutManager.clearInterval(this.#refetchIntervalId) this.#refetchIntervalId = undefined } } diff --git a/packages/query-core/src/removable.ts b/packages/query-core/src/removable.ts index bf353266ca..8642ab36ec 100644 --- a/packages/query-core/src/removable.ts +++ b/packages/query-core/src/removable.ts @@ -1,8 +1,10 @@ +import { timeoutManager } from './timeoutManager' import { isServer, isValidTimeout } from './utils' +import type { ManagedTimerId } from './timeoutManager' export abstract class Removable { gcTime!: number - #gcTimeout?: ReturnType + #gcTimeout?: ManagedTimerId destroy(): void { this.clearGcTimeout() @@ -12,7 +14,7 @@ export abstract class Removable { this.clearGcTimeout() if (isValidTimeout(this.gcTime)) { - this.#gcTimeout = setTimeout(() => { + this.#gcTimeout = timeoutManager.setTimeout(() => { this.optionalRemove() }, this.gcTime) } @@ -28,7 +30,7 @@ export abstract class Removable { protected clearGcTimeout() { if (this.#gcTimeout) { - clearTimeout(this.#gcTimeout) + timeoutManager.clearTimeout(this.#gcTimeout) this.#gcTimeout = undefined } } diff --git a/packages/query-core/src/timeoutManager.ts b/packages/query-core/src/timeoutManager.ts new file mode 100644 index 0000000000..97f0870eea --- /dev/null +++ b/packages/query-core/src/timeoutManager.ts @@ -0,0 +1,135 @@ +/** + * {@link TimeoutManager} does not support passing arguments to the callback. + * + * `(_: void)` is the argument type inferred by TypeScript's default typings for + * `setTimeout(cb, number)`. + * If we don't accept a single void argument, then + * `new Promise(resolve => timeoutManager.setTimeout(resolve, N))` is a type error. + */ +export type TimeoutCallback = (_: void) => void + +/** + * Wrapping `setTimeout` is awkward from a typing perspective because platform + * typings may extend the return type of `setTimeout`. For example, NodeJS + * typings add `NodeJS.Timeout`; but a non-default `timeoutManager` may not be + * able to return such a type. + */ +export type ManagedTimerId = number | { [Symbol.toPrimitive]: () => number } + +/** + * Backend for timer functions. + */ +export type TimeoutProvider = + { + readonly setTimeout: (callback: TimeoutCallback, delay: number) => TTimerId + readonly clearTimeout: (timeoutId: TTimerId | undefined) => void + + readonly setInterval: (callback: TimeoutCallback, delay: number) => TTimerId + readonly clearInterval: (intervalId: TTimerId | undefined) => void + } + +export const defaultTimeoutProvider: TimeoutProvider< + ReturnType +> = { + // We need the wrapper function syntax below instead of direct references to + // global setTimeout etc. + // + // BAD: `setTimeout: setTimeout` + // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)` + // + // If we use direct references here, then anything that wants to spy on or + // replace the global setTimeout (like tests) won't work since we'll already + // have a hard reference to the original implementation at the time when this + // file was imported. + setTimeout: (callback, delay) => setTimeout(callback, delay), + clearTimeout: (timeoutId) => clearTimeout(timeoutId), + + setInterval: (callback, delay) => setInterval(callback, delay), + clearInterval: (intervalId) => clearInterval(intervalId), +} + +/** + * Allows customization of how timeouts are created. + * + * @tanstack/query-core makes liberal use of timeouts to implement `staleTime` + * and `gcTime`. The default TimeoutManager provider uses the platform's global + * `setTimeout` implementation, which is known to have scalability issues with + * thousands of timeouts on the event loop. + * + * If you hit this limitation, consider providing a custom TimeoutProvider that + * coalesces timeouts. + */ +export class TimeoutManager implements Omit { + // We cannot have TimeoutManager as we must instantiate it with a concrete + // type at app boot; and if we leave that type, then any new timer provider + // would need to support ReturnType, which is infeasible. + // + // We settle for type safety for the TimeoutProvider type, and accept that + // this class is unsafe internally to allow for extension. + #provider: TimeoutProvider = defaultTimeoutProvider + #providerCalled = false + + setTimeoutProvider( + provider: TimeoutProvider, + ): void { + if (process.env.NODE_ENV !== 'production') { + if (this.#providerCalled && provider !== this.#provider) { + // After changing providers, `clearTimeout` will not work as expected for + // timeouts from the previous provider. + // + // Since they may allocate the same timeout ID, clearTimeout may cancel an + // arbitrary different timeout, or unexpected no-op. + // + // We could protect against this by mixing the timeout ID bits + // deterministically with some per-provider bits. + // + // We could internally queue `setTimeout` calls to `TimeoutManager` until + // some API call to set the initial provider. + console.error( + `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`, + { previous: this.#provider, provider }, + ) + } + } + + this.#provider = provider + if (process.env.NODE_ENV !== 'production') { + this.#providerCalled = false + } + } + + setTimeout(callback: TimeoutCallback, delay: number): ManagedTimerId { + if (process.env.NODE_ENV !== 'production') { + this.#providerCalled = true + } + return this.#provider.setTimeout(callback, delay) + } + + clearTimeout(timeoutId: ManagedTimerId | undefined): void { + this.#provider.clearTimeout(timeoutId) + } + + setInterval(callback: TimeoutCallback, delay: number): ManagedTimerId { + if (process.env.NODE_ENV !== 'production') { + this.#providerCalled = true + } + return this.#provider.setInterval(callback, delay) + } + + clearInterval(intervalId: ManagedTimerId | undefined): void { + this.#provider.clearInterval(intervalId) + } +} + +export const timeoutManager = new TimeoutManager() + +/** + * In many cases code wants to delay to the next event loop tick; this is not + * mediated by {@link timeoutManager}. + * + * This function is provided to make auditing the `tanstack/query-core` for + * incorrect use of system `setTimeout` easier. + */ +export function systemSetTimeoutZero(callback: TimeoutCallback): void { + setTimeout(callback, 0) +} diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index fc3a47a210..b4da471a9b 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -1,3 +1,4 @@ +import { timeoutManager } from './timeoutManager' import type { DefaultError, Enabled, @@ -361,7 +362,7 @@ function hasObjectPrototype(o: any): boolean { export function sleep(timeout: number): Promise { return new Promise((resolve) => { - setTimeout(resolve, timeout) + timeoutManager.setTimeout(resolve, timeout) }) } diff --git a/packages/query-persist-client-core/src/createPersister.ts b/packages/query-persist-client-core/src/createPersister.ts index 63e835dec6..f3912b6da2 100644 --- a/packages/query-persist-client-core/src/createPersister.ts +++ b/packages/query-persist-client-core/src/createPersister.ts @@ -1,4 +1,9 @@ -import { hashKey, matchQuery, partialMatchKey } from '@tanstack/query-core' +import { + hashKey, + matchQuery, + notifyManager, + partialMatchKey, +} from '@tanstack/query-core' import type { Query, QueryClient, @@ -125,7 +130,9 @@ export function experimental_createQueryPersister({ } else { if (afterRestoreMacroTask) { // Just after restoring we want to get fresh data from the server if it's stale - setTimeout(() => afterRestoreMacroTask(persistedQuery), 0) + notifyManager.schedule(() => + afterRestoreMacroTask(persistedQuery), + ) } // We must resolve the promise here, as otherwise we will have `loading` state in the app until `queryFn` resolves return persistedQuery.state.data as T @@ -213,9 +220,9 @@ export function experimental_createQueryPersister({ if (matchesFilter && storage != null) { // Persist if we have storage defined, we use timeout to get proper state to be persisted - setTimeout(() => { + notifyManager.schedule(() => { persistQuery(query) - }, 0) + }) } return Promise.resolve(queryFnResult) diff --git a/packages/query-sync-storage-persister/src/index.ts b/packages/query-sync-storage-persister/src/index.ts index ee25ca7376..a9b79f539d 100644 --- a/packages/query-sync-storage-persister/src/index.ts +++ b/packages/query-sync-storage-persister/src/index.ts @@ -1,4 +1,6 @@ +import { timeoutManager } from '@tanstack/query-core' import { noop } from './utils' +import type { ManagedTimerId } from '@tanstack/query-core' import type { PersistRetryer, PersistedClient, @@ -100,12 +102,12 @@ function throttle>( func: (...args: TArgs) => any, wait = 100, ) { - let timer: ReturnType | null = null + let timer: ManagedTimerId | null = null let params: TArgs return function (...args: TArgs) { params = args if (timer === null) { - timer = setTimeout(() => { + timer = timeoutManager.setTimeout(() => { func(...params) timer = null }, wait) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12e5e74a78..3939ea1d6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2373,6 +2373,9 @@ importers: packages/query-async-storage-persister: dependencies: + '@tanstack/query-core': + specifier: workspace:* + version: link:../query-core '@tanstack/query-persist-client-core': specifier: workspace:* version: link:../query-persist-client-core @@ -12884,6 +12887,7 @@ packages: react-native-vector-icons@10.1.0: resolution: {integrity: sha512-fdQjCHIdoXmRoTZ5gvN1FmT4sGLQ2wmQiNZHKJQUYnE2tkIwjGnxNch+6Nd4lHAACvMWO7LOzBNot2u/zlOmkw==} + deprecated: react-native-vector-icons package has moved to a new model of per-icon-family packages. See the https://github.com/oblador/react-native-vector-icons/blob/master/MIGRATION.md on how to migrate hasBin: true react-native-web@0.19.13: From b43af57cd2ccc5b6c3d96c4168e23d1fd811213a Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 5 Sep 2025 11:55:19 +0000 Subject: [PATCH 387/432] release: v5.87.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 2c833b3546..734792a38c 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 5c4f3e3f81..8e34c6920d 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.86.0", + "@tanstack/query-async-storage-persister": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index b129372be1..f3235e2d23 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index fbf49b902f..9f5f3605d3 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.86.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-devtools-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 85a6ee7e65..f906688c45 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index f703cfad4c..0ed5e0ada2 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 8216f0dee8..188742b850 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 5226d02ee5..7a68dff095 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 19dba14362..7e2cf80b61 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index c88d91b51f..e301fdb1c6 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index e09c979096..94ba386430 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.86.0", + "@tanstack/angular-query-experimental": "^5.87.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index cec67a2fcc..33c9e331b4 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index e3af600a30..9b2d9a81e2 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index c1b524fdb3..7a1fd6812d 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 3d745c9c29..3a78590e09 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.86.0", - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", - "@tanstack/react-query-persist-client": "^5.86.0", + "@tanstack/query-async-storage-persister": "^5.87.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query-persist-client": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 57fccf07b4..44dc584c81 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 35af04e872..18700aeb23 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index d037d42f87..4542174b89 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 7c221144eb..9dc12ad137 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.86.0", - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", - "@tanstack/react-query-persist-client": "^5.86.0", + "@tanstack/query-async-storage-persister": "^5.87.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query-persist-client": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 276e6bf984..4dd481ac13 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 410a5c26d1..ec41123326 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 270450d285..fb81dbef40 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 9cd23240f9..4524318831 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", - "@tanstack/react-query-next-experimental": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query-next-experimental": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 551aa4ce60..d60e32015f 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 698b5e8c51..e96b82d86a 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.86.0", + "@tanstack/query-async-storage-persister": "^5.87.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", - "@tanstack/react-query-persist-client": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query-persist-client": "^5.87.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 4b67a8bcd2..2eec9a8316 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index a17c51f157..e2b83eaf53 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index c71bd16da0..a081b810af 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 20b3dd162d..363398e987 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 6e1dbd5220..bfad115315 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 1117c67613..8a4064d1c6 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 8d717ef5ef..00aa340bbb 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index bf7c5fa4b0..9e41928950 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 1b492b775c..68864caf24 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 58f42f855a..6668a61a56 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index c5ba3c36f9..4fc45de22e 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 34cbc22998..3bfb15fb56 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.86.0", - "@tanstack/react-query-devtools": "^5.86.0", + "@tanstack/react-query": "^5.87.0", + "@tanstack/react-query-devtools": "^5.87.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index cf47083e59..7f67f586cc 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.86.0", - "@tanstack/solid-query-devtools": "^5.86.0", + "@tanstack/solid-query": "^5.87.0", + "@tanstack/solid-query-devtools": "^5.87.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index bfa6aef4d0..a0c1988665 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.86.0", - "@tanstack/solid-query-devtools": "^5.86.0", + "@tanstack/solid-query": "^5.87.0", + "@tanstack/solid-query-devtools": "^5.87.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index ff7dd95c06..671c65ebf7 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.86.0", - "@tanstack/solid-query-devtools": "^5.86.0", + "@tanstack/solid-query": "^5.87.0", + "@tanstack/solid-query-devtools": "^5.87.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 5d865443c1..dba20020d9 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.86.0", - "@tanstack/solid-query-devtools": "^5.86.0", + "@tanstack/solid-query": "^5.87.0", + "@tanstack/solid-query-devtools": "^5.87.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index b6806e1cca..d52910dfbb 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.86.0", - "@tanstack/solid-query-devtools": "^5.86.0", + "@tanstack/solid-query": "^5.87.0", + "@tanstack/solid-query-devtools": "^5.87.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index c50c1da735..43999a1cca 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.86.0", - "@tanstack/solid-query-devtools": "^5.86.0", + "@tanstack/solid-query": "^5.87.0", + "@tanstack/solid-query-devtools": "^5.87.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 6d3ef1e076..2838f455bc 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0" + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 4dd8d7058b..74137a351b 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.86.0", - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0", - "@tanstack/svelte-query-persist-client": "^5.86.0" + "@tanstack/query-async-storage-persister": "^5.87.0", + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0", + "@tanstack/svelte-query-persist-client": "^5.87.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 2c70e08faa..63b7dcfbd2 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0" + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 2ec2a9324c..7c9520b4b8 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0" + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index b25c175c5d..c4a474b5e9 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0" + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 868b6977b1..e72c613640 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0" + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 76d31c11f1..20e02404b6 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0" + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index b47d135170..6a0ba92a3a 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.86.0", - "@tanstack/svelte-query-devtools": "^5.86.0" + "@tanstack/svelte-query": "^5.87.0", + "@tanstack/svelte-query-devtools": "^5.87.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 13bab816a6..f661ab041d 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.86.0", + "@tanstack/vue-query": "^5.87.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 50f0234ca1..dd1501e721 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.86.0", + "@tanstack/vue-query": "^5.87.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index af900868f3..f87ebf3be2 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.86.0", - "@tanstack/vue-query-devtools": "^5.86.0", + "@tanstack/vue-query": "^5.87.0", + "@tanstack/vue-query-devtools": "^5.87.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index bd48123e7e..851d31382c 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.86.0", + "@tanstack/vue-query": "^5.87.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 0141004163..fc027ad5b7 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.86.0" + "@tanstack/vue-query": "^5.87.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 90011c43f3..ec3f7b8fae 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.86.0", - "@tanstack/query-persist-client-core": "^5.86.0", - "@tanstack/query-sync-storage-persister": "^5.86.0", - "@tanstack/vue-query": "^5.86.0", + "@tanstack/query-core": "^5.87.0", + "@tanstack/query-persist-client-core": "^5.87.0", + "@tanstack/query-sync-storage-persister": "^5.87.0", + "@tanstack/vue-query": "^5.87.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 5f37456107..72c2f1db0a 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.86.0", - "@tanstack/vue-query-devtools": "^5.86.0", + "@tanstack/vue-query": "^5.87.0", + "@tanstack/vue-query-devtools": "^5.87.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 9d4a242813..134661e56d 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.86.0", + "version": "5.87.0", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 9889bef6b4..3380e6024a 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.86.0", + "version": "5.87.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 6f80ab820c..26989f3c29 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.86.0", + "version": "5.87.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 8210c42f8d..f82a423f21 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.86.0", + "version": "5.87.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 6bc83604d5..5c37df31d5 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.86.0", + "version": "5.87.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 9f2881dd8a..eb6650b18c 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.86.0", + "version": "5.87.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 376a2e210a..30e2591b04 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.86.0", + "version": "5.87.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index a84516be83..c19eb64360 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.86.0", + "version": "5.87.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 37954cc0a6..ea1464fe85 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.86.0", + "version": "5.87.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 3592bd8835..92ade2c83b 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.86.0", + "version": "5.87.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index faad014b13..45a8ac0805 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.86.0", + "version": "5.87.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index c45b5099d4..87dcb2a40e 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.86.0", + "version": "5.87.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 5e93f0c324..b722adb09a 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.86.0", + "version": "5.87.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 0b0eac1a3e..e498cbf3c0 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.86.0", + "version": "5.87.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index ff62c3a30f..b97b2f4b6f 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.86.0", + "version": "5.87.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 1dbf73da18..ffa0bc4dd3 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.86.0", + "version": "5.87.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index c8efb28b12..69bbf115cd 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.86.0", + "version": "5.87.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 2295c6dba9..0ae05a8b01 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.86.0", + "version": "5.87.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index ba1843a30a..2eaeb1f78a 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.86.0", + "version": "5.87.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 1c8a92167769f322d0206325b98493769afb0961 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Fri, 5 Sep 2025 16:13:31 +0200 Subject: [PATCH 388/432] fix(query-core): update initialData when an observer mounts while a Query without data exists (#9620) initialData gives the guarantee that data cannot be undefined, but this falls short when you create a Query via prefetching, and then mount the observer that has initialData set. That's because initialData is only doing something in the constructor of the Query, so if the Observer isn't the one who creates the Query, it does nothing This fix makes sure that when new options are applied on a Query (which e.g. happens when an observer mounts), initialData is taken into account when the Query doesn't have any data yet --- .../query-core/src/__tests__/query.test.tsx | 62 +++++++++++++++++++ packages/query-core/src/query.ts | 12 ++++ 2 files changed, 74 insertions(+) diff --git a/packages/query-core/src/__tests__/query.test.tsx b/packages/query-core/src/__tests__/query.test.tsx index 6a966bb240..f11bf173d3 100644 --- a/packages/query-core/src/__tests__/query.test.tsx +++ b/packages/query-core/src/__tests__/query.test.tsx @@ -1193,6 +1193,68 @@ describe('query', () => { expect(query.state.data).toBe('initial data') }) + test('should update initialData when Query exists without data', async () => { + const key = queryKey() + const queryFn = vi.fn(async () => { + await sleep(100) + return 'data' + }) + + const promise = queryClient.prefetchQuery({ + queryKey: key, + queryFn, + staleTime: 1000, + }) + + vi.advanceTimersByTime(50) + + expect(queryClient.getQueryState(key)).toMatchObject({ + data: undefined, + status: 'pending', + fetchStatus: 'fetching', + }) + + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn, + staleTime: 1000, + initialData: 'initialData', + initialDataUpdatedAt: 10, + }) + + const unsubscribe = observer.subscribe(vi.fn()) + + expect(queryClient.getQueryState(key)).toMatchObject({ + data: 'initialData', + dataUpdatedAt: 10, + status: 'success', + fetchStatus: 'fetching', + }) + + vi.advanceTimersByTime(50) + + await promise + + expect(queryClient.getQueryState(key)).toMatchObject({ + data: 'data', + status: 'success', + fetchStatus: 'idle', + }) + + expect(queryFn).toHaveBeenCalledTimes(1) + + unsubscribe() + + // resetting should get us back ot 'initialData' + queryClient.getQueryCache().find({ queryKey: key })!.reset() + + expect(queryClient.getQueryState(key)).toMatchObject({ + data: 'initialData', + status: 'success', + fetchStatus: 'idle', + }) + }) + test('should not override fetching state when revert happens after new observer subscribes', async () => { const key = queryKey() let count = 0 diff --git a/packages/query-core/src/query.ts b/packages/query-core/src/query.ts index 715d969cd0..a34c8630dc 100644 --- a/packages/query-core/src/query.ts +++ b/packages/query-core/src/query.ts @@ -205,6 +205,18 @@ export class Query< this.options = { ...this.#defaultOptions, ...options } this.updateGcTime(this.options.gcTime) + + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (this.state && this.state.data === undefined) { + const defaultState = getDefaultState(this.options) + if (defaultState.data !== undefined) { + this.setData(defaultState.data, { + updatedAt: defaultState.dataUpdatedAt, + manual: true, + }) + this.#initialState = defaultState + } + } } protected optionalRemove() { From bc2c87fceb816243960ff69074d5ca4efd5ceebf Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 5 Sep 2025 14:15:20 +0000 Subject: [PATCH 389/432] release: v5.87.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 734792a38c..0c216a853c 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 8e34c6920d..33539516f1 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.87.0", + "@tanstack/query-async-storage-persister": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index f3235e2d23..8d8d696085 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 9f5f3605d3..f110fa4a64 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.87.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-devtools-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index f906688c45..d7e37a4c29 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 0ed5e0ada2..bd87996e35 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 188742b850..cf82ced7a3 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 7a68dff095..db19c33940 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 7e2cf80b61..243f5a9fdc 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index e301fdb1c6..e21c3c7b93 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 94ba386430..44e79a93fb 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.0", + "@tanstack/angular-query-experimental": "^5.87.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 33c9e331b4..2ecef8965a 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 9b2d9a81e2..9daf6f8ae1 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 7a1fd6812d..d6b1500ede 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 3a78590e09..51f467bc18 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.0", - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", - "@tanstack/react-query-persist-client": "^5.87.0", + "@tanstack/query-async-storage-persister": "^5.87.1", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-persist-client": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 44dc584c81..f58f042f46 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 18700aeb23..3e6a171de7 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 4542174b89..79b8c4db67 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 9dc12ad137..6cb4f32986 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.0", - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", - "@tanstack/react-query-persist-client": "^5.87.0", + "@tanstack/query-async-storage-persister": "^5.87.1", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-persist-client": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 4dd481ac13..2755f13e09 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index ec41123326..ce0873ccf8 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index fb81dbef40..5a0b7f5f08 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index 4524318831..f1615dac3f 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", - "@tanstack/react-query-next-experimental": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-next-experimental": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index d60e32015f..052240954d 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index e96b82d86a..e5be1df300 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.0", + "@tanstack/query-async-storage-persister": "^5.87.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", - "@tanstack/react-query-persist-client": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-persist-client": "^5.87.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 2eec9a8316..038ac19402 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index e2b83eaf53..51956b2eea 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index a081b810af..1d2dab6aaf 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 363398e987..f80f2ef950 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index bfad115315..1db8149370 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 8a4064d1c6..1967845712 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 00aa340bbb..588a4ca21d 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 9e41928950..847b702d99 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 68864caf24..35a159ca4e 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 6668a61a56..930546288b 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 4fc45de22e..6d863576c6 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 3bfb15fb56..b15945247e 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.0", - "@tanstack/react-query-devtools": "^5.87.0", + "@tanstack/react-query": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 7f67f586cc..2eccb450e5 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.87.0", - "@tanstack/solid-query-devtools": "^5.87.0", + "@tanstack/solid-query": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index a0c1988665..ae2fc3af40 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.0", - "@tanstack/solid-query-devtools": "^5.87.0", + "@tanstack/solid-query": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 671c65ebf7..bf2a9495a6 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.0", - "@tanstack/solid-query-devtools": "^5.87.0", + "@tanstack/solid-query": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index dba20020d9..e99f078511 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.0", - "@tanstack/solid-query-devtools": "^5.87.0", + "@tanstack/solid-query": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index d52910dfbb..03dcfa1473 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.0", - "@tanstack/solid-query-devtools": "^5.87.0", + "@tanstack/solid-query": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 43999a1cca..ff9e52b558 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.87.0", - "@tanstack/solid-query-devtools": "^5.87.0", + "@tanstack/solid-query": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 2838f455bc..f2abbba8c7 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0" + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 74137a351b..d4ff09ab54 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.0", - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0", - "@tanstack/svelte-query-persist-client": "^5.87.0" + "@tanstack/query-async-storage-persister": "^5.87.1", + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1", + "@tanstack/svelte-query-persist-client": "^5.87.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 63b7dcfbd2..bc5c2a6477 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0" + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 7c9520b4b8..86ae733812 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0" + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index c4a474b5e9..08c69ab5a4 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0" + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index e72c613640..431e879948 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0" + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 20e02404b6..1bfb2e1317 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0" + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 6a0ba92a3a..3d1c111d5d 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.0", - "@tanstack/svelte-query-devtools": "^5.87.0" + "@tanstack/svelte-query": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index f661ab041d..786525d326 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.0", + "@tanstack/vue-query": "^5.87.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index dd1501e721..bc10d4822b 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.0", + "@tanstack/vue-query": "^5.87.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index f87ebf3be2..34d7cbc292 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.0", - "@tanstack/vue-query-devtools": "^5.87.0", + "@tanstack/vue-query": "^5.87.1", + "@tanstack/vue-query-devtools": "^5.87.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 851d31382c..e1fdf9948d 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.0", + "@tanstack/vue-query": "^5.87.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index fc027ad5b7..71a22fbe2e 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.87.0" + "@tanstack/vue-query": "^5.87.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index ec3f7b8fae..de5395e317 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.87.0", - "@tanstack/query-persist-client-core": "^5.87.0", - "@tanstack/query-sync-storage-persister": "^5.87.0", - "@tanstack/vue-query": "^5.87.0", + "@tanstack/query-core": "^5.87.1", + "@tanstack/query-persist-client-core": "^5.87.1", + "@tanstack/query-sync-storage-persister": "^5.87.1", + "@tanstack/vue-query": "^5.87.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 72c2f1db0a..db53517889 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.0", - "@tanstack/vue-query-devtools": "^5.87.0", + "@tanstack/vue-query": "^5.87.1", + "@tanstack/vue-query-devtools": "^5.87.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 134661e56d..b703e46937 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.87.0", + "version": "5.87.1", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 3380e6024a..cdd8f2cbb6 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.87.0", + "version": "5.87.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 26989f3c29..c80e474cde 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.87.0", + "version": "5.87.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index f82a423f21..de596e94f4 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.87.0", + "version": "5.87.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 5c37df31d5..8098ab87af 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.87.0", + "version": "5.87.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index eb6650b18c..3ddebc7ca7 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.87.0", + "version": "5.87.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 30e2591b04..dd214229f8 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.87.0", + "version": "5.87.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index c19eb64360..2baa5f5c67 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.87.0", + "version": "5.87.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index ea1464fe85..292f765d51 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.87.0", + "version": "5.87.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 92ade2c83b..7ce0398649 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.87.0", + "version": "5.87.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 45a8ac0805..466c313ef2 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.87.0", + "version": "5.87.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 87dcb2a40e..64ead09055 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.87.0", + "version": "5.87.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index b722adb09a..67e3778c09 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.87.0", + "version": "5.87.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index e498cbf3c0..9f1fdaee4f 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.87.0", + "version": "5.87.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index b97b2f4b6f..2057186d9e 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.87.0", + "version": "5.87.1", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index ffa0bc4dd3..b0c47c6f78 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.87.0", + "version": "5.87.1", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 69bbf115cd..17e4e22f54 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.87.0", + "version": "5.87.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 0ae05a8b01..4b647f8fed 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.87.0", + "version": "5.87.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 2eaeb1f78a..4aecc0250a 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.87.0", + "version": "5.87.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 3af530d657b79cdd55a02928e615d3031e829c6e Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Fri, 5 Sep 2025 16:18:21 +0200 Subject: [PATCH 390/432] fix(solid-query-devtools): fix typing issue (#9621) * fix: fix issue with solid devtools * fix: add correct jsx typing from solid * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/solid-query-devtools/src/devtoolsPanel.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/solid-query-devtools/src/devtoolsPanel.tsx b/packages/solid-query-devtools/src/devtoolsPanel.tsx index 215ce0903b..0d01310011 100644 --- a/packages/solid-query-devtools/src/devtoolsPanel.tsx +++ b/packages/solid-query-devtools/src/devtoolsPanel.tsx @@ -3,6 +3,7 @@ import { onlineManager, useQueryClient } from '@tanstack/solid-query' import { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools' import type { DevtoolsErrorType } from '@tanstack/query-devtools' import type { QueryClient } from '@tanstack/solid-query' +import type { JSX } from 'solid-js' export interface DevtoolsPanelOptions { /** @@ -28,7 +29,7 @@ export interface DevtoolsPanelOptions { * @example { height: '100%' } * @example { height: '100%', width: '100%' } */ - style?: CSSStyleValue + style?: JSX.CSSProperties /** * Callback function that is called when the devtools panel is closed From 92d6b7bc86a45ed3d259d813e51a86b07fa9a7b3 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Fri, 5 Sep 2025 14:37:39 +0000 Subject: [PATCH 391/432] release: v5.87.2 --- examples/solid/astro/package.json | 2 +- examples/solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- examples/solid/default-query-function/package.json | 2 +- examples/solid/simple/package.json | 2 +- examples/solid/solid-start-streaming/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 2eccb450e5..ad3d659e30 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -16,7 +16,7 @@ "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.2", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index ae2fc3af40..5665a5a129 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index bf2a9495a6..8da27daeae 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index e99f078511..fa93e168f1 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 03dcfa1473..9719d3eaf3 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index ff9e52b558..ad98beb85a 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -13,7 +13,7 @@ "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.1", + "@tanstack/solid-query-devtools": "^5.87.2", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 64ead09055..ffbc3c2587 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.87.1", + "version": "5.87.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", From f49cc75e4aafc7fc96a2bc9e4f5f23e49ec398e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zakaria=20Abu=20Sarah=20=20=E3=82=B6=E3=82=AB=E3=83=AA?= =?UTF-8?q?=E3=83=A4?= Date: Fri, 5 Sep 2025 16:48:13 +0200 Subject: [PATCH 392/432] docs: Remove fragment in disabling-queries guide (#9619) Fragment is not needed here --- docs/framework/react/guides/disabling-queries.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/framework/react/guides/disabling-queries.md b/docs/framework/react/guides/disabling-queries.md index 61fb2297e6..93ff4ee36c 100644 --- a/docs/framework/react/guides/disabling-queries.md +++ b/docs/framework/react/guides/disabling-queries.md @@ -31,13 +31,11 @@ function Todos() { {data ? ( - <> -
    - {data.map((todo) => ( -
  • {todo.title}
  • - ))} -
- +
    + {data.map((todo) => ( +
  • {todo.title}
  • + ))} +
) : isError ? ( Error: {error.message} ) : isLoading ? ( From f02388165681e525eba500112693b29e5315aaff Mon Sep 17 00:00:00 2001 From: amir hossein Agha alikhani <87765316+alikhani-dev@users.noreply.github.com> Date: Mon, 8 Sep 2025 16:06:18 +0330 Subject: [PATCH 393/432] docs: update fetchNextPage condition in Example component (#9626) Co-authored-by: Alikhani --- examples/react/load-more-infinite-scroll/src/pages/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/react/load-more-infinite-scroll/src/pages/index.tsx b/examples/react/load-more-infinite-scroll/src/pages/index.tsx index 9aa6742d15..bf10bafb88 100644 --- a/examples/react/load-more-infinite-scroll/src/pages/index.tsx +++ b/examples/react/load-more-infinite-scroll/src/pages/index.tsx @@ -50,10 +50,10 @@ function Example() { }) React.useEffect(() => { - if (inView) { + if (inView && hasNextPage && !isFetchingNextPage) { fetchNextPage() } - }, [fetchNextPage, inView]) + }, [inView, hasNextPage, isFetchingNextPage, fetchNextPage]) return (
From af50368d76beec7632e8eae33eaae3b5079acfc4 Mon Sep 17 00:00:00 2001 From: Ji-hoon Choi <81629070+akdlsz21@users.noreply.github.com> Date: Mon, 8 Sep 2025 21:48:04 +0900 Subject: [PATCH 394/432] fix(query-devtools): add work break to code element to prevent DevPanel from expanding (#9625) Co-authored-by: Dominik Dorfmeister --- packages/query-devtools/src/Devtools.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/query-devtools/src/Devtools.tsx b/packages/query-devtools/src/Devtools.tsx index b868498daa..0959e1e459 100644 --- a/packages/query-devtools/src/Devtools.tsx +++ b/packages/query-devtools/src/Devtools.tsx @@ -3342,6 +3342,10 @@ const stylesFactory = ( margin: 0; font-size: ${font.size.xs}; line-height: ${font.lineHeight.xs}; + max-width: 100%; + white-space: pre-wrap; + overflow-wrap: anywhere; + word-break: break-word; } & pre { From 2bf8fa3175fb5b9213d86eb0aef30e46900a320c Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 8 Sep 2025 12:51:41 +0000 Subject: [PATCH 395/432] release: v5.87.3 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 2 +- examples/react/auto-refetching/package.json | 2 +- examples/react/basic-graphql-request/package.json | 2 +- examples/react/basic/package.json | 2 +- examples/react/chat/package.json | 2 +- examples/react/default-query-function/package.json | 2 +- examples/react/devtools-panel/package.json | 2 +- examples/react/eslint-legacy/package.json | 2 +- examples/react/infinite-query-with-max-pages/package.json | 2 +- examples/react/load-more-infinite-scroll/package.json | 2 +- examples/react/nextjs-app-prefetching/package.json | 2 +- examples/react/nextjs-suspense-streaming/package.json | 2 +- examples/react/nextjs/package.json | 2 +- examples/react/offline/package.json | 2 +- examples/react/optimistic-updates-cache/package.json | 2 +- examples/react/optimistic-updates-ui/package.json | 2 +- examples/react/pagination/package.json | 2 +- examples/react/playground/package.json | 2 +- examples/react/prefetching/package.json | 2 +- examples/react/react-native/package.json | 2 +- examples/react/react-router/package.json | 2 +- examples/react/rick-morty/package.json | 2 +- examples/react/shadow-dom/package.json | 2 +- examples/react/simple/package.json | 2 +- examples/react/star-wars/package.json | 2 +- examples/react/suspense/package.json | 2 +- examples/solid/astro/package.json | 2 +- examples/solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- examples/solid/default-query-function/package.json | 2 +- examples/solid/simple/package.json | 2 +- examples/solid/solid-start-streaming/package.json | 2 +- examples/svelte/auto-refetching/package.json | 2 +- examples/svelte/basic/package.json | 2 +- examples/svelte/load-more-infinite-scroll/package.json | 2 +- examples/svelte/optimistic-updates/package.json | 2 +- examples/svelte/playground/package.json | 2 +- examples/svelte/simple/package.json | 2 +- examples/svelte/ssr/package.json | 2 +- examples/svelte/star-wars/package.json | 2 +- examples/vue/basic/package.json | 2 +- examples/vue/simple/package.json | 2 +- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- 60 files changed, 61 insertions(+), 61 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 0c216a853c..ac235ca3d3 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 33539516f1..b9ce68739f 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.87.1", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 8d8d696085..b74499c8ae 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index f110fa4a64..45c503d0b6 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.87.1", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-devtools-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index d7e37a4c29..51f7855991 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index bd87996e35..f2826b413e 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index cf82ced7a3..44d7ed81dc 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index db19c33940..9cbe74f399 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 243f5a9fdc..6279fc4326 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index e21c3c7b93..3339677831 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 44e79a93fb..5c4ed26b22 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.1", + "@tanstack/angular-query-experimental": "^5.87.3", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 2ecef8965a..244c89650d 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -10,7 +10,7 @@ "dependencies": { "@algolia/client-search": "5.2.1", "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 9daf6f8ae1..6501472ffc 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index d6b1500ede..d2f0606646 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 51f467bc18..ce4da263e3 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -11,7 +11,7 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.87.1", "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "@tanstack/react-query-persist-client": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index f58f042f46..d957a39404 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 3e6a171de7..95a0a859c2 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index 79b8c4db67..cbb5ee78e9 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 6cb4f32986..94c415d46c 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -11,7 +11,7 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.87.1", "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "@tanstack/react-query-persist-client": "^5.87.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 2755f13e09..b870ec0024 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index ce0873ccf8..937835b024 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 5a0b7f5f08..cb5facca6c 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index f1615dac3f..b667afaf46 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "@tanstack/react-query-next-experimental": "^5.87.1", "next": "^15.3.1", "react": "^18.2.0", diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 052240954d..7d17cc8058 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index e5be1df300..f63b187a6f 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -11,7 +11,7 @@ "@tanstack/query-async-storage-persister": "^5.87.1", "@tanstack/react-location": "^3.7.4", "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "@tanstack/react-query-persist-client": "^5.87.1", "msw": "^2.6.6", "react": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 038ac19402..78dd24665c 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 51956b2eea..dda851dbe1 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 1d2dab6aaf..0205bb1933 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index f80f2ef950..fe0967ca5e 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 1db8149370..20316aafe7 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 1967845712..45916e442a 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -15,7 +15,7 @@ "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 588a4ca21d..db535224d7 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 847b702d99..46702587ba 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -13,7 +13,7 @@ "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 35a159ca4e..be92a52992 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 930546288b..61b143ca5f 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 6d863576c6..a142a7eb20 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -13,7 +13,7 @@ "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index b15945247e..ec87e52bea 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.1", + "@tanstack/react-query-devtools": "^5.87.3", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index ad3d659e30..b9d1eab600 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -16,7 +16,7 @@ "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.2", + "@tanstack/solid-query-devtools": "^5.87.3", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 5665a5a129..152766c334 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.2", + "@tanstack/solid-query-devtools": "^5.87.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 8da27daeae..b56fb32432 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.2", + "@tanstack/solid-query-devtools": "^5.87.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index fa93e168f1..d48a259013 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.2", + "@tanstack/solid-query-devtools": "^5.87.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 9719d3eaf3..624822c2eb 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.2", + "@tanstack/solid-query-devtools": "^5.87.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index ad98beb85a..1b5279149b 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -13,7 +13,7 @@ "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.2", + "@tanstack/solid-query-devtools": "^5.87.3", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index f2abbba8c7..fd2b327431 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1" + "@tanstack/svelte-query-devtools": "^5.87.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index d4ff09ab54..fc90ac01a5 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -10,7 +10,7 @@ "dependencies": { "@tanstack/query-async-storage-persister": "^5.87.1", "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1", + "@tanstack/svelte-query-devtools": "^5.87.3", "@tanstack/svelte-query-persist-client": "^5.87.1" }, "devDependencies": { diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index bc5c2a6477..5545297c09 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1" + "@tanstack/svelte-query-devtools": "^5.87.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 86ae733812..f92cce6635 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1" + "@tanstack/svelte-query-devtools": "^5.87.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 08c69ab5a4..517c6d3074 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1" + "@tanstack/svelte-query-devtools": "^5.87.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 431e879948..ad87beb368 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1" + "@tanstack/svelte-query-devtools": "^5.87.3" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 1bfb2e1317..1fad8c8406 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1" + "@tanstack/svelte-query-devtools": "^5.87.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 3d1c111d5d..9fcee33d44 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.1" + "@tanstack/svelte-query-devtools": "^5.87.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 34d7cbc292..e687a5496c 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/vue-query": "^5.87.1", - "@tanstack/vue-query-devtools": "^5.87.1", + "@tanstack/vue-query-devtools": "^5.87.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index db53517889..47e041a606 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -9,7 +9,7 @@ }, "dependencies": { "@tanstack/vue-query": "^5.87.1", - "@tanstack/vue-query-devtools": "^5.87.1", + "@tanstack/vue-query-devtools": "^5.87.3", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index b703e46937..0c13899d77 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.87.1", + "version": "5.87.3", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index cdd8f2cbb6..0983694eb7 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.87.1", + "version": "5.87.3", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 20c572749b..123e59481d 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.86.0", + "version": "5.87.3", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 2baa5f5c67..7ed5f50c21 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.87.1", + "version": "5.87.3", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index ffbc3c2587..e8859b8302 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.87.2", + "version": "5.87.3", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 2057186d9e..e8a847db92 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.87.1", + "version": "5.87.3", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 4b647f8fed..7474707fed 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.87.1", + "version": "5.87.3", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", From ccedf3328f1100014b06f91fda3fa86a7847bd5e Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 8 Sep 2025 21:58:06 +0900 Subject: [PATCH 396/432] test(svelte-query/createMutation): improve callback assertions with 'toHaveBeenNthCalledWith' and apply shorthand property syntax in FailureExample (#9630) --- .../tests/createMutation/FailureExample.svelte | 2 +- .../tests/createMutation/createMutation.test.ts | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/svelte-query/tests/createMutation/FailureExample.svelte b/packages/svelte-query/tests/createMutation/FailureExample.svelte index 9855664e8b..7d3292d526 100644 --- a/packages/svelte-query/tests/createMutation/FailureExample.svelte +++ b/packages/svelte-query/tests/createMutation/FailureExample.svelte @@ -12,7 +12,7 @@ const queryClient = new QueryClient() setQueryClientContext(queryClient) - const mutation = createMutation({ mutationFn: mutationFn }) + const mutation = createMutation({ mutationFn }) diff --git a/packages/svelte-query/tests/createMutation/createMutation.test.ts b/packages/svelte-query/tests/createMutation/createMutation.test.ts index 9cccd59ef5..6fd57ed063 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.test.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.test.ts @@ -48,16 +48,14 @@ describe('createMutation', () => { expect(rendered.queryByText('Count: 3')).toBeInTheDocument() expect(onSuccessMock).toHaveBeenCalledTimes(3) - - expect(onSuccessMock).toHaveBeenCalledWith(1) - expect(onSuccessMock).toHaveBeenCalledWith(2) - expect(onSuccessMock).toHaveBeenCalledWith(3) + expect(onSuccessMock).toHaveBeenNthCalledWith(1, 1) + expect(onSuccessMock).toHaveBeenNthCalledWith(2, 2) + expect(onSuccessMock).toHaveBeenNthCalledWith(3, 3) expect(onSettledMock).toHaveBeenCalledTimes(3) - - expect(onSettledMock).toHaveBeenCalledWith(1) - expect(onSettledMock).toHaveBeenCalledWith(2) - expect(onSettledMock).toHaveBeenCalledWith(3) + expect(onSettledMock).toHaveBeenNthCalledWith(1, 1) + expect(onSettledMock).toHaveBeenNthCalledWith(2, 2) + expect(onSettledMock).toHaveBeenNthCalledWith(3, 3) }) test('Set correct values for `failureReason` and `failureCount` on multiple mutate calls', async () => { From 19445a00c0950173b662cb43cd746198ba50b957 Mon Sep 17 00:00:00 2001 From: Minha Kang <118591632+m2na7@users.noreply.github.com> Date: Wed, 10 Sep 2025 23:05:43 +0900 Subject: [PATCH 397/432] fix(query-core): infinite re-renders in useQueries (#9639) * test(useQueries): add test for preventing infinite re-renders * fix(query-core): resolve infinite re-renders in queriesObserver * style(useQueries): remove unnecessary comments * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/query-core/src/queriesObserver.ts | 21 +++--- .../src/__tests__/useQueries.test.tsx | 70 +++++++++++++++++++ 2 files changed, 81 insertions(+), 10 deletions(-) diff --git a/packages/query-core/src/queriesObserver.ts b/packages/query-core/src/queriesObserver.ts index 6458f208da..b8068ec491 100644 --- a/packages/query-core/src/queriesObserver.ts +++ b/packages/query-core/src/queriesObserver.ts @@ -118,21 +118,22 @@ export class QueriesObserver< observer.getCurrentResult(), ) + const hasLengthChange = prevObservers.length !== newObservers.length const hasIndexChange = newObservers.some( (observer, index) => observer !== prevObservers[index], ) + const hasStructuralChange = hasLengthChange || hasIndexChange - const hasResultChange = - prevObservers.length === newObservers.length && !hasIndexChange - ? newResult.some((result, index) => { - const prev = this.#result[index] - return !prev || !shallowEqualObjects(result, prev) - }) - : true + const hasResultChange = hasStructuralChange + ? true + : newResult.some((result, index) => { + const prev = this.#result[index] + return !prev || !shallowEqualObjects(result, prev) + }) - if (!hasIndexChange && !hasResultChange) return + if (!hasStructuralChange && !hasResultChange) return - if (hasIndexChange) { + if (hasStructuralChange) { this.#observers = newObservers } @@ -140,7 +141,7 @@ export class QueriesObserver< if (!this.hasListeners()) return - if (hasIndexChange) { + if (hasStructuralChange) { difference(prevObservers, newObservers).forEach((observer) => { observer.destroy() }) diff --git a/packages/react-query/src/__tests__/useQueries.test.tsx b/packages/react-query/src/__tests__/useQueries.test.tsx index b475bdadb6..19fbe1f7c3 100644 --- a/packages/react-query/src/__tests__/useQueries.test.tsx +++ b/packages/react-query/src/__tests__/useQueries.test.tsx @@ -1741,4 +1741,74 @@ describe('useQueries', () => { // still no extra calls to combine expect(spy).toHaveBeenCalledTimes(3) }) + + it('should not cause infinite re-renders when removing last query', async () => { + let renderCount = 0 + + function Page() { + const [queries, setQueries] = React.useState([ + { + queryKey: ['query1'], + queryFn: () => 'data1', + }, + { + queryKey: ['query2'], + queryFn: () => 'data2', + }, + ]) + renderCount++ + + const result = useQueries({ queries }) + + return ( +
+
renders: {renderCount}
+
queries: {result.length}
+ + +
+ ) + } + + const rendered = renderWithClient(queryClient, ) + + await vi.advanceTimersByTimeAsync(0) + renderCount = 0 + + fireEvent.click(rendered.getByRole('button', { name: /remove last/i })) + await vi.advanceTimersByTimeAsync(100) + + expect(renderCount).toBeLessThan(10) + expect(rendered.getByTestId('query-count').textContent).toBe('queries: 1') + + renderCount = 0 + + fireEvent.click(rendered.getByRole('button', { name: /remove first/i })) + await vi.advanceTimersByTimeAsync(100) + + expect(renderCount).toBeLessThan(10) + expect(rendered.getByTestId('query-count').textContent).toBe('queries: 1') + }) }) From 230435d1126fe5a1f0ccd9c2b871bfecc6551a2a Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 10 Sep 2025 14:10:04 +0000 Subject: [PATCH 398/432] release: v5.87.4 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 133 insertions(+), 133 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index ac235ca3d3..e00e110fb4 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index b9ce68739f..a169d72b08 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.87.1", + "@tanstack/query-async-storage-persister": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index b74499c8ae..b1f620dd39 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 45c503d0b6..44390e5948 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.87.3", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-devtools-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 51f7855991..8a77b237ea 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index f2826b413e..644e498c31 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 44d7ed81dc..179102df23 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 9cbe74f399..d39abeb9a8 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 6279fc4326..4bd73b26fd 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 3339677831..bbcd5f2243 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 5c4ed26b22..3be97b6fbc 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.3", + "@tanstack/angular-query-experimental": "^5.87.4", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 244c89650d..9039168878 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 6501472ffc..40a9ac08e7 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index d2f0606646..06a6aca8e8 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index ce4da263e3..2f164458fc 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.1", - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", - "@tanstack/react-query-persist-client": "^5.87.1", + "@tanstack/query-async-storage-persister": "^5.87.4", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query-persist-client": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index d957a39404..09bab25609 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 95a0a859c2..3d9d49608f 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index cbb5ee78e9..dcc65ab7fb 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 94c415d46c..92fabf3be6 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.1", - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", - "@tanstack/react-query-persist-client": "^5.87.1", + "@tanstack/query-async-storage-persister": "^5.87.4", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query-persist-client": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index b870ec0024..d37fc5d3fd 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 937835b024..7edc2da1e4 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index cb5facca6c..7d58dcf1db 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index b667afaf46..dce3cec36b 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", - "@tanstack/react-query-next-experimental": "^5.87.1", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query-next-experimental": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 7d17cc8058..55ceb233ac 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index f63b187a6f..c6b42a1550 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.1", + "@tanstack/query-async-storage-persister": "^5.87.4", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", - "@tanstack/react-query-persist-client": "^5.87.1", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query-persist-client": "^5.87.4", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 78dd24665c..f6adf18ef0 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index dda851dbe1..c0b135472a 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 0205bb1933..4dd42eb164 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index fe0967ca5e..3a76418b97 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 20316aafe7..78001ad3c2 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 45916e442a..7462c873fa 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index db535224d7..5609a62c1f 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 46702587ba..51e57967c8 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index be92a52992..7634cb7fd9 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 61b143ca5f..b69b567914 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index a142a7eb20..515854129e 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index ec87e52bea..723a437f99 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.1", - "@tanstack/react-query-devtools": "^5.87.3", + "@tanstack/react-query": "^5.87.4", + "@tanstack/react-query-devtools": "^5.87.4", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index b9d1eab600..bd80279a3e 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.3", + "@tanstack/solid-query": "^5.87.4", + "@tanstack/solid-query-devtools": "^5.87.4", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 152766c334..d87675b276 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.3", + "@tanstack/solid-query": "^5.87.4", + "@tanstack/solid-query-devtools": "^5.87.4", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index b56fb32432..8394bf3c32 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.3", + "@tanstack/solid-query": "^5.87.4", + "@tanstack/solid-query-devtools": "^5.87.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index d48a259013..5d70a55775 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.3", + "@tanstack/solid-query": "^5.87.4", + "@tanstack/solid-query-devtools": "^5.87.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 624822c2eb..a5eb0ffb67 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.3", + "@tanstack/solid-query": "^5.87.4", + "@tanstack/solid-query-devtools": "^5.87.4", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 1b5279149b..e199d1d44b 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.87.1", - "@tanstack/solid-query-devtools": "^5.87.3", + "@tanstack/solid-query": "^5.87.4", + "@tanstack/solid-query-devtools": "^5.87.4", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index fd2b327431..53060dbfb8 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3" + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index fc90ac01a5..4524fb0668 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.1", - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3", - "@tanstack/svelte-query-persist-client": "^5.87.1" + "@tanstack/query-async-storage-persister": "^5.87.4", + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4", + "@tanstack/svelte-query-persist-client": "^5.87.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 5545297c09..a4d90cf356 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3" + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index f92cce6635..f8ecb7b4db 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3" + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 517c6d3074..ec9e620943 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3" + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index ad87beb368..82517900dc 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3" + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 1fad8c8406..6f21c3f08e 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3" + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 9fcee33d44..bbbacc06ed 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.1", - "@tanstack/svelte-query-devtools": "^5.87.3" + "@tanstack/svelte-query": "^5.87.4", + "@tanstack/svelte-query-devtools": "^5.87.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 786525d326..584ff5a82b 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.1", + "@tanstack/vue-query": "^5.87.4", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index bc10d4822b..7945f33f15 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.1", + "@tanstack/vue-query": "^5.87.4", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index e687a5496c..5a1d61f12b 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.1", - "@tanstack/vue-query-devtools": "^5.87.3", + "@tanstack/vue-query": "^5.87.4", + "@tanstack/vue-query-devtools": "^5.87.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index e1fdf9948d..f4500ef312 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.1", + "@tanstack/vue-query": "^5.87.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 71a22fbe2e..2667f39b77 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.87.1" + "@tanstack/vue-query": "^5.87.4" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index de5395e317..dea9fd113f 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.87.1", - "@tanstack/query-persist-client-core": "^5.87.1", - "@tanstack/query-sync-storage-persister": "^5.87.1", - "@tanstack/vue-query": "^5.87.1", + "@tanstack/query-core": "^5.87.4", + "@tanstack/query-persist-client-core": "^5.87.4", + "@tanstack/query-sync-storage-persister": "^5.87.4", + "@tanstack/vue-query": "^5.87.4", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 47e041a606..0f74ac042c 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.1", - "@tanstack/vue-query-devtools": "^5.87.3", + "@tanstack/vue-query": "^5.87.4", + "@tanstack/vue-query-devtools": "^5.87.4", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 0c13899d77..406a869a8e 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.87.3", + "version": "5.87.4", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 0983694eb7..e9b4ad6cf7 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.87.3", + "version": "5.87.4", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index c80e474cde..64e223c3b9 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.87.1", + "version": "5.87.4", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index de596e94f4..47d09d5576 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.87.1", + "version": "5.87.4", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 8098ab87af..a5103bbc0f 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.87.1", + "version": "5.87.4", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 3ddebc7ca7..91eb4adacf 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.87.1", + "version": "5.87.4", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index dd214229f8..a9e48886a2 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.87.1", + "version": "5.87.4", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 7ed5f50c21..35d7910e6f 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.87.3", + "version": "5.87.4", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 292f765d51..ef2f2d59dd 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.87.1", + "version": "5.87.4", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 7ce0398649..1555833fa0 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.87.1", + "version": "5.87.4", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 466c313ef2..339f5c4cb6 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.87.1", + "version": "5.87.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index e8859b8302..5817191c08 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.87.3", + "version": "5.87.4", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 67e3778c09..03be970fcf 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.87.1", + "version": "5.87.4", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 9f1fdaee4f..3b50187a4c 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.87.1", + "version": "5.87.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index e8a847db92..2a3f10c83c 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.87.3", + "version": "5.87.4", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index b0c47c6f78..7c0368fcd7 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.87.1", + "version": "5.87.4", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 17e4e22f54..086ed64acd 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.87.1", + "version": "5.87.4", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 7474707fed..78bceecd7e 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.87.3", + "version": "5.87.4", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 4aecc0250a..48974d1758 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.87.1", + "version": "5.87.4", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 7f0e7161e4e5abed9df7fc897b761cca3d03d34a Mon Sep 17 00:00:00 2001 From: Pascal Weyrich Date: Fri, 12 Sep 2025 00:16:24 +0200 Subject: [PATCH 399/432] docs(angular-query): use signal input in placeholder-query-data.md (#9641) --- docs/framework/angular/guides/placeholder-query-data.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/docs/framework/angular/guides/placeholder-query-data.md b/docs/framework/angular/guides/placeholder-query-data.md index 6f98531431..074e32ce2d 100644 --- a/docs/framework/angular/guides/placeholder-query-data.md +++ b/docs/framework/angular/guides/placeholder-query-data.md @@ -36,12 +36,7 @@ class TodosComponent { ```ts export class BlogPostComponent { - // Until Angular supports signal-based inputs, we have to set a signal - @Input({ required: true, alias: 'postId' }) - set _postId(value: number) { - this.postId.set(value) - } - postId = signal(0) + postId = input.required() queryClient = inject(QueryClient) result = injectQuery(() => ({ From 2492ed1d9be125e7a7185f125ab413aaaa24ae23 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Fri, 12 Sep 2025 01:31:48 +0200 Subject: [PATCH 400/432] docs(angular-query): fix error in code snippet (#9645) --- docs/framework/angular/guides/placeholder-query-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/angular/guides/placeholder-query-data.md b/docs/framework/angular/guides/placeholder-query-data.md index 074e32ce2d..ba92fbc4ed 100644 --- a/docs/framework/angular/guides/placeholder-query-data.md +++ b/docs/framework/angular/guides/placeholder-query-data.md @@ -45,7 +45,7 @@ export class BlogPostComponent { placeholderData: () => { // Use the smaller/preview version of the blogPost from the 'blogPosts' // query as the placeholder data for this blogPost query - return queryClient + return this.queryClient .getQueryData(['blogPosts']) ?.find((d) => d.id === this.postId()) }, From d179168d7414ca8d7eacc49ed5f67d234c9933eb Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 12 Sep 2025 02:20:50 -0700 Subject: [PATCH 401/432] docs: README Updates (#9640) * readme updates * fix devtools link * Apply suggestion from @coderabbitai[bot] Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update README.md Co-authored-by: Sarah --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister --- README.md | 103 ++++++++++++++++++++++++----------------- media/header_query.png | Bin 0 -> 197254 bytes 2 files changed, 61 insertions(+), 42 deletions(-) create mode 100644 media/header_query.png diff --git a/README.md b/README.md index 3f4fa2bd4f..47839f688e 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,59 @@ -![TanStack Query Header](https://github.com/TanStack/query/raw/main/media/repo-header.png) - -Hooks for fetching, caching and updating asynchronous data in React, Solid, Svelte and Vue - - - #TanStack - - - - - - - - semantic-release - - Join the discussion on Github -Best of JS - - - - - Gitpod Ready-to-Code +
+ TanStack Query +
+ +An async state management library built to simplify fetching, caching, synchronizing, and updating server state. + +- Protocolโ€‘agnostic fetching (REST, GraphQL, promises, etc.) +- Caching, refetching, pagination & infinite scroll +- Mutations, dependent queries & background updates +- Prefetching, cancellation & React Suspense support + +
Read the Query Docs โ†’ +
+ +
+ + + +
+ + semantic-release + +Best of JS + Follow @TanStack +
+ +
-Enjoy this library? Try the entire [TanStack](https://tanstack.com)! [TanStack Table](https://github.com/TanStack/table), [TanStack Router](https://github.com/tanstack/router), [TanStack Virtual](https://github.com/tanstack/virtual), [React Charts](https://github.com/TanStack/react-charts), [React Ranger](https://github.com/TanStack/ranger) +[Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) -## Visit [tanstack.com/query](https://tanstack.com/query) for docs, guides, API and more! +
-Still on **React Query v2**? No problem! Check out the v2 docs here: https://github.com/TanStack/query/tree/2.x/docs/src/pages/docs.
-Still on **React Query v3**? No problem! Check out the v3 docs here: https://tanstack.com/query/v3/docs/.
-Still on **React Query v4**? No problem! Check out the v4 docs here: https://tanstack.com/query/v4/docs/. +
-## Quick Features +## Get Involved -- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!) -- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime) -- Parallel + Dependent Queries -- Mutations + Reactive Query Refetching -- Multi-layer Cache + Automatic Garbage Collection -- Paginated + Cursor-based Queries -- Load-More + Infinite Scroll Queries w/ Scroll Recovery -- Request Cancellation -- [React Suspense](https://react.dev/reference/react/Suspense) + Fetch-As-You-Render Query Prefetching -- Dedicated Devtools +- We welcome issues and pull requests! +- Participate in [GitHub discussions](https://github.com/TanStack/query/discussions) +- Chat with the community on [Discord](https://discord.com/invite/WrRKjPJ) +- See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions ## Partners +
+
-## Contributing - -View the contributing guidelines [here](/CONTRIBUTING.md) +## Explore the TanStack Ecosystem -### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) +
+TanStack Config โ€“ Tooling for JS/TS packages
+ TanStack DB โ€“ Reactive sync client store
+ TanStack DevTools โ€“ Unified devtools panel
+ TanStack Form โ€“ Typeโ€‘safe form state
+ TanStack Pacer โ€“ Debouncing, throttling, batching
+ TanStack Ranger โ€“ Range & slider primitives
+ TanStack Router โ€“ Typeโ€‘safe routing, caching & URL state
+ TanStack Start โ€“ Fullโ€‘stack SSR & streaming
+ TanStack Store โ€“ Reactive data store
+ TanStack Table โ€“ Headless datagrids
+ TanStack Virtual โ€“ Virtualized rendering
+ โ€ฆ and more at TanStack.com ยป +
diff --git a/media/header_query.png b/media/header_query.png new file mode 100644 index 0000000000000000000000000000000000000000..96fe6e78fae1b5b5e1c27161668898f0e9b9ea75 GIT binary patch literal 197254 zcmeFZ^+VL#*ES3Y77B_YN-HAL(vpKk3W#)$f^yCH{a(Ec+XE~&N=Xz&)$2jYhCMF*T(mSyyWGJlo#>v@GeVBJ$;FXcMgq* zM>ux=Ech?3C25j)c=UMEPai2e>8?#&I0@HBJ;boiV$r47+7j-_8gwSOcWQp()+l1s z3*j4yyz+WY_H6PO#&C1}7iHg{D;7nhW*EP?V9@a#-TgyV8Qwk8y>nCpAIetSt;}Do z+c-c!G}K$Nv4h zZU2ntf1~Z6yYV}J|4q_=z}Uao_J7rqe@ntYi{`(T^q;$dt2O@;kbhFNe+kGxcLT@E z{v{y)EV=&@kbmyRzXaqzv*lj`@-G4TuRZg>1ms@=@_#|-KYIRu3CMp!>i_=;$oJU# zFU(4M+jBpV%jxi@er6^8u5m#`JKDzpbA>ghLXTJ5BvqYjFI%_PMKRxUA|n=6Yq@fO z+FM=BrS&~Mx>R(;`w&^11$$TN#p$~Vl+xt`Ng*c>_Ex=#5D4`C7_#9UUDNx6sqV4o z_AC7wTLzxH6!h%EU`n0FHk5w@|D4dMAfSq(@dX9J7a%q-&L=bH8c3*u}0#9v;i$ zE>xeDoqNNK&yqUUs_#hcip^QcN z*9vb!Fr5Tl%B3#_tS0a5F?!NaxZ%G#5Z(VIWWS=EOQd=Ev@L#-O2~`O?sw3=Spr)S#cT4?e&KujsM$akxyAk{D~Zrj;;fp143A=wF@c(>2FDN+kiOb;sOMR+8n1azAOgKWbMqtpI{ZX?EnN=&1m0d!sO;;tU zD}NE=W#`wq3_uIW$xb^J14eKts$*Yof*?E5rFVaW?G%{04y#ui{y`Bc3>VA>bz0oi0ee5l9fB&t_2TW^(=J za8-PZ?fiAyyVraRP4{xVKN=cqbW5V@)NRu3De1T=+D#=Sm=h+K~9dRkej>t zbRH*YA36^yG^UXghM9=loS6+43krr{?u((8lAG!#U-iie_!oDHnKdA>9H*_(Q(O$3 z=T0Uw4n~Tu+~hHQzAI8LDS|!O(RfP1`DQ>xE$}k`Fg>M!F6*GCS*~%7>a1~Zib+mk z3uRAs=jfgXNYg3ExL^I%%6TRQMhEe5bHf}hKFhovDIFtVbyZXey0-N5 zt3HQG)2XpQ=yCPut|JeKx5TFen>9NQ+AhnfTyM61k*O3Mnye0FQ;eAx%as_9*gOh@ zOk`L_qgDaLN2CernAc9&=q&N)yD@>sI<32ERNQjrJzBX9a%hAXP>q$v&a)atBJ!y4r3M+j_COfDfrJ{r$WqmHfiy`soF=LcwQpJIMB21;F4@T zca3R5aHqG=qH5XDT04@%8hp#M_0dv)AxD)2^NsOJF1w|W3Iq&G#KhkbE0Ay8o~u!8 zsQtF#Ll1hlZ7Q&URHHS_qtY{Eyt}}X`bcoW+Vsc z{#=`~X=nErva*jeA1yKIDc_8@-jNe%UK=U)m-v~bl6}}d;V9{UgWaD${ZvNe^#*rL z`fz1wPw{AC5#-^lb+7cqOmVjut4!)L!-=rt2DMSVyL?XBsOhulzPpHvDZ$5x#RS)x zQL&+>{!Ar*3EQ4$6q4OLU96*S_fFlyHYng-CkIj=2+x116hGKVZ_X_rfBA)lir@UE zQJl3Qwd=UGBEkcm)L{~uN<0pOVV5SV9c!?YuFt-XI?c+>Od=+!*tIOxzZ^Y(dX_jVhf;;%0FlN zpl2(0y6Sp1JkMMd3Z6TysEa#aG)6@()@AtNd2wHl;x>?>wt0K}4$=_s;c{HHnjb93 zKT>ju{L7cj`gq65Tanssif%{qkJ6Dl2%3 zeAUR{KO}SDE7%r?|C;sDXh`A(-#5&Aackf<0Eb%73*bVGbKt2%*F=kaW1Byniwc%tLDDz zVsJJgN>hN-M(WyFkJ}IF5V5}bK(6}9hnDub@LIu>hJ}!*|3K=$>C1gOkcitO#Nk)y zUlA5_Ug4F zYqOPhmUv-0m5`Irf1dmQIO}-^5LRNYU&#QDN#S_A^)LK&JwR}YvR7($x`T;1YcgIP zF>=7X%#L@ZQyJ67>M9gJl(oD^JL)c3CN=C-hI8xgakbNTikH|sxeg558b&EO# zgT|+TUd5tfS^_zAjGh<(5OA)P$(#r|9e&> zmVnZdx+frvPhfEGfyYT~;Z)sm3y!*mv~eJ6)Z*;-M~Hr~n-me9y;K3|5}6G+T*=Pg zt_!&wBM{64cVkh7y6@F2MuePt1i2uwP0*e4p5nJI)Ev(ETmSSr*Ca6I7Iu(THmv7g z0RTzAc5kTL)$&4ikT|N8Y`F#O&O!HaQVg#N84R{CqHdO3x}BhPYG;#Zhg(Cj01sHh z-3NeyJly>mM3lLdmF*&V(5JvDWhtGVR{w-l^rlWQL~NlWI&6q24}c=_c@}aCM8Qss z8uzLD^N(lW*#evh*$Sbh!~%M{t%(cIBq;Vc8Po>nPF9V*D~GRUnv7v@kDWFr9CxaI zg{$cbV)l3YdXk>C*DQnwoVrJWxIG&01obxh{Pm=1EDU=9v!4Dy(R|A&;Z{3a@$={$ z^xcCX>XN6AKc28K3W~R4*CIK!GFdw1Ck>IqQISk6wPK45(Q@7_3 zY<;tU00Y>1`VbEzm#S$940BSWV!L9J-b}8heXE_L+I-SR=IJjZuU#(e@+_vW6|=aS z1vtVbI<7nXlTKl7sb73f-I*e=GoKseBt6BKiD;?#*+}I16n5-WgJlrM8?JhA_k&K^ zHqaQ}|0s$wejfMmcA9+b4W;zwfhK)vEjV6SYBm%^uBv{Ul2`qFzobF7i*B^n^p07>NGR|N7;CescyDYyAH5@<~d% z>Wv~tpCu zu&&NZtCtg)ylIr+EHQaw2s8;!)6J23^Wkb;TJooJk8hwvP)rVA0;uFwKldX{-)Ftt zf4MJxF*T-ovyzEKcx@}kM$QR~u2?H-pZV%T+rc6hhHG7$k0`WnvgTFj-Fw|~@9C>w z_4wAxi(Ssy4&Do$`cGGUvAe8yan1DK82-->;@qHv4=Ys2x+_k9&WjUq!tF3>(u&JE z>Y|gIF&;J^KN-CBV=c;lJXAxuuhqKf&<^RiTC@~a5~i5dfnaamsNPJFr7SdH+3Miw ze%ean)8shi9vOMD96*uN!pLHh!}_T652g#JQM(uFprU+3wE;NuC91<>j{84jgj+%P zYm=8^(0+Ng=XIlAC*M%VL$xZdvAshMEC; zZ4@6a6g}ftGZ*^))C`OR88~fja8Eq3i2zp@v~BkW1l2xUB)ctz+_s+aWoinz#bc9q z8-9VrbV}?ji5oqfd7kB(SGU+P+i1xM53YZxQSLv;tDgDJApGAK2u_!HmIbJ6j5k1C zsGfbFr(>Hp^NArSpc=Cs8L(pqS?{md8`R5S#f`rjG`J%^KhzZntSW~D!q%W`e_rhujP$pH+j z^8mW8S(@B%@p4kb_T{A4$r6PlhOy7$h3qft%G$@g8m}lUY~84C9fHE*cZx_KZq++& zHTc+cG2ow;LLpF)LMJY55}x80h~y!)uH!a4oq{R_fd929!CZw*2eQJI5&$0ELuuRE z2hc&pa5)lZLoQSS#bSECK54Cy=P?`1Spu2MHFIJz}B`8Y{})2bRh3{J)BQ@lq)p?MwmUJxbU$MFEhsl@ zA-Cx=XFyT$i?yl}+^9R|bpBC(Aa?w8Xtr7c<*2q#z#tLusdjWN+Wp;!J5ag!l%A}C z1?L}(r{YdXH8{UjYfxM@(!D!ebOW7#o0eM%$2!_oO`-tN`agK>Aqakm{g zobrCdG$v zls;%63b7u?3vN}9KU`CJ@G3cwKgj3YWxq7J*oBxZ&1Tq6r$8Y{mZzxFo0YoytwH_^ z?3!~i5+bK2oHvLa5~s(%;RnR2zCSyEFzG${j;c?kL%PBkL6_(Kxmp6N)JK;w{nlmktk~A8H6WoKNvT=b)EsP7 z6H{Vs7dn2Jbb@BxphjdnJkI9)sTOS;K%BZe6?g&AlP!6SW?BPrcY*g9A{iVMC@^_9 zo%)DG95j=VU+JO7x!b>i@ho@8%Br zpPu=OSwNfov=*7*^1h&vICA85-6(X$9nk#qvcxi6hz>!qi$(dxaTlM%Cm)#hXT-^5 zEq(bE7fO8U#z(LK!`#{1;`E9H%juzg3QR_>xs?ksNEDTRGN>mbY4=UXn<=2z)pV_& z^(?sY4V+jEnC?7V5YDn)yb0=IkLh>&Bp|a;MQYoaAmlojNeT%OQ4Jp8s4ppsHm+1NEyvM|<;T ze6UE-eI-&_k-Pg7RtV@q)m*6mED#F)xE;lqD)XU;rD5bxx3rwz%HO?#ScQ9+ncF7% z0#57xZwacb3!3U}RSD1$>3K1bKt$4KH~JJ{>2LytnLW_ow&1Uiwt%93Q4^C}K5?U! z)^+@yAODkw`3>#-s$XbCD5O!@e)&8Vhwr#gh z6(+tv2Ld(^XEI31&-FlcqOM-Ak{v8AHyvQnrP`@Y+v&7ME;GSfa`KIuhoId- zBTyI(uJP0ZVovZ`R^Cr%+XX)H4Qey+j~dT5%L`b4dk^MS?)tqc(nt4=3I#pHlF&bx z5ml{W26OexCme!l9EPVOD-^_z?m7&6R7)XzYOf5LOjNh3YFU!U3!w|IEc++ypdeFM zCaUaNQ8m)>59snkrKYMmgWVW230F=FY+nE<3gZ#XQQ~{ozL#EgmJg=2UQUf9zibJ{ z(AJCbj!!|q_`5$5v8r|1)5DDmCmg3lN6RcIz&rX{luZgP*7(a70EHMg%vBB~}sUY^A+cE(Zw#ZmRqVkXOv z>OWCNMMJ(}hzs;`!*6B-XU41$oi2GTfmE$cq+%UHy7Z?3{|jf3YHeD#fIxhKFmJt& z$z@+eU^N=-q7Re;P6;QodW>&M?E2{xEM$_-YHOMDi^S(+=aH>}6 zhl@&n?ss65FK9bW6ZITtWf#S`SI$THmrr^yQSzC7QE@YP*CnzOP_f)X#mdtk#eLjs^V4`W8*m{^(LDAP*SLsNRSPjL ztA=P@WUN&sUzOeR%aBrcz-X+ETS>S8AitZ7EO|g+6z6QHZQUIHL0b1&F|BI{R}TV) z$Wc=(x14Z-eQQ!TNewURx_zpGrd|a+B*O3Uyo#kP(xVe zlrF>+s?PH1^#y7@^*-CasG10P4k&gn@(89nf}*x8`wz`cn--OlTXy@i(P^+7iVP}S zahpjkOmtXv=fERG9zD9apATW(_i5DL<3yuzKo8TF{WP#@PhYqA@|{7s_{VDb9+i2T zI)8UF7r=~N;a3`Sw73d|6l5NOGR-!u?U1CSx#7BA>o|y%y?FA=n^Z5I#_^M#d)^6g zO6;~-UZDhA`N?+SiA}pCdVWO`G%R|99noB7gF{@lgB^z~2JlIr=uAlaLJau#cX4@b z#9+R2WNp7W8BTiG`8|futi^}Uea!@$Lqr6mUwR%dJ8x|B=lmAo&F7ySr(!GmKYAEO zM~YO*ua9P4iy8FYr62&MOvGXIb*%AdigjIY`;*^68v^h~n zd)bOdI}3#)X|d0MWU05qUiRspTuc)vbO~1*!OTgi6YEP{cj8v{y_Kw$%Fb$-_%vaiZ9c(OJ>?$ZY|P_01B!Snc@x)ya&6B?&i-J6 zOS#{AHFu|UAG9VFbD^?4c~J2t;Lf3(P!Q%b^8>@A=J&pIPm?7Ai@Fp^ynvgafY^T! z&`uB6q@@O_;rft9@qW#9FSg~KN~U-!X2Upw=XX}M#{dNT@Pv_g#6>4u+3ZAruTmul9g z0iF=&C}}~M^;LW`JI@cCD1CN#xfSf~rJD~QWDlnjt(R|#A%O-qCu*f4U(qYW+8m}J z8t(EA78pviiV23DFnoj@XtRMCNa2B)t0dqKss`Kd@^hcU=vA2T-IB}R>@_1lxj!l6YL3?|SGq0vP^}>AfFQ|Wg-7!_J-!Yc${&eD- z`{%mhF+H)r>aEua7#}Tmzr064xJ_TMK$+c&!0hGcaMz-{s&R@;j$Y(-J7hCObGVxJ z=b^X(MhzSW08#omT9Y{@Z-N(OO!}~8^*d$di3L%o2-ZM58q z?i{t#3*5-(NRC765fT5GU7yope0g!g?BJNCzkaYN$LitBbEc?BmvbHvL>la9-PdoM zHN>L`+p9a&;;2!#e;+Y$okOeY2)0MQC<$Pl!jdfd!WF3iuok_ttQulDf#c&zT0RMp zYU5<=BEtzRPs~IP3tb6{LQEuZZNBZqZr5E^k^Hl2-cJC(hs^1G>RJDiZ~-uyP62fY zfSfOdN}Vx$`ZMR~7WUkyv6uryvVs2sPOLE04)$y#<~8ZP%TclQZK;2`K;1CffQ8QZ zjWi+ZV3VSi*7o_JZMks|_vB4s{{Lk)3?Y_I@h&Y#DjPpAsmm$BXvp3iM<((Z^4m2z8re#6^BI#hTN)CfDZo z4K74y!@$AW0-Hb6LYxoCn)wR?p7Yo4Q+RokTG9nyri!o@#LZ!z$DByxtb?<|j6`m` zJ(7h;391$tW(Qs~|0TnQ0Qi%hYP(L@fA+vuXNwT!DXc4i^72M!92hIf4oGi?*t;>G z;X})2A`UD0(CttTOw9(B&Z++cW!crtSN>JNB^=Z2#0Oq5x`*>=bQnj&YTEXzoH~ys*}+wYoYIi>>l2wr4i!I7i7$?5eImy2O9Zi!`RX+ zw~)`zt{sAjyOIJlkGxo^)zHv26_HWAl9g>prCan+4jbCTX|4CiIT$d#H4K(bn(}-! zLZmjGflKGQ^1aM&tR=iSCmCp%>%KpI)zF7l)49dv*cJSGpk^6SpQySXH3W1ZY(fI6 zdrp@-0xy)KylfIk>{h#go&%4Qq?!&ng|5@17S>F~WQhPetZGj6q|2>V z4(3-KQCvMPV;0*H3Q22(D?|BoPdoxkT73j3do zkd*Rn11uF1D+q>^SPXF(YA<`h{dM7=NaVEw)B>oE<7CwZ zFnT__noogqceaqP|EXiOSj!SWTuMAM>)T4#Z6^Pth{EZ_mkFTF{&z92@9)k(kL9;$ z=);WY0!4%tC?nApPCsUN(XtYVCf`5eN7>oSt`UaVmuxvl_XdOTVu8pG+#Jc#=yN*x ze9Vi(!V-=#po_Z+@^nf`fy)uPB zzi3&_N9eY_yvTiE+bHQYgP<>}WE9;P)=!2aj*H~ES4xM-4lbUP!{(G%zXHXbC^@{M zo`4b)eTE_%39~}@=xqZu(|wh2Cuq%1YQ^6^aOaC0CBY9IgLpR_L?^=VxK?#tNVE21|n!CHuf`~*9XEXTA16o>!#?f zSYFHVhxa_TUjIIU)f}GL7OIz1o}9C0{(#!8I}YF0EHl3a*71l}L6j?A>>|WHm8LI2 zWj#x)+*0It+}79Zidw1r;kwJDij`ct^rkRi}sa5$C0=`R0AeyFe| zPD2ZOLM2K@?UJ2LhdtM>0TXgRd{1nMrBM2#GOo#FK{StWZY_Sq#t9;57qPbda@c1& z6qcx=C_2S#hm*~Yek^wM&Da|H+21aTFQp(HHLQYX&MUinNnBR*%ST{@W4d`4G=25w zF4RuIV{8|@oW2tTfh=q~zXjm%e+I&H$T6N?jwi{2{jl1Ss zr|h98@Q?T=EMvDK=K0nNTa)Et`86acAUXYki8J{XCr16$tXR>P(@6w0q??qWs9cPo zCUQBbq7M?fQ;of>(bJ!b$vLQ0?IAgGw!Z?Z1W9$=G$mA)@1zI} zD^iK+E=%Kz=$>>{adGQCSGT+Ueb_WR zH?%H*MG2dp=}0R8gp!=0zQWnB)=-3pMk|GI0a%`1zQBbYlOV>|k^P6o^^9uTRG_)% z3=ugGthd6n&Rd*?BloBlZjU7~%b+zjZP_=qSY8tV+_+X@@_|jzJq7y%=usD7fU#u2 z9D5(N8BUu4BDSlD-Qn1v+8Hv@_#Pkj_n#+8{0_k5*;xS^d;$pY%bi zKOEIivLUoPq!APa--p1E`%0_*GTHIw6hD}nh4rj~k%uPea3+z!W&7rO?R$@H^Q#<8=|~lf_!6HrY2Otm$m%dUn;3=3=gbm#imy7gv!*oL9~Rthw(t@*c&y#N z>L3&G#~*Idu4_*a6*jdKy>0qDW>?=(4*R9yvBJ*c=&nL6zwu3MwdISa6Z6}(uG@cK z?)V}Owt#Rc4Oj?fJ~fgC`_Q^P(DzFY7Q1JOm<vB}_gjT(xcEi?`k6b4tweLF&P>t%Z4s;=bJW$IDbLUo!h{uq}gI6~VTyyPxpS zY;aZ#h2DDz=Fzihu~y6@C--zgDgO`(FzpLpJ6vASpg}a|eKrX0yEnG#>n;RrD|I&b;Wt%Qx?SLA;lp>IWYqxJ44;~jVSgJvTlKUCy`Qho zhu)dmRaowVS~W%uWy4bUn}DVE54pf=8_05;n`lKEFBaAUo8*r`0Lcj$5^!tUDV%T^ zGr*xN=n<{~!S07y*N3p&qBa)m$s>xVRT}ZDd^kT?dzY}J&5014UFe=uK)xcVW?C#M|0@s(UUzT5+&8yyMGr=$f zuTi_h!e)W}*1t=V_9|!1)?@j~;tRAwyFJ6MaQC7Mv4twvnZKn|nfrjwJ$6&N1}ODn zoUOyj5o(o37XxZ3Mftdk7LH6vL8jpzy^txj@-TV71krB)-JZjvir(})Yc+lHNH9QG zW|@%X3=YTz2+%MrCoq!IYb`62;6c;SZvtoEZ;jM-k>0I3*_Igy&ws>};G}nQ^pR>O zTt0#Nw^>HrK0I6>7z7roYbvMe3?ya9{pKCe@>64TB=X9%|V^50!FL(RpYM z&8EXQMQg=wo^9^enUGcYymbAo@a#6La3jXT@MQNFflW*GqqQ!(fAmYF!uvY;8p9l4WWW~rOxHesv~)K4K)1a;=Xbr1h_v`}cN)a-g{gY#Ht0fDHp52}G@o}GHYw(V zIV#;S2623wYx8i&cKFfPzeR*pKsY&5>nblOKk@nz#?nflVC56bVPzg8jTnwmcZrMos}83qr#boR2# z-F>Su2VZ+PAgvGw9m6&%7gO?RlD)VI3u$4RJ6VGHY2+hT1{|<7S$;TJ6z+Z2G zkq1CwaGRl!aab12iwY4PjN5u)~o%I%|PeyMW%-+@UDfj-DD zpgrTq@BlZrd)pYHp|C&ZDzN&L=n@-X0iLq5=BAy6O_n<0oNi0{3eSeZx;T#Q`OOA- zHFFTUIfV;Zg+CR1eQ-ZLv-nc>&%Brc7k$e8!(P@+R#5zr{)8h zGCq!}7x-$heU)gHSJdyl3#LP2o!DwlQRTWq#8M>vjlk@}$Bl=Z>)nQh-jDyXMmyPB=-Y_6?_ugDYsaM$%064&M)9@biO8q}ms$!q*B zt%8$;-?HE1O6zb-#|eVFQ*H70KnDsW0YBjHJo}Sn6ePVy96JL)_ACbfj6NXD9S_U6 z@oitW;#<}3sp4+;vGR!E)aT8*1CRb}HLK6akvuEwFkSaOKI;{ea7djy@Gk$pzXHmx zVkX}kp^ORqb1C~9)6W|NI1}rCFxmUpxgQ(yHG+~vsesNEp?U-1%mC#!=T){-$bvfg z)GtELeCptRt7@y*CFd^Yo)YQVn(rP!kzTU)$S*R*EY5zy{=u=@*O{fi;TUwCS9Ao# z)q$;VKT*nkOtexCOHS2tA`$4Jb2R?PR0nk+>-<5yl4cXifHrs+Q#y+%KVeVW*i^u4 zvvUpn+ZFe>D3~}(jJr=)W)^=`J*}$#`orPc&N2~F_@tomW&UNS`^n>hR02UbbNQf- zRc*iw_pR|leV>~`Z=_P6SXLcHJoMmdJ>0D63j#K{d{v?D-m{Yq$LpE*Fom}ktB@b5 zl8m}-XL0wlS_(l$L#V#qjpB0dWY(}GSa#)i-!!xx0QVp2Vz_uBbR0&^zxk6Xtw_93 zyb)a>&D%;=_Ie;?T%e_v+;tt>TBKot17l7{ZMy2U{wjLD)L7eAhjrSi)L1^ox?ZUH zlB<>_(}VEe?V_*MoxaEqAcQo`pY-@;Sog6jCQqRuU6Gzl=tZl7*DLV{vCSu)Wq#_M zdwvL)y-3SFlv!cNxlM^cWHQ5~GtbO19OHhp6NVZQ>x9-bq5FupOJF^is}KIVXhd%X zs(^Fymrr3tTFQQ#qM=2dvWrQM`iH$#XlZ@1Odg?~oTw?R%R_UaabjOpR1x(l(E`ceB5s zU5S)ngl45F|0oy7H(-0)*y#xL_Nf;)$Z^0$3!AHp3$DpG=2}k2kU|#b4u5%nNHER0 zpMeKafZyL+Seh0z7~JjlRe0c41MW60e&D(#eZ!*-qGMgjk5*FH?iM~7jzaWpkP95K zhU6pre`O#$3NpB+bLk`_O!}t!Fh33@rNaMWz8^sJPLL9wzb^Odr*fYo&Jf$}_$Ou= zP^(3I5_3F+aoh=DGn~n!DAC!@7i;h;iw|)J438T<`C)Jv5USk zo9$w$qJEoI-GlN9HT)A1M*~;{En+M3!i}KpUq-}12iWD9p^c2Fp-k60H4eJJd;{WM zIO8oLD?2^`g5odfx`h{exCqe?ljHAvn8%He^Ebs=w=9#B$kENiEe{3EhYP+HR$h`q zVCd15@7r{9HB0@}Bx}o>rm>q?45BSfbERUpXBFCwxyM;qm8SdT?Pl!(DDS{~NgU+u z7#=B}-_98<%UOFjJBdUv<;gAro1QFM-1b8B9k`|4DyC&%LnJf7i_yrt&SaAUwfI># zTgWK70vWQ8bivx>LMpLy8FBUbAR`7AE!7R-{n9p24SE5ECqKIBBS-&k^lH^ux9BDLI6Ue=vYau#vJ!|t8f!MuK5N3IeY@*81!-) zEKO~_U&)lmXns+8uemecQY=08r))K)fF*UK(q$~}LRjB64<+34OBz*Lw00w{s|fI4 z7dM5t@u7h`^`PJEaza~5Nor6nfTbC5{kVg9iX}UTEDUnQn@;_1hjXhuJ;4uH&JDwz zz#W)i)R+1@xQ&?mcvFNoqH;T?|JpLb#D;VGJ?ildK$rOT7vb0q^%Hmt#z7ku z9Qnnzq1%H8mOILY%}K~iJ~_BQD$yTxD9>g)c>#p|NnOH+?E4OV5WXpFP&NI+riWAy z+y4-EXMXMm+siKxOZF$8-{# zTWx8eWXQJx&+NN|b3#fK##+@m*KDt3q_)guFHfa+mm+~Z{zpcg-&x2`2T#v(u#W^v zbZbPLU9%)Wpe3mDp7L}2-*>=8tr)=kFgdc00 z77bEna+dIMm_I7wRHa9g97%_zvnd)y#&aJ#nuPtRQv+09>PQe-7fdQ+srIg+ZSC!aeMyV~|`)K(sJ-4#4IKJ@I2c^A(5M5Sp5)f=C84?}Ya=`_vffBXp5-lq3Hw^6_q1w?!LVq7>#VBR^PtuD zvSXh4Q#{#O_)Kfj{|q0yT`8>V7hw67{l!z zay3E3IVnTShlI|Hj8W!((d8Qqw4OheEH(Ze#8l-O3Qk?dbHTa|;n_p(K^%|tOy*vA^jEh+- z?XEH#U0(a`%i76!Y{}^5sLkP;$H=)SOZn$q#uEyd@F?d!SN!WVw1;}=7bO480g`qQ_sv|-rkdK zv{vZcs~_s;>6H`<=CaOiS!U6z-lz`x>oha6@gBqM_numTv;8IERb_8_CU7m{I0u}^ ziU9q=iOJzl&gujRY~#ff%n8veVQD3KrSE3w02-dNz!rWxI|j6_jqAc24AkpgFH@i6 z!_a$?Y*RDeRI-%4XoP==dQgfgA9u&_G2SA_FlB!Pmn7=@P5KN*UcGj|p16!QiGeY8 zuL;`z^5-07=DJKtMd-Kv(PcJ*=Izqfg~PoW@`vvG??m*;Ww4P?1Ll9kU;EbR{|GI_ zXGf&$ACXr`WBF?DzFeWa*I-(1_3PF=_X6y%t17VyQ#(`wS!Z$?7s3U}izhb`^hLHz;LoHbpkwo0jYVy81!L-zH8=8>*~yL}!6X^t)=+8?Fqc zY@x6xcwQIL%SL1_^dBRAXcJzS8eZ~`c=viR?jiF-FU(-Rq<3kk2Qzx2^Ndy&_G|o% z653ye>m7!-79zL9>2b+*=-ss9iIE%Ed2x zA0aIsU`k&08$7DEupMeNy%7|y#8pT~;gZsIF`|e)+JfSvuu=V6k25!|XwNpT!)M1H zy{^OC9`j%!MOCl8*baF0Lz5)uh>Ba3@Ri7(sB|>L_mXLgfcP8l(~o`~@tF-~z3SX( z#O&-d-=vMR$!I#<;#J2wM{Mylwof%|%^V!MM+Rt*etX4u?tzF{!a_wThN&Gtf*>JZ zeZaJriWW}T7-&B^kv(8Ufl}uQweFg0eCTQ=8X->f0$&;L3TpN)?vu{-@6imxF%K+O`rixPVbH4Iy~QJSSCLz8HMNUQ#0k&2al1ZN0LgU3 zIQY(xyzy_BI|I>Ro)U|P{_%`PRcc~({NuzRCZ(?g}QMo|!0-CS9hpWnOvbzv!v zV4^)GaAjwDYkj!TkEN-RdeY#@(xwIjyI0{s4^sCXEkTB6r3jb}sO)f#YDls{YS=eJ zh=`hHRdYTx%MKpKIX4_jd9Gh+`Gqg4`~jQuD7A^?I$?`xPm8E>l>KUV~g0v*5!$8S*yqTuPO%k0uo883plH^GQW3Qk$olDqWV2 z>I|%?R%@00`JR$~=d~ORisgGk+CVdWt(-a*si>9GdEO9om?1 zfi-Q?miybs*O@+JLb%zRx+WLt)@z@I)m7S~7UdqSV@U!i%Fooe zT^Vxp`GTf=1nZ$LSjZ!Z(6hKeJ-CRMtP>nUWYF+-^L?_2{7zqEh!e}|{EGm=8d7zZ zz%Y@?kLL(qK{d{`2t&N46>Or`pfUE3YR(d2)kaCJ@WvazQu_=Jw|}_zA&T=F=^d$! zf{R3Qt_%%M?zyXInI-6x+>Y=FZ^r7n9ZjO;pG2VW97YqIN2AT_3o0`_AuL-f1FTYE znjTeoccnw?i9;PUf)|Aej^u9Ne&L@I(48P!O{+4xveaA2!=_G8V>d=6v00SvIO^)U zA3s<At=nkg$<~q@ z63PtzZ7ga);d zS+yURjniqjQBz%CD$t!emhgfb)cNToT z{as$2h-{2(Z0){!-!fK5cZoZce2z1^>L{u3kY*Nf>vr0Rh0c^@0XLu%=jDm6pw2B; z=;tfq>ySURo+13g$%NhAYo(*`nr-5L0r#hXeYishW2<(x5qHZBWt?8qu-T0H=JSkK zH1JCL=b1@xjXe;lN(ePdsn69amlE0uzCMru95rKT#9@V+=edyPYrE;MUVWR3e*W?x zTTr3&lhDDrB?VHm5|g1Pk#++KE&c={M7HUuxRw|LP1o1h`%%KMZArfL409;2jPu@T zV9|R2gW*DFqQ|f#FG|w*KK<72t?V-@c__KtmRPX~H{DrNoteG! zs(WW6^l%AFuX@wN5xGySxb0So5;tNA5{KdBb;%LQ#=(kfmg<98y374ZGHV#b!;!uL zOKSL=DcM3XC@DqA8Zz8cLXeV4nfx~&X}zQa;c<|@`lg41 zK?^nh5>#K(o2Q@t5upBk^SKVKITn1TexPp-CB$5j!0%#rC+2po{0QZDrMVLwW4I=< zT!YPVv_$})vnx94A`eGxG`zjpx(AnS)3o$aZf;tN^ugM9J$L_itwm=ZN)?O@n^r>BJgDc^hl&R+qZvTmt$b!5QUZM z6%G0d24CV*N!h+}k%aL7Y4hW28Er|+FB;p!5xV>OgTtSiJbtSie-5SW9~I^u*fgQ= zQWg{8xK_Vi{3QsgL)}m@hA_gaxAXZI8dzR3hOl!m2I@MeP6$yv`YHV83h{ujTKOcv zdl+-jn*Oh>=bo(zCrU2l<;2y8w-0iyr0ovLe9io$k@ON58}~hbZ%+n%Ei@Beb0Rva zQQqI5ZLwo(gN?*dKGIstZ6fbfK*gK*${mJ2Xnw|5otEZAcXZsqLyoPLBhJUgu}iYw->X;`VLIb`Li3V4ap)%?iVBIh+r)(ZYeF7dTh&U|%<88%$ivQe)wZ}rBjcbnE!P#a(& zq!Eb(NbETfr#7%TGxQ*R&)=T9py zaQ%>}ucc{xkaid7w-EZd#&pA?X-i#i9i#mY!x>}AN2l%O(p0r@VQ$0L=t#1Rs$%Ox zXLqlX2=i-CORaj&kCDMIN(MB;YH8I-4-Yy6;9l9evWGfI-|ToDo1PjjnIJ}+Z8xM7 zhEcEc!)M?Czn<(Chlzfk!!4S$-A9~qcK!|}KrIzFY zUL&mkgzfV?ImXGc8|4(HP#zXdCC-XI5}^z zB)@fJ-9(;Vk!A##GgS5`v)i)|YyvtWg85`(@>!v_(=MFtU1z}-Df}Aqs3|dGOx1F# zwJlSneaWG!k9VZkyi}>H;8GuhJ7Qlu)l7vZuM=F|3j)^MFIurXsRcjMl5pF}4DozX zZp@SmL)w*3Y;7jxFP_eie|pSqiXUz4)f|RQd%ONFZ#DENq!-a<39pm?R1ufgRfycO ze9O8lhLqpt%h;z=gpALIT1quO>a2bJC^YC4!Pe2`N{B1Wj(Vtrs!jfFIihcRFqf(q z@HrPUI96wQxfbb_gK-CL@-+pM_N?hz%3hZ)<5wKc+S|MYC7)>IV;%;K_AkFy$T>p# z1;9#^%!5Nud~iIl_ywc&QPTAn)1&LduHmZPgAQ3H5OS^C_ZQv%lZVM|?t+R^H+S~i zo5uo7G1&!nvZ1b;rOeR2)EI)JU;bRfll}!|Faj>@eKB#X!= zT0>#g&%*77(-hkHI<;-*D}($pq>PcNOz${P6(2Cjr7c2p6jIO?m9JJ_mX6yN{w}Fl zIqjWG;2=O8zld)6`f#w*KJTzQd44fM)5^V=sM7XAE&F3dH6{2kgamyu$}-*73Wu!O z?_!+(dw4gykQJ6v{^V`2gl_8~f~~ zMVLJ5l9_+{LGlD!aBRUQ7Myl8l(@+3)oT#QfRFdmK3=f)o>5d3Nx~#ge1h}HI}(|; zM`~Hsu8`ho%?1`e3||`nr!}ctRy9K5za^Vjx2u{d#Bp;4`{*LMNXQ@?N&r-l+~$v? z7VVKhVl+%csI+)~1C#IAW?%>7IGqUJPX%>GxD-bPAYg{G{C?*LQQ}0UA@NjoqH_4c zqi)Q>F)}!g@^>H$|Vk!{S)355?3D=Nz~{}7I|v^*MI{_fCva8en~NN=V82FT8MhA^iQMMCl#`x z-x%Q2*W}zCK2LcnUnfOp@AilVaeHlR$(!x{IK`7z*yf`${ROJ?FJs)RJmKzG9FKSc z_ie4Vm%K|j+>@!0oIWgAu_MCaecJ&lWIu2VmucIrs)dfbC9|wXG0^>(__vo;;Knq| zpQ!{K)Irr3(u@qQ_o4RF%{jAWZx(gX^}9#O<+cwUFr!D5ux>Qa3zH-vNDS7#8*0dI z)%1A+wKPrVm3_gqXB9p382t7w_`IaC>y_I(wo+ZZyD(+gzkd0!N#r-Nf`JGuKCiR(I;v zE>Y;)Vev^E%a314n6%8L+YU_3&dE`62{EqhhQU6zTn?KUq<@@#;; zjnPjy46juHUI=waX$UgD)Jh{3?Cp(N z=ViyzqVycN()XNhnRfum3TU;3MWQ_gr+%1p(8Z8X{DuyCBL1VH6M1_3U!SO}mYU!0 zwCVs}P>2KD+K=@ze^@~0{|ysHOuo$K_luI#9E(9F@aJ%S@xa7&(h zPw=`{=-_9bSQlAtLcrmS&n)n_?|x_~ZS40XHVi0Z6xP&N`4vRjaH0aX!GApDru*~D zP9hI_N%a0##}_?cBax^OV(z(6{h({;d`_(i8UK7ovQZ-0_j?hx^6x*P)n88&9P~$L zCQbj0*nHif?U;obiTvyhLpv9aM2alSmOp+=4%rZ6j{pTilM4$aC5M7?aHuT?iRvJa zouO8ismgid4W{+98JeTsi*4=UE_qQCbyd075Iho;sR5 zU46)F)<^&*SUj9VHkBLZ$%Ws%+JAJExL8BF2tkF+bpA#Ibw#eR!gv{pxUN%rn!<|L z?#}^FQD{u>7G6fT9m2|es{F+z6)sOt{Z~z}^y23!8X}-=+GxnMKtz|R4Cph+YXsUB`>McEskab()A{2=jEJ;tL4VijneYaHedQWTb=uMhMlIyVk<0WfnV)&dQuA2 z?GlM;axrwt9~m|h+}xaw>b{dm4M484wO=2!y>r1_xUEXUFh+4-fhQxzR;{h zkSRF>Wy1`L)US(X!gY#Uoizb-y!QKB4XeBsjZrHR*Z!^yyW%^pgl{GJLpFn{B&}Mf zL;o6B-eg!o8z~?cIJEXp!mWl*#HfuFP()_kv#;lU4jd9!ps)BfX)^veDMOcDq!z5d zlKnYF1hAyqcN%zC01>m`PWZ~oRXo5 zKSgduGPnKu(?c6$AX3O->Fc27b#V&hlY#Hti@U+Jk30?Mt1fLVX2-p@6z}tJSbciwg#uFkM@&8WL5U3fjwvy1-&o=O)+J$*Sec?I zg8b=fL)Ij|7*leCZ53syFm4O0H|#ADcxiBf{ema?bT%0Vun8YW!l)!`LehI z{uu4@wdB!|7uZ+;1sZHFFfa@=)dC#>njtJmT_2;ZfnDsfv%X!nVU~y?Ml~BJQ!b*_ zdFKK0rZ`G5{!9+i3_ zo&-II${I5BC%&+E#!-OuxC=xhnf26YPUnj6oMHk>@}Tj|w`Q|~*Kwg1V3b73u;V?c zEriazXKI+xLIek_SZfeIo6xY0i>NHcrAnN@j>|fK^7=UNCLFu4_3cu%RD4Vckr%b+ zHtREZ9+}#E^1FGrfSySnaE5zNzOjI>b4|mqPPgQzdChDkjXJHdz_dT+xdg)q`ne{> z-e^K{(ZlyzGT}TXO&pEI(U6;C9G5o<(dy~E3cDh%dA36-GFOT=`rTO=(m~!aVD6+p z*XGID8mnL*(3o^=X}50|ox|b}7d_7Bu{F;92y@>7qF0z&7Zo^y-cwEl?T)+^e!s_r z`7H+@Rc5XlhVI9p?M#$anLI=T>-{`p9S{B>DNTm+X?|eb$cOD99Q^9)FVy@Sl|5nCG9`#JT zTgvfEB|RS{=EJ5g?l+_vsmb=T^3p}wg2 z8gto$BCNmDk~cSnOdZ z>0k*xh~=}K5!i5qN&4*E5$wzw%H1$x1G|LYdj6LocO9=@TJA0Ofr~$y@e6sB;8tjO z=2>PrhoRi{N!ml|ye@dJ?0-T|hwT8B&OSE z!6Mn^FzNGmv~s1-Aq^)FD06kuOlt!l_+M_RJ>izPt zqLPR7ZeWrKYzdB$+?(NZ!Bjv+_SD+*;?>d<1(}U<=XEKrna&gD9JT8D@1w)BGyx&X z%X_N<1vHc^`OPK9j`DY4fv{2&JZ(F8e<`ghC8!Vmlag&3p=*3~R%Oo4b^o6a(j5T= zZI3`8xrG(s$1w=wE62l?ed+&aZw@xDO){Cy3LUNX-R&Epl?}xRo-9wd4ib8TW%NjH zT4n+BgOqwYPXrk61DrE|T0ncALm3a{(nLf4Qr>K7A-AV+^SY#@3qPb~on#3&r;M?u z+3n$=ZKJ2LMBOc!B?rgVK$5lhqoh&%47=?cDhqv0U*cfm_r-_v#$@vhH&z{fPsNXZ z`z@;)wOVJlYdY&^9u)2x@@a=K8nm_aTicOY$#QMy@W~qG-!EAZUby+FoWeyiN*7;F zoF|)c{R_uARG?bOpMa7$+%eE()i~+l5?;YwPJ8rQ9R_-wie{el#yS%D%UOY6D$VIj zk7;Pwz{h(PP{z*|F;K>D_Zogv1LCP4^9Sx>NLX@~LF9|R)_1vk&-5Uj!ATdaI~O00 z`gxI)4-Vp=HO-_BPHWxzw{N%g!Y~}v-QI$?WE+`1e60IRDlJ~ajcdOx!Tc5NE_1V- z%*Iy>fhC3(?vNaoR3#j!Xx-i6pCPrr(P$*8*vJsUCTZIU@;1?i%}l2;BdZXpu0Y$N&3hoqG=u z*;A3)9e%2rDD%(bH#j^nc8RDb)7ZV0(!YXYiz_f!LsT83Uuz49WPdKLQ<=>cD>(OS zu?Q^rWw?zpSAKJ~*I0&-clZbT25;{;x`rBV00{@5=R#1S{2{YKGroQYixJ*`$A-Xa z=IRY3)V%zykdx^P|4BWVW3hlMmO~TSUlMi)3q%evL4{4%9%~t_|0|daLQ(&RF|c3* zK}D$}rdo3Nd0he;9mYdZT0T)5oG%7#%A@lXy80gXi7`u(#kd|(hO0!lA!%ygvzYk$X zW8<4FEeRF)IOmA4nr$#|D$ANh(oZZdtdDoUhj^YrR_-4>fHkfEMcb^?fwyy5^88z_ zW^J@QSr9|yue0a2*Gc5g zd)rGm&x5!omw#C*Ui#Tb29$%*2 ztSys%vAWpqLrZkyO+dsbj-J)DziOXiCUfzA_|3~m11ov8=^c(Xb;I8+aGpZ60;p}wvq z8HdDh$0zB{n-5?(UQ1V&BNor!uLzk+-6{I(`qpi0;u?=a;59OO7>CJL(`%sdw{L6n zL#Eow^Uyb_A}_Uh6?tkC#we8E8oM!eP0sAR&9pNGZex%6@vQ}7hbZ?+5EvYSG#GW`87 z8e6dBhw5a7v3VAlAC$u=4`TWO<(MCZHYEtkIX7FkZUu!AzA%P=;*+;Qfyhw&{=2)~ z{!Wjn4nDbamy!>1)_YOzGwwl`j*eI(x%o!0;qR$Q=U~7jrATk2Y~?x|)x$N*SiCZb z^6J}Eb>V{XzD8~eeC@tB^}9(XSNPwm%W#H4msHSy(*dw1#RaW&rpypc{6wC5bq61o z=(0#R^U+Uh)79EZ}sh=b0-SZ<|CZT zIz9HL1Kpx$cn+i4F(BDhV!#IfEf@YkB|&cEDFsEq!9p={@b$i!Qe*fl;4|pb!oS|I zm>nSYR>TW{piAP?pbI*Kf%JO4?;!Zxp?Kz^6+~{Q~ zyZn(ITPsL!EslwR_>*F1Hm!qCBn;+1tpv>4{V90OknveC*m?ikuN*a>zSe6n7u zyCTq~OkU!Q-DL436Jw_6l_qJ+SxFXBBo|g4{yz8BgKoOoZ;l$+lCa{}k=ze;PPDLe zPCkb<`7fwPtyP`hJrPv@``eONq`SCd%>OuupMGy=PjSW6qooP2BQ_WEEH(!1u;8SW z_+{K}q$;fXR;4nKuU7$zRU#mKW7Oa^7e4jEi@|jL(a&8;cD>Fk6~;1=AZ>6t(SEWq z+`AYe3t#WeItEXExRTDWYl?kt2AxiVF7tAD-M#;p1*pfvzt6os5>-|W_#vh5{>dka zHnX;K65*i6va@_a9||$Q1MUypItt0-AYzqNPN&LBB%_HBLJAYn$O@*C;%yCay~K?? ztXWMzgk@nl-TqBO1)p=6ve^Zr6wL!<2vx8jj#(rxxN$?a^RYVv_g=A_Le~Y(cw%BO|caxfZZ>@65fs)Pn zH#==4Qf4UK@+Y_y{z)kvByd61L$?<&HmcEA2|4%RiV*cnO3POTzYhNv#j|GL;OR&N z%nFts{lQ716%6a1@uOeiR)8@5Mc@f7v4?F+C_tP8J>8t>bl7sf)6zC;Tus|>VK}Sx+-v_&k853(#<9?Y zAJ0pPr>hoVu49kti>@c)hkqG28U5WUqpgnz4k@OqiE!$qIzFoHjOOPvlOUTun$tT7 z<6qLpmVrMcn4Oo6$(6UO69DI<_aTn@l;4Fa|nY{lVLLqVB<-LPR)*ar4z&^o1PceuysDk0qISBh2%dCi)BJ zshEz);o<4)1xJe=pr+H^+})DlgXWyIlO=dnna)@ND=$gF4xirFkg!Y+EO5!c1r`Ar znL6@k&XKt#CLyxD~vCjMR7Bu~3~083PGCQz9la zs~X!!oDkDD{Zp`Yd?w1Uh5Goofyv9`e`In5Lp?m<;|oR9g@D4d z)46xE@yh>zXGtY+IvXgIAmF>@T)9z(1uIZL>I|;7mZ)Y#+Nr(&&Qss#PV#FAFPEuz znxxs}Gs-o-2)sDJ`fC3RwqxPet(iyC;oCiTI@hq9#HN1Vt?$SO8-H)EiP&knth8h^ zJOaCCFnI~YZM`4d4>PSO&D4IUOg&XGZF*sKx}oW77;i_7w+)u)b?N5?i6q&5yLizk zS?Ozn4Nka)#-C@?a#_C8%{w_2=+>r2Bel6^R_KFK_sUwjW)YjXT!leSo*ah!gC8YA za1tU5xu%95>oinQ!TEsoiA_LV=tTeY(-r>BzRw97GAgFjKMXm-LgV?k-#c!C#(~Z2 znJ_3cJE}u?FwqOvi|9740m=9^Rd*1_6_cSO*fDbn%md9$2%6SSyHOaNfx(bR_)El0FXvublsP@Omm`OZO%caM$K z=tYTbT!xf%*QfQvCD9EYLxm7epaKus<6BW%Y3w!}NCihc4<)dJ@#`WYepx3)OB|ua%CS4!w@}jGL^jDS7*63?U zhX%0LfRRt5IQ%80y);KqmQovvOmb@pX}yUCDAv06(`Pq5q_sGuXR+7oJ1B*v<4_xx zLG%<`cw9V-2Nd^K!+Hu-0eRv1KgRlU5G>&76TE+@`N6EVOA#fDx*?Mp%#io(GNZ14 zwSc`jav^OK*4AI|xR8lFVZQe-^<7vA-24n@$k zhwg7iG_#KWiu(0g8Ykcs@32vC8+SzCz*5m$DEQo1P)TMWj{0uM_1VAMfqSLS%!G$U z2N5uDRQwXe&Z?E|vGDu3p1XZldeS}%U6Mg@Y|}`1(wz#;A)6T{Gi>UYDpmvzs(*b= z6pkz6xu*!ZKSTEY$4iecNol5gfb6~J31c8?^SElRdkO z5tpG2Z_Fw-6U;A(H)HIYmKe|rXZpk3X)HK9Gl}nnbf4byx;*|_3-)cdk!Ny&ZM}FJ z>lE-T^)qz!LXVU}{V%!4#UNLvMijsEX)&i!y0OQ%Ce+C6xhO%Rmck%>?7&qBSSaM{ zWpDZyG1F{)aPR(?QMy&OLP&@;ZXMM&jI~b0{b*v;Y>>RpTb0BdIWSw*ZtmFnXk1HH zzM;%O-%;~_4u!$-#t%G=eJ#Bk^$_2KS;AB}PQ-a2;AF~PQ+-*Ch^%~xa}lzxrkJR(9& z-nri%##EWx6=LeRbHp*eF9U5zs4KxN6lqc;(kA0 zOws;PUm^&w(LD|I{Rar1DBAFr4F$8b2uBLF(a><)uyH)#^YsyEwZHhF0!(fBgJzV` z4E==+;q2)yNh^OG09xcsr6*iN!&J@^P^`FgDO!UPt4*=XU>(n+?Bu+qE>_Y1tDD0<&NDLfZshPBcHRFl~8CVNvx-Dg;jMX*;T{ zyNlu}O<+-a_pNr#Lr3gev2Gu}J8WA=O{V@4Y&@@5yUtdP$MlO<6h613f#l zL;GK^6X=gA*$r2jVTM9LXwGMH>fgiq$-)vvzY1iW!4W+bKlvXYIP_^T8OEHP2@(6& z%s1(xt`lOGub~#7H(#U`ouaZHzyHWkR(GL=i!gTZ%X2NWD8~MoC9OtwmDR9!=bD(| z_xC2z;`3*exCr!Z`J&3*^b$DouLeZJ0&;aPE_KL&-1lgehrl(BaIk+QLS*P+fw7-_3aO2Hd#&5|DaPL^l;+uxOT3byvAHn;VB4Wbc1Jb z^-J@WM>1;yyjJnt3_iX41l#*f59GB6Gr}WMa)KndIlxryfjN$|UTe2mmg*KRFKfk2 z_{JiGwJlEy)cAqfq{I+v)J*cC{$=T)2sEAq{*~4WA5Kgsfj`%H7y;TGYMtMd*niH0 zln*}Scbs=OXjoVBj;EV*dR;6ydw#SYt>lGz@=9`A5L>|os{nDNT{A@8VSQ|&-X*a?!k zx@5tK$p?k}d|IO><%%wPj)u-o4LQ`K z5aJ@nwm{!%bXaka+Oy$dv>~sjyR&ywQZ1v>EAD_~yLtjHzo9X6WwsGMxHGiTvq1`^ z`aRT$kdveWAIyZLdC~BJ_yF02LIY0}_q*9$!^Wd)LgqvaW-aPp>WBsY6t6R<*gDn( z@h|MF(~Z?a zuOvldJy%`Ba~X@#0mOKA1-Tv>g(7d*=%j+l4;EX9DXUF4&OiHn288CKB37kC`XFNs*JUXt{Or)JIhaJjUeo~tu}0+eCtP|Ym-(`(^7`BK z9;(Svu}rK$VoZ!kR*-u3n|)R+S=9I_v}G=>W|`35M4 z^;jKUhGrtp+Hu}kbyRLgvcy392Vp}qqO?7YklE?qRR1=n0q9KCjrrTe;5$0#umkwv^gUOh@W}V;40xJv)(4>zPiII;266mC{``%ILS<@Ve;386qYw6eZ zh{=VdAy?lv;}j5}^Q#7t<*>b8wFPulo*wdDRg>pX3o#tvulODyfAeiso}}*0j7`4; zPWbfaMN=^80OpKyRiCirwiLB=IA3dUv9sY!J5f9e8r53fEvJ{ofKO#8vis%+`xKsN}8{IBf2kWcv4s|ZC1S!Plb_w4d z^48XRQ52D603xk%w%FSINZy9zOp4`>I1;jeIm&?F_x~-s#_i|fZN)Y@_-+rMPRgI8 z%&?r(B&lTPYaY-cK(6ocZRo5_nC*YmZ}O(a3%33H!C<;5fq6&Db3>!WcJ~9*U{2X^ zJ(_*U?iA0++-}ut@L;3j1%q_PWFiGS=l@JC!zv{9Or71owXf)WLy12u_#vO;5~wE` zBzam^owBck#mPPzZdbEWIeZMwOo&elc`tbWtxiZF&Atfq^MMRkfE!IbqaeX-qwam5 z25?j7hLBFr8{=}97hIz-0rH==&|e|WktX^&;D}! z+VDSjeOMvTY)7bZANOdu+QX;zHL}2I7-`cAGmL%ujBu#q;5-Isp|>G$HCoroZdFLn zBWJ3=ZZD)s;#AUrEI2Fqr2H8k3_<+1j1l&8^Ud9Dt-0~2#7B^&C}(T2dW=a3MR)clY?;D z%6qA4^S`Wo9nEx{*S$EB66Ed|2yWSQ^$_B6Bp+j8>jej_-*yO5)S`5Ebnkvl+h(xYlsR){UdVpgYdUck< z^FxBFyTUBuHblI_D9ZIB1s9QRHwUZ>I*DM6gwJ9W^&m-~C%fAblRz|zb4bo3L8&aY zUGdza0G@X}1w`?|!(fhr%uC?XHZ7u^JMV%dh}t;%yYv%D#4^&1-{-!qjx83#ivr`c z#7+bOVmd|1(NI}iCu#n9iFjzvk9|A=u5jdcyPro?b8;tW2p+5T*6`@y1yaVk$R}g6 zKBpZC(aCG{>8OJ}oOyMp@b);Lyf@Nk}28D<5 zNHLE73DzG@xo}1-h$kb>hE{l;tc*#MOL%|$WQU=7wf>gdQfGtG^-`OkRtm_A6+R$Y z5oH%M$qN=23pH(PQ|=J1QlG8@v(<%eX?8q?YPtwvyFY2VjM*>Q%Wg6lrMWQ4n-}9USU@&yb+{U*&4L&F}# zFz8#u8kC$NDZH9>ifuh&j+WMK#`376Ov?lDo`2~Y$4IDbsF}&zN9&2Mp<|E%S(XsG z`?pyT6$73{dk;!q#BGxLJS+1U1AX^;wWqcD9${V=8>Kj!PVXuD zo21Hy9(RYt)9ZJ|zVDVI$UijPx(E-C4J%)=Nx_x=G3PvRvMKOm?7=B#(g+8BnIhcV zv5?~ahcdHbB9}iT=>or&K0E3ae+xrL7`UGQNG;C=vQin`d&}i)#{k-Dz%}GU$RKbh znwW7#+uSi4ha829CPtZ2amI-=5(*koM*y_^%1wOu%fXcrAkt1{gm#KB1{ToUTdVpTX z-fqvgR#Z{>DK`$YopOr#{J|Xr5({Bt@(RcK*N&+iDkI#(7^gXKF@+rNwW_xrOIySY zi_!L+lpkm=r<|A0`-%lB_fOdJy2&@IdtNifmP6`Q6+Jlr$~;I~ZjY|yTE5o~m(yd? z*wIfpeA{%fun=;L%pJ*<$F%yfK2#>+1KWNKt?p{Y!IKiMdAjk`{qo34EkqTB`amxo zwSe6_l#@S>PL|0Q3`l+)6$hIaxVO0+vBp(@C@;KrwhFtjA|@9 zBU8p=pC~tmfsQLR(WBb+4fXU~_Z5Ydj(V3F{QEaY5sFtp9i6Sh_ea1RY-M%tjwxcV z6h8enoX#hmx%a2#Zkc{5%Op>lo=*5kmWce5CuB+t03%^=J+IQYr6o}Axr5;F2Q@tq+Pp3#m#k5DmbUSA$3fc#!%-|3`ZnTE3}l`=$ny>@tT=f$Hoc-}FqBUaE3a#> zaQ(eJSQ$Hfmk|8Oc}Tv$6hCL}yHluT2Phle z>7ayM(Ga@;?4E=Vz25&Tec_pNy2U5=xrV>R{^xL$%WsUSDzh(6k|&!ZIKb%An=BS} zP>dl0@1w0A?7Tmrll6H0#Fx_J(bF%-*Jrz2eWuSpg7-HSRaJ4pSoMJ~W}U%TD?ewx z)&<*G`H*KwIo=~+kWx+l+KGVo0HFeyl@U5Mau9r~pbOe?rl;Qul(+fhSyN;0U}hY% z&V2Oh>OM)`ZPCK4W+e;+KPM5r5J*V$rkqaSe35s788)rB@m=CI1zZmcLwcmE_CES_ zVh(={Qu|P^2F9@LV@+$wi``57_1wWHHWR)S^3xb^nX`D6MC@^Fg9#&)PsDn*lWg0}&1p za$R492L%eU%{)LX`d+CD~LF2?9@p znM~lXQ1X~zF2#L}iz&1HNf3z?_^zAx64dd`P1MA1vs+o8;=}rA)NKdgmw_2Yl+c*o zO&0bUnpgn0<}<=v*)vDi1ww98*9D@CS_mz_>DB+=*^$OpPX=hwAPM{d?1B_-!kK{W z<#-sAY_z}EuZY>>t?Qjy+7Hb+7cT1X;tc8i@}8tF!Bj9`5kchB4x;WXZeM9IDk%RI zVKrbOrn8d$s}>gI84`B*1ayy35xc+#w}LMBbn1_MZ&bMQbiWb1Vo}`K8bIyG)Y+|# zGnehnWw$Yg8lh!(-ROF{?oO*HE(D&@{Wx4`quiOOVw;JXcs*=b5eA;U#eJIgXyrF6 z7$V|+^}|3lOQceN+DH=%t4zP@P7EV^<{)77I%+PfP)# zLdtQI^Ee0{WP}S|x9+qUHF)!aHSt{nIRk_4P!?%Jo`kX-TvX?^Luhs5zz=bk~L;U_%*VgbkofqgB;KA zRibo*Y)F(x!GB#$d#O-maFACN{yWHwb1srbUkxuh*=sqEZzLjl@7dW*qPJ#o0nY@P zK-3|U%|P65qv#WZOsgTXI8gj;|aRD+d@~lJX4ny2xP#>o5f(0$(oP2+r{C zh`y8?Tfep_aOioBwY-zcRd>BR5>_Nx>^OQBD#L3^1)SAKrL(4YzM16UQ2b#|(=Y#$S)quQPcZuWf*&Y)(H zVf|aIANoIcRcEH$&yUNnDy-3Ukdp3R4u@W`JjmhEKV9k!p_Tbjh{Ul8#JVF*r(3HK zAm*WP6dM!UIEIM<%SDr!VS5J3s;I`*iP%T<8fLH=-%Qh;pC zax{=TYg+B>G|;BDp3b})upi+27VNtnff;BR44Sx_(NMRY_q{k5$&*=fQApeyI}Oa@ zZ-7CKYgGYY5hka3>Q*7gVvGuXFUIqoX^#F$9b!HcH((xJ#6#R^v%lC*98ch~o3ySi ztGYimwx`BDEq5V5MK`>?gJ-qN@lfU`Q5xP|w3LUjUdT*a>X#PmI((%*VrL(>9|qIG z+=EA!R~r6YtxI%)UQ{V&80DLHP{uq6i5z4t>aeF?>nJ3L2+D|j4{Qx7byF9VR1_2o zymwu#f;jdu(u7W|FQtGW0nE`4zf3JUAqoaY@$l!jyUALgg8!Ar)+^v zyBl7fpm*y-%ZFX4=VNAxB0?I794#zHZ-eTdj^6d5#h50yrKe@L&w{yc?6@UK1+1o{ zPq+h>o!|E-m6}Y!{U860MW8-d?6}((OA+NTI=>5uqK;TmPs3f^Ihto1M08?kz%MT< z85Z|k4^vN{9Q}}2^7s=C77I*;YGck8M9H#3pH}o`f}UQ+eoZFF*VNMKqloX5h|!9( z8e)*B6=U<4c+>Op?WHLXA5<1h&~ZnuC(2yJ_~GCp)|4MA4V{SKko*3v0`bn$w(|iB}pGu|E_PmhpOXy$MbJ}+^>Hn@c;A! zp2i2vpYQ33#aIB81Gg41g3u6u2cI z&fWEGQB`N-KYrQ`31bG(S5q$|PRSc@6{pvFfC=}AAN+CFm-E9CuvaD4%8^MmI|Lcr zJbRu1M`Js~{JI`V6rRD1O}-?4B}e?%{t3WI=N;)#xM!|p^l zA?+WfVNR#|U&`Uw2)D&nLIY=IcT$RqQ|+?n^a_y4f)9JD72?ivh3f}_L)ivKH9#yp zIwEaBWvoO%Wi@Z=40d`OoJFY=RL?px zgMPhZa%liV4RldnHBZhxp?J5m3wZKS)9aGCl&o0={&9|*v5_(MJtPcLq>Qi{l*Nsx z$FeQ^Bb(7rR^=*2F?S(&cKg)gQuPB?2k+8y^qKbX>S7J+W9n*onj(Z9d~l8Bbf=fd z?2`0LiHZ^5lu$NV$-cJiAGO6G&*s4N5Fb}lE}wVxqLhCz)5biO9%uT#hgbhKk*yRh zqA-p)ELaWpt_k=jyeCy&kkAw6giJk4V|0sJ z0xvFzg=|*r6J5sBipYJn*I39bP))`N?eNDNEBO5?uDwB&%G^-EVy_i?ra3Jwb3lPB zw9Sa?h;U?G98RwWJV)d&5~#slHb>Y9oQp#|>9&Sx3tVF1b9%9RX;n;)@2O>g-GRaU z{wc^MfcZu9|GI3x4iU`;g#89h3lV!Wbh0*rWXfOO1wf6zR1Nv6f0d*I6J-oUC}*-s zXy-d{`n9mSzCMmdPPrKOw7NH}zoM=($FS-8h31B3NUrT%T6!T}aM2{pvPi6P=GM$5 zQNz|il*K5YZcB&jp1!ywWzUBG<%-_hnh?RG5g1;WAQA&7{4ei4W}(Hj(9w_0KB5$6 zUQ%$^$Zh2L9qXV0vqLI@1_r8E*~;68Le)yc&v&fQlNlqCDNS9?JUc6DxW?3wsB%pZ z+UjKeE+XSnF6;gHiU2l^Xjb0U?_yKAlTm);m7Up6+B*iek;DaDM#PPz1IT=gIPzSb zE+M$#!I~TRvm-bf_IKS^&-3bAlx#GaEQ-6O{RNgfIUf-a72a=DIgZ=cc+Uv1XTi^Q zzEzp+ggTnkS}XnOU_a0vy16>dbx!AfHAh1|gK?kt1#3BxrGh@TCY>x=-A%jgnILX=>SyfABp(f`r z4ZHIHy4_YRaXS!0Z7uqAiaTf4=H)B~fv8*Gl_def^=ujenr3mH9=x}57NY9%`sq?E z0!tiMo?r#-I(9GKWOt0JF>XS;&M7V5ZnFo>uagTY1Eswx;Cm$Iwyfkmf^=dg7-cnH zYW@)^eAt-U!%i`c{7&!qaI3uE3x{Wt_Z(5@)RDZz>Mk{4XH4zHjXax)`BSQyUi?em z12F{`(J+2r8W@aWa^YYWxP%)kc<26TUF&KZW3Wn<4KwgC5p^e(S_F%_p!|Np3Z?|7=;{}0&ADr6*ENkS-+%pmc36# zNkVprWA80HPAGftz4ue2L@E z47UrVr>Gv3vpLpzZ@x6{Mruh-36`{$eaKHUt0u@`ogGtSsSZA_%WmKd;%o8tPPq@ zi6#SOi|*cLUO;Ocf!51(=?t9DklK@*skcv39#c_e<_$zpGjZG#&M`xo3=!#4ja7_42AX0=<_`%);R>OC|^a$jYuG&jR2 z#U>-rrv}k27+ZO1DaKv&AylKpP|P6ewXl`!{#=9y<&=GEYwP0gX3#CLvl0}U)KK2$ zj0+I-#t>|yVHmTkul=qIjwpl+re4;vMfxo#F0t^1e&*BbE8Pjqys`Y(CM({?|BwYn zAyDBSs?WTj9+Tuo~M zo{^ClV2JOpi@99A0f?d=PtGLmh8xKxvSB6G#oK*^nQV##%lJBQQ|rmX&;^C&g$n^@ zaTfVoh>M&f^3Og$$l^2Kr!=i)g#|)Bq{9nGu&!IcP6&wC=VE!CyjK}Dt}L8$E+rFg zKs|ZBkA0KlS>hvP!IQMk4YMVn`J?RFJI5}Hsfbg(Pb+-*@h<9UW)ijS@EFvh?QfSZ1 zS9bB%oL3t0FQtt##23#%PvS46G4WiBgPIPs%3QzvG5YShInPtB7=c(``}Qsl`6G)1 zAb+&g@rz&)TNqm9OFCze5I8z)cRE}u{jzQFuZwQc!lcX;zt&rR)*nRjT!~M8h?M>O5FEisD*ycQVsT%+$Kev3{9Htj5*2<^Znc_bqR*OpbE&Ar# zjryj+*<8$XA$Dy;w0JhVRa&u)69mMwPy9Z)O zCbLLu`boKbv_b9*TZQ_-`?TYV|1t&M>6OMW{q15Rpa6`4n5_JWP$fzCec+0d61+Y~ z>A_<>aQLZhuMxjv-@y>nE00e*uj4z1n&FFETn|q7uO1+o*ZoO}o!vNOSPmTp1(63I z_#{xmA*6bXen+V$!k>4F5}iMI9VsNV_OhU8i+fB;32h&*UwtUu+uvSu%i>*}C&NxU zeDPF_G|@2m+6lWC#X@7ObmyjE8)!|#V=vJ_s6q0(tn02d`<7#|W~QEg2`lFezNJNS zS>5w}*rm=j*_#WQC4M(WtV~ezBd_NA+*#y{0JzIIDhm6MT%~ZTPHDeoF&Ks*YtK*&|`ApCS>^u3+)E^N^3_wQnll5Ocfbo(3H_b8- zyHV!)S6u9FL7e=?zL5$SI?1EdPUYt54q>ZlG$uSj3Cb%cDN~V+D&^xJg}gXa*ThI5 zn4!Ozz*?D5x{lLGXSO~o;kE#oitK|NlVQ%$*H-ZI%D{(C~IBTBXWu{ zKVNd{RoPVKxM{4vNLKir6JDZ@=+5`OI3qjI7F^dtoA_eI?wd3{kKj|bq@cS;D&esk z2&RpT$C^~z@!bCoVUJ)5MZZ~^LNFhI5o0Pxp&x(o9jtWHcAPv_*e9Ni)vNXud-g1k z(3D=Zh3YCHF{*Nhgt(gThGITJ#*XGEE}|ACD2AbguNNRT6u`_f1b>*pTPecy6#clv=znkJbF^DPwq7Hlx4c#n*8`|X>Z6Otb1@N_4hYs4##3W)*=%G zi6+4;)_KL^5%1P$^?6%4s|O z&rHVcPsBZ!2%wE0zBSY1&0*1nNbHBu1~x#!NFN=?Ny-+CJt7fv zmF}!KANL#g`OwOC@2L1MKK?b|q;7!z%tai1e0pibk|Dkc{1LG9Gd+>ZMp0v73RqR? z+|Vb9!rvh9E}m(+sy_`cLzn(8UYxtkQK0meYHY`8hbGV)UD@YAf61Y~7pe6=<^F4- zTHjUPEVY!W=J`y;$TS(O@4?bX6!MQ{e=6%*uL<62w}c|o&^AK^tAqk2aTdO}3?921 zonE6i{ZEHcmGVkJ`Ue0r#l32(8*=ewGbQDvQF-^_Jsu<-ekl;Zi_)LCrFt^a#=Cs3 z?jDs~TJ0jAYP!soiT^9RH>LN}_1aYcs+A;et;Wf|j4%7~B@OH}gmL<)2yM~$uLC@? zZi)Sm6!KwieJGhAKWrtNEtm z6T(@OqZ@J@+u~vfeq%Tq;n`0O%ASd{&((xA6Q6L0m*2QYvNi`;(x_Mh;D{Lsqyl*! zl1$GbU-s$8*-!?@S|2A)2VZ3!qlLgBNR@s#AoCz4X~%n>w%)}!E@F=@LA;C#@4sPLxbAUTPBJ>(xr<=Cd>5n65tG^u-SGxWEL?wlh_y zd2G|*zI{bA=lN(+Dn22q^=JOp`TkH9-}4ml-u%Ynwca2HqlR}wRD^Zk4nTTrbIo$w z)1wvMl#B7K?106Qgq~|+E~|lI41&a;sF{#~^c~mTyLIpVB`3Eb&dhs!Kl9haA(LhK z^_E7yUava2*|`~%o6YZElQFLJA){07qsrO3tYx3DHoqm~HKxXqBp$T!h#4BI@O!{s zY}jyv3h8QO85%bj#1Blyg-KPP+~7On$5$}cu9%HQ!o^CRl$+tzE>-w3YdGLb9OIV3 z^d{G;9bLifUPt8*2Ub1REYrH9yW{t55+PX&Wq59+RIm+KHX*=AaeGm{v5MLknR#}u zc^%MMKl$U^8k=9W*L*f?4Tv+aFkqW)4e*RnwWfT%aM=;%1{-!$G*S?$cy?W;o)$WVdQg9r|A3b`G7ZI>{ZCY zLNlTK?D@s9plRPs-50x{-h0$(kixt(ov0V4L$!-Z&l%&>sMFzh<+cX%C3;%TTjQa=}=QX;4>|-oO-Xb&+KmW zcL0{acYj23rd8Y^^nnCPq1cX1W){hn@ls>chLS*pBwe+7VUK)L)9c#z4rdNGZpI5l z`o!sOI66vL!$efw%RVI#+D1j=F?LFA2g>1n3iA2=#N9~-SSQO_LARA|n7Ilu90^&h&y z^e8*9tN)+-FvI>JvN9vXbni!9bgA&WfwEgb7dMt)^=Q=pFL|H!nf9JeV8bu3D}XCZLMESugPb6-HdM!?Cvh}RE7)@ z3dk0Feb{Lsyb5rplKy`H_r}@{{rYw7qB&AFX_}d*``cG`gBqF4_vH`;Nle?{f+izj zXT&G!8?~fwURS;)^xTK9%psUpq|eTJh)-K6qec!PD`JiC;Cs+1in%n1eT;~rS()z? zZP9tRN^)kTLy+}T#|JZC;TbQV=sc#nkbw?o2sV4VSEiXv|8x7wFZb27XDiG-B#0!B+!YI778-SOA_ z#a(X>WvjOPXlmQf{~@C_-59v_#m^Z2o>s`pJ%(4aeEj#Lt3(_906+yNzEWO>-Rk<&>c+e8afLaa}(;oj+`<1c78|y#96h?wQDm$MYzG=z;z;cq~{n zxz_R&(*9z$!w^>S5uoFDEP{A*y zznT#FVR0tXv=%yhUB~$<=2`-kOvjHkg6k(i*s&8Yj_UsYq`hl7gv-sfK6$R5MY1Qg zb$0APCdM9u*wqADV{VxpTV#aRO}>OakuTu7cX_dUDNP=<_76f?b}0>Jo-NnW;&?}& zwz;&)(5I40$twQ4=k*12V+v$^j^y(<*}hPY%%0RZm@k^N`o<%y%)haAE*ScxBU*$a z>qRmp@C}jzO|Y|pI}VG{SdQ6>=7m1Xco@yCPHCO*bnnv2)j6@0J=D^8(qQMtpdq(|>nJa0m~Ago&e<;{+&8JpCfq zYdK{^;NN2DBSR@`MU~PWyHvZ1AT)geW1)OYzG6iq&s3TO1oSt3aA8=Y#AlOmC*Q*y zeqip{%r9-ql3d3}O`{bSaonT4^(@Tl7?T<^ilVSNUJvmz!#Re7oqT7uwmzOYnr!vyYFMk`$8rCA#lx^&Y7`&4lo?&RvtUHLr0-$m zfJyOS>|Q&q#iE&-(!R23JYCLm{Inb!UggZ=uTt8$E-Kw$NU@5!7 z%WqFE`HS$DNgaMw0fI0c?)2cf51ep$%yAi-C3up{NOS)q*%{82sjlmG_D`|f>9L1I z%2Ytq7*YdyHGG05kH!HK?uwLZ-i>s4aI>@KpG#|Y(P^3EnYa$tB`PkYEz*^I6*KD=jC^zP-^Dnk?G z&gs@Hb6Ys`ep+9Oga?OiA4@ddHXweUCklzA?<9#7rfYY{N84F5c_j7Cjt>79Uw;Q8 z$sq2AdPH|mpg`QVDd8?W&&T;`7LhNU)2TLgpdRz zzWUUwwA8OGXHtIg^YbtM3?zx1Bpi7KS}@*v9LPf1 zX{6ou{Qb+5{%z`tI*FSlyYGEp0uNFrJO0{TKAJ7S4NNO=!lGP*!pl!Jlb>|8iuU?pQKFGMli495sAeK)>5R{iHSsTeSFdNUS9$h0nBC zU)Ry+ml6D5Vy=WrXuG&PcboLYA*>X^C>=)BT5Ry%ff^;z#UtW9rz}Ahh2#tWFMI!?Kex#b{VfI@m2~{U42B*p}H) zinc8>BwsW4_i(N{t8w4ATZAh;iL`+Fzq}Y!pAPZSV^LwLuItO7rjY}kTUcbXHBPS6`4GxuR5f32l9GP;oc4;I z^fMjLkOaZ)M)`-G&~>E+XKNo12@f9+m|vr3fCW-icz^Oo(tcl&m9TxUcIT{M01XP= z04ot*=q-Fvl=vd7;KIS~7&l=WRj5mbY3xt!cmAIifV?|pjk8l?H^!g;?Vo2+1$S!@ z9`%y5+=8kTLY%)4KTECm^kg<*D-zplHqdoge!kIzAH|03CrW2l2iym|#rZ@I?0SRjYv1D=n$UxeBrU6D@uk zORP?yC%?EFDb2?y-39Z#F1W_qX%*%|aU%p|;H$PD_-*xRK0kJNcS{*5R7%# zYX*7jQs@)Yd}EQ_5S@_*9|i%G@m;9&aJlfuSxQ;xe7}-@I(+MTA;u3PI2YVY)>vim zc|G*a<}0qRYVM=P%c3Jo|tj=W8odPu?i|aM0 zQ7x=C;;*ErlI@hrTi)N76NVj<9b4q;N)nAe#%bm#PXv>Jq|YmxTUTDteadbcf}CRK zXpjRjYe+=2x4)l-;4yuPy5G7*o4j6v_9}2+N9k@x{g2ybAXuw-haU z;vsp{=@=h>9n$VGILbMAX7p(@XcuEXb<+T(*#G({kq%d6#}5@y!66!H+$UDuu9d(P zJ290J=;olLhrMr=?DEy-&}F7PQR0P zKTJ{k#3+kk{g(PoK3Y5f3rs)anUwEE`BT6!uqSU->8G0jIjTj!6cqbQt3+$C95vTd zZrQDquTh?nsHrKXScOcy&H=&w^4aG&sW(d?*t&HE@jxz*WwkplE{H^GeoU+QSx;P8 z@$gKYN#L!Mnqifxi}NFu*(s4MrNKbu9JBR4skVqaKK6_!5+3mb^C|lrwtXVBq~%ld zOtzKUS`$@vorXNGTRdTT3?befxyI%`5W}RggRVG!{s!cZ`t~E3uTih+uKsA&o4*yx zQxfhc!8?!GWUIPQH}V6rZlDUccjzuq7H{}%?qrj=5%8SoQWcMUwX;rU{ZQn2)|s)1 zsDD1uu^vvp(nh`*%y~=WIVq8*zSx#`YQ1#TXj-Q|J3G{WXkpA+FZIe%2?kl+_kx|) z;EcQC*CEw=OFq>d+hHkKsiq7p3Q9r8u!y%C!!6vB?U^$yKv=y z3NPZg)8Xsvgk-v(_ER`Fn|$tBr_1PVLVcdr&0#(xNws7yx7&TN-PXy{yohAAImE^F z$r*Sz25;cHdK{iEMzBt=a+(7abaPmWEk^c2P&`L)W^z6Gp`}k4nZSm&%=yhsf*9Stm3ZAKp7@F=LlP%SO3v+ihVDyqP)Wg z3$;-87nQ0MeOaHomrw?wydy1D7s5l+_W&)@{;RSPs&Y(SZ5x*bo8ZEB2V>vL;h;YE z<7boEeTv85F5{>#IEcdE*NKTLx4-E2;H4-CGr#s$JdqVO^3 zWZrV~^?jP_*Q3_zUhLHm|LpF!9a8~69#dRrKkZoIU=({%VHRX}W*M|2G#o%D(hH8mbW4%k>$`LwfM+_@6j$!%t3Bve2o<_(g%X^WDBC?#~9uy z#8x8HYam}(X++K^_?{nii!76fZ;KWs_kNFHUgy6NOML8-+K}MvPfqX_jB~SI z-=pg88Vx`^D1+RUD()YU0kaiOzv)Iguv+vaXI?yP9ILUGJYmJw9-@BPDjYzM8yDNy zC+8sLZsdjMtlV|}{4s6;@XU(<)@TQdmM_O=4%bn+LXZ+F)+hUKotFFGa}{*M<>1O_ z^yZeAGOpQ=#@#uxTkaN5Rn!4edHR=I>64V0veve6W3j45eMLWh?2qL6T%Mnc;=JmF zW*(*8Hg@yU@4}RFR!jtyHejc_Z@0cupt)LOj|7nL?zj>#O48C}U1U*T(57wmk@5LJ zlu^a=UP10#A3p37lVa>4@~+eY3pYBFxoZp`rOqK&^y+M?o+&7JJLl_;f4zD5<13@o zR3Q_#sa74D15t%q|Wys0Fe;J!7U z<+@e7zVB1S-Bxm81A(?3{i}pr^8)T2s(z#+h=S z!M#^?Ce$}zp58s5us2AsWGPC>pXGmX?{oRFWEjmvb_zLYW?UJk0T-tB^fu10e)MfL z`c~pM>BXIAF4=t)eFKnedkpPO;QB)UQHSIP9CCDB$wd!lS2N)IWvGO@Pb+2PtR=-UFNVG{|DdXTN*N5grH7#NS6)K$RJJGrJhnYM3!fUs!iNq=RR{#^(P_S*2)XMtQrcSYKZpz z1QmpbG*5fMMx-{keUVc!TPA=Y)!1RHo`ON3;~*Cn59ZeQjGPBJy-KdO=UTRBw49Sn z03klI>->A>p)_1sUdL;%@}23I-H5L{gK&Jt$F6xl#4Rrr;h~wpbzbpySDe=BN?*hq+avy?10JWT~b%YC%Z13w^h25 zRw;(12U~?NSjD|3?AtBLkh!xutUkhbp(fjE8>J|wjndBpt5O?Lb3$8nX4dgYBof9A zy4oPrR`UMJV*96DF$I$p)3F&{%wat%{RPB~2)C6E(h&aqxC_c?x}&loCf-MQ~s3MEAqMsdzvvIenCnu5omNV?VLrst#s#M|Y;3dXgzQp4o?nmY~^*ucf_zx+c zG0w2Xeo1pXbzFhscv9UvFk*cOMCggR?|e@j7UPy75_;QnZ+F_`TL`0mb4)-r)*ZTP(G_6LwKBtUd0QwM}E!nsgwf}`Y%$mu>mwq ztG2SZGl?0yg;F){lbTcWTeBXscYGZ$WI35bu>aj4#wb&5NI5=yU}JemVg1X5Ez1=jYzB(OV9Z(Ut<*6A};KH)vrzv6&3ZW##qXFA}#$oX1nbdw(P?i52SL?jXL_EgU@O0FRx^w1)kw zj}V^?eTsOS`o&C4cViPU{MyRaP}iZDoOask~|r-^9<^? zd<&CIk`8^-Pgk89$)_p*X8!wHogb6#oZ&8e8pwvsFQ7Tzk!-(52<9!G7!czO;LdgI zG;DX@V`iW54;to|N~FXbP={wG9U?{hU*yd7x{P`qu5+KXxUJ)_&v`MC=Dtsn2!L-< zro*e)Da>*otDppLJJKOsBVrmJXZy5QT@yx5>=LhfBRR(?fBf^vVV93w68}*o9>HzJ zNVd4oL)nr!p4-JWt8jJc%|k>9LxKIQk1JFOoDY_-Uyz^caCq#^yy_=C-&P#+xR@(5 zlZzDBD7Mi)#~@R3O8gL`<13qsr;}a7TDekB@?F-|jz$BC*$lmwqlen~=-l@%W|z0? z9@JJNb&svV!*B43%tx-4fF{xRftgS`oMLXrIwq?#1u@Gd;^v=5BFlTWKe|t5?Doc{ z+A(Ft!D-{|xrI6u*Q&mPs9DzK*MB)cB4Ws{Vm)voJy|2@#IB}Q7~2nn-~0x`>-IFL zuu|tu*G~F9MfTl&7Vd6TpGV^EUrTkJ;@MbOY{hEV z>!C7<{Sr9lblS3i&M#WjaW2`uRIgn269n^9tJK(t>5&}=a&B6DaGZZLiz>`+wq70> zyLPq1%-eo(2EjaA3YpUV-Q0)f`{t3c5xG7X~5(fDnkE-J;F(MWXlmWFq|LAs?A%kkU=r@ zQNqyKn~c+F39&!w?$O8wX4~opsaxe#r=!lIpt@EB^TS*Ut8+_boqBRR$603#Q&Jzi z%}vif^GE+#Z<7=?SyIue^D^TI!P-!7#`|$B&bPrSg@ZwiPWAGg>M@y`eS2AGP3O=r zj@h=FJHES0)1R>84LdZQI^wIjEHY5*_f!;DkPa;|7rAR6TNZuW9G}aWbel z)ZoD$3F0&hiZ4dvu`H)IG)kTG%!AQ3#Lz7LPDeXh7=LoA2Muqix7&6X==`6jU-jO3 z$S85z_-tLLKZiZoQv7C@%dx>zd=Us zwT?!R`68x-$^I9x)ZA(`?9oe$^m0zdblf$RmJW*Bm*0IsDb#kZ8I@n}`*f&rMy@4- zU1^FzalYru`QDFhE#clnZYj~V^aQTGzCTnQ#NHdFH%Dx6t|nLM&(~jFNRk|$VkgPF z;Im&zM9D{wHd61NAV2dX!UT2_u4;Bo3!OxEzc$A1cC?N&y-kTG_E@06f^*k(lVK z#NNA=t*Uql3TD3>%!q${e%ue~-kWV$>DPp+w5z4uX_@e!JJ&FQH(1kZ+Q04j4weP- z?VSkjPbjTr2W?P{VQJeqFuZI|m%{Q$@OS*5$;)@9gfn}M_Tm#>=?Gb#5bx!Cw!CC| z4HKuz@zJJanjS4&YnctNnb+PkaddOaX!+d^^A$*|G4(KcxXU-fyLi3-YSd-D_N$=k zBaQ9Pi{0y&A;*qNbTIgdA=YNl5=7OvPjqYYrWTi@n)^GtMs59^+EKY=A|C7!enthl z#XIjwE~Msl{M)8?U0Tlr=)faXll- zPsHlJNeph2{yrm|%bagd(m8rp^K#Gosq%ABhqeE^D(VI(zvF(xQBxCv1J( zgg5E7L|lA3V;S!kTra(QZl{{8v;G$<-S$YxJveUx8$s4N;Nu1dUkVqv zC;V0o=$A%ov3X5+B9lYftzb}r*?Os!vC$ApR-wSvu?mk!6pWp+fecXnTI6*1Os#7k z+oQC{N?!97>Xb&)w{5cs7^!$JVHAXyxu1Un+G1{-O5Og{jB1pqizFJ3>r@qN{IM}Y zzS`XxKzLZl63ye>&Z?aa=*>1tyxB|1$=jsEb20uT(HQN*uSjO^_jYp?^1M1D2ZUUL zD7w!HS6l%8(dqzUQQu=z-oyL>yDwXBb05q7)qC_Wn%$qp+2BKiO8&sX=*xbTpBvO! z_$H}KtiCBDX*1k*p>(YoY(4FCXp0m*DKZKTGrg^IiQk@A3js9H`yVv0AJNms*BQ^B z$oymaLSpu(*>JAP#Mgd#;EX=3$tRY}Cpvn{j^blpHaq!V6JC5qp@(*A48r`TR7NHp zk_W)U7v|3&u&xx|_LjrN5XrJ9#e9O8d} z{6%fb%ZZyj|mk{q~uSzu@)* zpNX+Qy7xj2--g%&?N0SYf3x3AJwVsQ??oz`^vrS}E5zT>f4Y8jA{AN*hQ}*_a6aw? zK@+vgxeP}J)#J4qZ0;dQ%ym|b>&n@S16PkHI%uojB*a^Z`TK_VSjB&;R~os=cIyq5F%vYip$Z>LBX(4U?AIg>)V!QQ zTXZiSI<$HF1i5oV2Y--+_HK7v=0h4fLzfvmbp7!gr-BQqbFjyy5D$l1o{)8{&o>IRC9{JxtR*DshCapTAGC4WP31v!cI zsPu}V`Niwp|6q{aurP~qtcYF20<@_7c(xAW*qgV>fm6Uau;uSLEMQe|BVgU%mVLxh zDpqYl*IH@ZJ+7IZcU26veylnFA^+>;{qldPBp!h>u|fpPt;~7cH9 zr=CgIm;Fk!lU^Os*_Dn06$wj zY`>CNfZS^^UoCHES9f*jzR^4D{qb4+{nuIM?P?LDxNs(~n&PH>wOr>{tyd7M2`2uB z1z#ukUz9SDMTN24R{%!8CC_;)Y2AQqQV)jm4@@+5f=At05VyOTkg_|ni&7O zJLtxuE1*AKOG+7h-DTTF1~qZaT?Mz`T-_~`@SZ8r&^2Kk1$6F zG$#v+m(_7;_z?l=9r`m+*|H5Mh1vvs)zp_7@UyEabqzk}y88llbZBg12*&w<$QX*b z#&|lS$>Xl`@vxtnD(r`ZN8b>>d@K)V3^$Y)u{GN8y5?;-Q-z<;R3S~{pp6WN^m)?D@5H1E zwkX-!v|7RW7Q>_wwg8~XPych3g)drc*XUZH*oiuD3A({l&-!V(cC;?|1X+Ekm7w)!6tt*xW#w^ytvcnI`-2QpG2WfED@6Xr!JHHQRO0l6E%;#g;*?jI#ZtIp9@*wBObuuzDrAqog zHqmSF&1ru~g+Q?u%uTxx#-Hv=_NwzaFAVZuR_6S8au{;5H94&1Gi=r4R5aot?R~m& z%f$EL^az3{#T5`H%Jcr1ESGfwA*|(@w z(xC+MvT2WTg@2`I_hwS)zk-_PXb9jZNZ$yuMRpnggV-^{l@&rfUW)>w!laquBZoTp zi?Fn-$uw*4>_-HT&?SxjUZlTgf4`E_6LM>lOuRUM4m;JIrE2tckLG6EO;~HZJP{dy z{R)0;4BaMtUA@E&!%7Gis}}{6xYfH^bHCUtf{kq&`_0ZD@9rVLO*T*MBIG?pN(4=w z!z`-N&2Dq-?RR#POYiI`nj>(GxklMEvYZWe`!I>pKcf!!%~avP7Wc=fY6{9xW0 zNKfqH?5%;HwDblv^toEM{!xDV|M%Ox&;M)=5QvVg(JUDCS-4& zsQ)INu9R&VS5G*Y|2l3qaqlFOPhas(Au@VG90g4UYlkvu&7>Xf&%14Awan1|{n`dA z%qRa*!bWA!j8{4R6{Y9Phiu^iVF2z7kf8>a(%{z_k)*-jKTJg%6`zV8?;%#+jWmpS z>|97GD;3SH`|nE?OU}u2{K;w7Y26(!g@1)TxHT!Qea}P~4$It*WUUO-vcwrJZDE%I3$wO1i@F|Fi&*O;?c3 z*&xsQQM>lnR_?uaWDvZ?QkYYVFOYM4B=*y_t>8YLA+-m*8uLffYUlRTYGTmCz@3>o zMFHbqD^Hfs*tx5Mcjk!VdF@ife4567zn0P%Ev+dJ8kA!lx{9W~hhZf^3!QjioBl!d zrvG;T>{GOvZzp>S4MMs3qS7MZ>(j~m=_8V(>&+>>)7IxrqQ_o8X2cvDPk$NU8keml zs+-iL@XDMMgNtADSJ}|PxM}5hr4~&-F?^9xyc|~IC@H<6|S^SiD} z8>I+?x!PQ5Apj(pq**@h@IXnbReJ!p$#?@36`RHJtY5Zn+!g?{WG+$YJ#x?@W&h55 zDcF(h_-pa~Jezl3gD+~*O0-nBuyB;uHsUw^#80nEtpY8vPP`q-8e(#~Zww~h$|`a7 zhY-5<2-djVPuF4q9;+{YeT$w5gF<@j-2cX-c~{j2Cg!5h6(4$VwwN5O=4N(aO9TU}to@|rI`6nBMY_UeUb2GiPp(4%Wm_P4` z=P%5Y(O}gMH--3A@4VWL_>!Y*NAiHnNR)_XFSk`OqH{4*F-D}*Y=(9#9i+O>U6GFE z{_DmNYObi>QN9eFxik5bYm=%f1r8e}6qo;UBR2Sa3H>B?|884q&hOH;AiM;@FFTFp zB5o6o$+RD_W;P*s2~OfAddgAL!t?j+efdi&%DqikExS|=*X(YKyrMkQ+)_U~Fs7;I z#`+joZIp_e65((W!p6{Vt7Cm`*5a?7WG7Cm+FEb4;p7TJ@ZG_l@!hQm#+dzb7BK5! z6jn7{BweOZsP*;H3FXsQTROTy&-3#2(pM7}6j4iry-@W#$h)F<51L56a$YQ`i!xI* zm|l1^%Om#F4FJ3XvpLF1JgSG=Ds$QQDk6fL|PimD`uid4x@=-rk)9s@i8)u6aM-YrtWD zs=JGsg9zE70!xaTQkO>4u918onb$4d)&Tv)C9U?~7g8_$<>sIR93rYLQ(>b3j9@BT z{t_GeJt5~z@{H=->k3`~2VKX5hq)byZc&A|x6|Otrl*Fq>qh&2U7n;LQ|<&FoW4;4 zz2qH`-M0&FaMkp+uA9-Zq4)TKTf5Spee=5`afM~~Tf4+S!+2p%^-A3fuR(qB0c-9uH_R7Ixt944!);OO|(VgTPyTgJj44mNi zg9Gq?UuI~);A_nmn5a&Hg2{`XrM4T`Py*3}Z5BX|vDkzJ79hCRptOku;G_OF4|ryP zF66ySfHHu|L7+QX#RC zOMk;uUz+o6$$lhPEnoV3$Gq)p=#w{Z-mC;3iU)&Ww~lj)bw})Z;Gq>FDY!df8J2a8 z<`2lu{-S@l?`=2V^ulKB^SsbQr8XPH111rhJ3%CnTS&-(%$IBv&qXhwE9$+{sJU# zK1#k-o-N@u0u_)2YfGSf8MFR2tm!s&27zVwGtb7Yi9S~_w^Vd4+~6gzZvJhqFA3j3 zmb#MJassN+v^g-|)o(vl%DF?Y&hPBtR>*34Pzaz&mXUHHD=VEb@jn;4Z-W_nsulJa zzy#h0qxII^DDU3Q00T{rRtC&KPp{q?%QM`|m+`Oe=DC&Hj!CP= z?%Ud7N+TZI>vxx%x6klJ_e_G|ve+xvm^_U_{_p#Dxjvl~!I54%En~jW<*+0<=;*T^ z=zM&wcky@1%eU^QOtdyOqQ6i}zyp&s>7pqnSiOW7YAreE3KP42`Ee}3$B{{uLPf}s zlFf`)hu=4IkrDp2(gcUT#~icF{WnKbp+OW51sP zGX1HIE6eKAOXIlSa4Tl~bmWIA|W8 zam*e)rD?(}XWfENa+n}mcIxtfcr;E6MA>EYGt$am9uf@zj+yrRw82h5`h@6oe_oKD zuhx#l(mdI?(YrgS4c)VEGjwP0bo23^bAi$HFRz&UdSx#1CB2T`IfNel-#-!jvCiiiSw2W8jR)e@o3GFC^$fdAT)gx+dd}-tWPeUqD)lVX zJgcxEVF%AjiPzL_o!#FeF&HN;-=fwAKOGz%MHkd3fb+NS=*V&1zK0Gx0cs(DxZe^U zy-FAGo8hLIbMRMxwEZ+?mg}?Nt1J&RypfyBNPe{2?R+D=HK>@$<$Np&cf0XPx+=ow zrb}7ML)=(xeEc!D`mp~UGymU14gMwbshrW_X4Z|`2LD;RComl&b#`i{bj{nC#BGaC%yr|NU{cn#WbzR(G+qak_Tjlf{{MSe|8M*JBnspK(xdg*4*R+xCLxnc zjcXua@*(eXq60XnnFxSCH7=yyt@5ua^JBYv{oyxxJm&ps_)*LIY8OY{f#CV&%#?f6ix}_Ypjv z31grhIMsYc0%&dRg;X7WOQ41I56ag_&-ltFtdJz?xaY<$U|4IqW9ZaF+KG$iOAzb^ z=lhEO&% zLXo}7<~U?$90v_q*_094Th>v=Ig-p|uVWl#6S6rRevhN~`o7<<*Xwh;{r-OamDTe+ zp4Yza*Y&tA-{$b<)#kM86E+8_Yh9pSDZ%1Ps2YF{>Q^FlPXS|LIQ7)q>ZNh#TM!Ko7MltHAC&Mp_*@4I;!2`r zvjF)k7HRIph;(d$qU@!6Id={DjFClg0_K|R?CjxkiLs!s@#SKz+$*s9xh*%Ar{fvf z)Xe0kr-$>zFbBGORLPEbSTdp1;HDl&VBdd}yPJ>t;yc7_kZXO*`P94px51w{@_|gU z!~UHPDQi?hfKTv2z#+a*sRbw6o=`MNZ;3pT-tuvg#z* zP$Q)OOY;JUB6tODkWtSKg48;I_9h%x`Jg^CG;evsLUkkDLnfbNteq(65G!83HzphSkCr*tRrYUxB+KvX zlI#pM_9fCEf4qb{s<0%N*`L zwC_$2{j%4Af^;+)5(0$RNZ%va!J7VgT!J46ywEt_30_3B}NF2a` z_a~sq?aC#qicgOTDzpQ9#`wk$M?itH24BmT_Um0|tFwX^Q@25AQz1Iel#IVElXI8|=b$$#?nId>VNdwKWR zmW6?Nivxq5+QS*HTa6;ImDRRGrx*M4Id;a}Nf28DXD-k81r@&+Ef^ZqD^-B!6d>o1A&tYN8#i2y#P{{)HS$hr%xTe9T z7)%*|C!Rl93OgFR4Z6@le{S@bFmyb)SMF>4ZF^{_P+tpE1r=eE_NdtlP_C#=Zr75- zTNz@ZgGGGMA!S3oNQM73SwzI!7fG`~%>)F6AKmI?*%k-_GkJyp%cu8o5|hr;zm{|Z zljO#Y5sH-$@1!e-(H)1|pf6r$&e)|Fd_0r!k%(E{@Du7uX-SX8I9hAG(UjcLUgVg^ zkZEs?hVe%*1uYu{_#wEBZ?8qy$J_>CpGp@?!;I3hn9%IqH~&CF1Ly+f$?%pOpv5ih zjnP?NLZy|Yfao0}{o57%ZK6Q2Q!ivh4Y)N^Ue9``OiBmx>#jsS(xQw7>u2^#dUg}U zoyK?t^oyc^Sb`2K==9=1A!PL_4`o68Hn@~{t?`h%H^W*T)YR3>tx-pZzV@RzRXiG; zz8cNp4AwIRy4v+VlpPM*q<>_+P{e`MIGWwjox^vwfK=vyR7bczDPmGPI=h~_H$~Ti z)X({nT@*GkcyV^GbaP=;A0(f%iQkG%YxVRPcV76AJ_JH`fr)83(VtVSKyN@l?;c_Q z69+B7UJT%%bff?E7TnfSwr&Sq0;Kh-4>t@t%>GH=)N&6%q0)gEaodC)y}2o57VO25#vN9%I0oA$saEp zZAKtao*IPkO~o#a3#!+abR*2FGe)=Ex=Z-Yb?nOSMg&^IU+WRnUkm4duz# z*2>$}J9KDsWn6_Dz8Rf;gYU&3g=~lu(!f^jEw!RMbAZ8sA>@4sjZXhjPDIh%boudY zY~(}q6^P%kS47Q74CY(CQb>$;-eWdC?GG>Wgnm&lpk3$Mxjt@8M~{7U<0;4svfVQC z*%H8zzAZJ=L7=!3g-v5*YrUlPiouv_eNRRN1aw~}*RNq0Xd{Z3S^THZFJP()tt5in zUS$zGqt;&3?aea2I&-c_M#^i2T_;zgqMWnpze6NoWJrjWz+Ov)NubmPojK(Y0gR0N z<~%n+xBo4$yZ7W_0}~(aD-wE2;KL5<8u>fJ)pkAFpx0BtBitNR)A}$xTLBH=x-OV{ zAXM(OEEQtJGV|nW!-@)6%$j9>bl97BpQF}mfCs7PZQwkM_TnNW)j5cR-K?LrVHwy0ImjffL5i0iQG7; zdq@+>g`w&+_n-Z3WhWK#n1F$guMUsL1C!WuZ8M=64|Z`&7&+)%{3FG>O5(?ivlZrb z`6!_7_!e9Y%s6=q@oT9}Q>=z8Dn)~|-wt+$H|jr3xCF(N}t1-ga8LdI2bzAGQ~**Q3h`Jo+B*KO`5 zie|Rl^tA8x$TPi2@T8ytH?NRvk>Dr)n~Ed>^1E7H6Z6)u8B;ZuO>#@W(0<&v>G|+8 zTd6$JGxNMAp=?L3st$58AvV-2BH~+o>3VmoQ9H~X*pQX*crY)LLDV8kM$+A`fuY2> zT66YWD#vx(uTcPG89^Qa-nlB_Iu&I8*F{Z34HwtQTUkU!4&Whpl%)=^TJJR8R01 z0mI`q{E3b)i~W)I5PpUx#HA5$Ux1UJBbH-atwfi?7==Eeb*DPwJDw1+BK+IZMAD{i z5p6w`?_pQYcBpaye#0ZJ*eNnJG{%L+pVw{H@6kYa<0PJW+>90tiUf-Pc#aozC@; z6bRhNSh|LsUdZUdN}kccT7y!2yY3Z)ux|U4$k#bjgl3h=h7(gm{v)+sr9~!X3jIqo z2OeV16DG6Y_O-!XtLakVZsGrt%YSj6)PNT#2^)7dz#|@?a(CKVrHTjHy;>^9<4WO} zF_`)WaIm4?2mr)JwZ+Pb>J=eMvr(m?1zs5a>zM|s3 zZA)-*N6?TH0Bad~i(rVX9q`(m)WChCz_QAm1`e1rre;QV*jM=t`h!{i~n+vb567R?tT$y#0PX%r{4) zvK7Hx48(ERP6+eC>~6tg4bdHv+mNF=nWF=W71O4XKYbhU7FWRsow%;+4y>jh-{aY@ z4Bo#2_pL!ThH@NqhUu1?DKdL+o?jTRjhulSlvzCY+x>pjmf?&ls}nz^Lw|2{uMmcp z{EIhXeFFNnpL#hlFo5- zPXK(C`nA;y5Ijs!_#N)quFrEssyaFr?R+85QvmyTv!Fvx>t8Fn?kFien~~Ko)!Ln& zinLxClXL|$X*-sJjXpinlI1Ez;gX&O2M1%iL1E@kxx)t9uvyA=x*CAZG7SXL@14@O zvIO{i#q9FMIl1AI)UzxQla7Qnhb=VuA^NqfaoqJ_UohC&CZ10x=gtyX#atUzLAWmR zC$Gdh33zkTpPT^*{I2$7Df%!5%%&sUbK0`5KspFqyQa45TMwN zIRxL*U~ymX?W?px`lz}`Rq`F0XFp9h8TIv-x^9n{OK<#<%g>5hN z=}$08>wzeCTb_v+Bocr2nnWi=zN&oH66g2DAKd}PmkB`M7>It zQY+Let~BCxtHQ}Sn8p=_8S(h;{OrNJH4U@vNYH@b<}L4+n*5~|?Tpn+Tk@LYd=F`K# z{h6S^gskL4;R)b5-dyuYx+rASk2QS<{}T=p-uZnX2(c)+1BF2;f06>E)=JFGH{~_o z$}sFcEwdv5@sy_w(XYv;RCfR_2B*_b1B?W-9l2XxF~@_sbsb>eYWVnx46BV<4Z4W0 z2MCI$`v=Vv^fKdAlme5ktf+#De>op%R(^VN)Zv43< z$+Nx$$i`E=LR^*a#3XQP>6q8K|&nDkBc!kk}5vk$PY5usj&*UaH^npOo2te1!*ZzerQCk3}vWb5`OAqp1eZt{`~|CtO18G+<3FE{ZMu&2CaCLbQ(q7y#AJUP`MV~BEm z1K?S?cVd1p%VMLdBrvMvJ|V^g^^d;6bIiU|wCEau_Na zB!sO6@d7gdN)ul#tFO@q5Sjfbvect+nKdb%1S`*+KGwcjTUxP+k@i|)MGIW|D>)(w1EAphubfi^8r>x~ zsrA$tEHdN(6@l0^1Wpa`ygYn!NNq73VHL^_h)<20}z5Q2W z59Sljv$*Pf3jp*AY$7fzD=W9%aT=+!u5cVFS4Lh&_pcHb0+1IF`WUt@-^lW*TGal$ zTW?cr6eD7eO25ST^v`&AYyyCxJ#+j;4DC$-!Z~7*8lKCTncXViod_(zRPEHufG(+n z1UTHBmI6ue8gQCyvGUX5>A zn+vaIK>s+>ES>;^bI}(C^aSO(=EeU?gwplF;<8eafxndAe;C(pZUF2@BsBij(f^sW z&C{}O4lSvB{Fz<;Pdi%)3@bD<`|4kv^PlOT51`BzPMhgJ|Nozu{u403GK?J`;l{$B zC6fRAMSvNwP4%b;f9~Y|?PC6o2mjv>{+qnVH2RyozeVtG={;7&zm3DOIs4l<{B0cm z!!`YF9R4;A{|s{gfbn-=M$nDFBZt2uhkpj?z+3zsIs6?t{5$LV+c^Af9R4;A|BY?@ z|BM{u?Z^mIEONf3EG6F3FV?;f_Ajm2)q>Gl_}(*M$o7dNioC9OV3$kV^Dug=C1h%j zlo%Mym-CHcGghz2NT6`2$j$ds1f$aW$3^62df>VZPiV;{htdo2*ZaC(8$CPs-|!ms zCIDz|$$dFXeS+jLt==p0u%KY$Xa}nieb}RM$|L9gXNsg7f#QADzLHMqd0MXZ%FpnOW*nEmNB=$+|HMn{*&P6 z@*N~KoH*P2t=s|jEgGKeW=uD}zfVw$mL*|*$n}dQ8L?b~$4HEKNyu1hw6oz7Ih4Tg z=1XMYnOr2)co(YwefkyRmxnGlW5~e=2EOCzw(gOGU6Ew)+-ux3(U;w1rU6lcaa#+5ipOHOV;N2?}OR} z6J;Qz$J%HKL|7#~n=~(SItqG3|20i|ef4^M#TnWlc`WJI`uS_sPWaC~h0o{BU&Srq zGi$GqDS*kA;3Yqt{5MViaa`7OCzOtEUQs&*9@@}Nb4jU3P873nUDLJNf9b`$YBnO) zZe8Mz1jMLNy}zN*7sXAHme6_gu+eB<64qa60zm->|C?R^FF~)iW}q)=mF%0l?F%`r z*6&>QF(xJ=Hf3iW!m-FMaPACMPZVSuygZySIFE&xykx5HVLdUW{MZtI${uve`3yuA)fx#2YdTNBe5q|q^0DCE z6A4_%?Q-pcVJ@eTZOmC%C4A_4Uo;xT^osr;Lir!$RAPH*Sf|VpAz9)&SY`lC+-CXO3B&oc-B9QzxN)4(KQ>SJ~W zgRooj-j{xBTohZte5Cp@L**|LCwwuEBUZXQExYQU=zG8e9iQ-Br4`kU2_hm4m<>cu$rckf1dD- z9;pGHGu{1#E`#6WulG##1-GU$`j1v8w#9dT_EEWE1(pXm4@l#{nf5LSH??}+`q7r9@rP*Zl2su2-$6B~)DiZ35*KR189zB1Zj zlpwl4hZ4<(0G6d5v#h#;=eL6K0{LXYDhj%AC>`x?vnn6+ah?Te@8L+?WrBd%5kx{S zIM4kklG#1c|9i(usdIhy?AqZD%lunE$5b5L43Gs}u6XKr(CZ8}9PE*6DWv5C|MjUR zkV7^cRm}{a9D!6TH1dFo9O`4FJ#r{n)$_-)fm0#sK_kSoZxde9h#>O=T>SW!S@YWK zU2iNe97;GDte%s3Xd-a8?IQ7KO?iRSsgNm7ucd0IOP+qU1Lhs&C5H^4NJdOeO^iX2 z^{^ZT9y6(iU@mzaLm2;BKBSbn)IX9;dkp#Ym|orgsrNdDkK{!vU{XPa7Q=(&2G@H+ zDj(UposXZ5#`@n{Ca9BpAh4N!0tP>>|0RQpodTU!loLOCEV1ahd~bSB&M0z=mHb5U zr3YSV7qVR`d5Ak+1jaIvuudu;Q_A=I4BIgSu2RcyN;C*O8Th{h&x69f^kC(NgiHHb zTKb@Ne#bhJKwgqci+khnJ8|tdQb+|EPiuMtw$q;g>)Z~$Qi%Lk`T+0(=o4n23KKp6 zQ|0Fy#eS?-n~~tXjvVhq5MHuUp`rWP~at&_D0zh+0m3Z;q5}U6%7K8byrxuYAaF$!qUaALlrBoZ`+SdJaeU?eUgniEX%3 z&cIMjBw!P>3V%pIm*GeJG}zxYWh z)=RtF+s(H2O|AwNzt{RNyqr&W@zGl5N>7^X_e0#E@hAJbx$#w3mc3tR#=~`T@;jmu z^GQVL5H9wQy%YRBTpk4&2i;v_eqz;+wN~r^f!Ip)A+~-Qwo)x}&}i!UMcPD~R+_#SLi~8}%m;DkZz60}?7znz+sn=_w z{D(NbLp9=!>({*0P>h}KcoCWhzcCIS%9pq`D9UWVpTpmSrts_y=dnIa+=OdEwmR;A z$A3xmj~zXd-OOA~-oI`y7Zd5Z!hVP&m_TlPU(bq8noOU`+oB_AOItyi5pHG`>w)MV zX2<`koZ_xEOuNa^?x))~m<=yAbBpwy&W$V_t+tj~kfcFX>J?sY#G(cXA*pwb`eIIStrmwp-@ba+H zvXg2MTv=t&n=#yud8w1skRfO?2VZg3^)9KM4ZHu0ywjd6f3+A}b4zz+Q$49Jc1Q8# ze49Aj5Xq2dgSR0|Oo^Zm*>)Ozq&ztqfjq$=w??WzZn){4v zaI*;w?y}(vR#_HH7QBecFTUROUj9{kq|m3VQQL7ob_%y^-cM zlZ{4rK}wO4F))*DKPb^B#k={e*P621-Kpq7P2~(k;?FDwt#zDqqn|Qu$QD*@JCVF1Tvf6os=yCH` zov}IL1NS%$bSB(fYffL+^8({IZd`hR-PRB%I&?~R>;0kG+!f8GQp{RQJ3HQg;54$l zZqbT=&tdKh2FV;-=y~PJvm1VQHM33~D?OeQgyvec+5!aIA3@Vi{!+V}TZv13Pk}C? zET|K5I*#>LE192R6Z5r4MT3!`AI|^{VfuSiYaI3syH;{^mR{|GwNpRZ2Iaf z-)_#_=#m~at$OmVAkRp8hK$R!BKG!fD=sa3z-`v_0%v3JSK}{sy>g~* z8%QzqN;r6nDIH&Iim;)U_KOBv{Q5+EH8Dd;qt2pX;=M;ExaT4g5b@pc(gd9?5PIGV zYk1rg{7OHBbEMP0%x|JxG^3r$+OdAMM7PQWUNV03zV2)Wc1CG(-C2;bBy3RA@Lg7z zXD=zs0z_ZhYb~`pR4Dl(cOQx)t=3?zbEzL+=$Uf2BHDX2-}bG32bp7jVP(jf731O( zOEcp_Xsm*6Z6a!M$$YQRmS!iMYHWS3t)_MDY;GdjP;`M%0wMj}Y7(|**kQBmObOLJCS;*OOE zNp@9WCpT_R=CVhaD9SP<#i<59pz%q;CI*#I>%8apw(!DGCA%+^{(-SLTT$H}Zk&Wq zXuq;+h>tV(ONc=udQ9AX1^um5qp4_JqEkrBNILs@ObJGf!;kZj2btozZdl;`ysJ*x z(f$pi?p{#WYQmwev?jM>(q&5v@}pk4w{mk913A1bzPmD0wdch}gfx7k-2Lz)xd%q* zwN#3bh*|UU4^#jNiN zHgdg`A;fmtg}+K@6SCg38;yI+-O>FxlWiF(XG$Be@$q{@d9;G*yA=99Z27jD{-_Pt zOV{c1Qv+Dy#B!kT#(A&OE0I)=8HjJa^LHLz=S$oc^Q2M8(lSo8ZGXno5kEg@Y*0Qk z6dL87_NWY3hZIDKtI6@qAV6NG!4ouk*2H${$~E(D4Bz=XHI6(HzoIukVqD}M?{j&& zD@VnaJBWw2`WivV7?87<2_w#V&K;97mmeg~3G+<<6rC_M71=(yi4 z1yR4U?(&44)87t}THd7zi_eYswLT-i=QV9D{U?Js!JJgbX7Xnc8Krm!iZqOWq#h;bOuN3(C<2++rP z-oCSh}_1~uFH%*_1kAx%Bq3f zj)|R_ELcU%VTyNRUda{B_K11&l@q^Jvu1xzFoauc`2|uD3ylyOat%)4+uURSzL4TJ zmyeRWvJr|tPv8XKo;rMyC1!tT=cZLTJ`$Z)cBR(Pl7_q~!!ItZJ{cTh3i63W-=`7K{UOAUM}ol0n= zOfnFnubv5=GZ24EICshq$1#?Ef+61@?%8>h;h))ocWAvd z-w`->j1WD%2{LA?-0}Py1TQ%ca*y6_Rs+@VLNhUb>zer%?&MTE3LbVQtjACckOgkzdMMbdB+7P89S0AGzerOt|AqUwBJy0}Wt*e`MA4Tog zd2Qy>o8uxr9;vP8;igrJCefR6Q!Omh+bq(9%W_U~JBv{1F%TUmYZ0l-hAyTr3kVJA z<-&5ActSN}p>VUQT2U<7`46WbL9{&>mC}~`6MjX{DJDe7isEbei}?|16Ooc;590X- zSKsC0Yf+zWe%JOC&`U~1%0Al+(M9&+G)7ERYahWR#5vp&Xyl{@>Mg&Hs>rRfA=ded z(LeqAWY_yzIwd;3U{ds(C7O$!dT-}2NsJKkR!vC7#y5}+{wp>8402*^>mR+?ijC*O z;d0hc@nSSmR%8(A5$keYgno-r^i8v%b4)_lWz;J_HJaaOhcZAr%(t_|kI@c}hv%u6 zF2q~-O#!=AmJ-u-{S}EsOC5f>)*na6p{@+8&C%>vCfcxFjy3FQ+h=d7CVi}|5VO5O zs>To-FbGn#2$ITkV9*CD1v6G@J!+S}imF=DK;82wF3;{XlD-UB5rhfoXAL{lL&SM{ z5MtL{h(L*pY~q6FmD=QGSMUgK_PU#C93Sc=3gMZNQSj!!_$OfJ{Oek!qMY_nMR zo2#;i8B^saXY=Tivo(5Ag8M(ikr3{=m%m&GnqxRApvi4?y3ISA*l!Y8F$zI7AM2_6 zzd4h-|K*TV*GDIQ_-0P2st;s|c=;y7yO5-qyrg8V5aYQd-DT-no156qvzTpwkDFr# z*=V>6;R?-Ng{3u(OcGnKd&RQQ=yidig8gZ3&3$9>{FhXOz}D;2&kA+P)|!=2fztbk zLr!V)g~nZ-N+j~t8thwG70h%z%GK;E*x816&>#FIDj7}p8{UWo@P^#-onnH(i)l8L zU)>^Gd9J70Zi!!c@;2%`M=S5AUUhntd5Gs?$j3%ac1<{Zggka$;OinO=gWtT>-5*t zfA}Wx@}I<&ifUVH{uLH{Q~+#MHF4&6J}f7}Ipg zDu3+IfRVepUw=v%RRtCZpUFP;49NtLvN?ukS8dIp5p_BtUfT9P@6ZOn1$tDGQ;T&* zg!ufj8>LS|vbCl0#DZT3H{TMULNUIB#I?99(c{WBf5c=I;!6EBqXb(EoU)l)txSl2`-)(Kh5^H(fU9zTGjY`P^KXYv?CED&d^G4txmtt zU<8uL#phO1X+`fX$*yuPycoQ3I~}Q--fNb9<+5KG+g;8B1+4Oe4@V2) zv3W9Wv2$|?&fMLSJu_mlm#4PqRL43uTgsc`%*Fv zb0umS@0N{c-_ZN}N8>i#W1I(OMPR<9re1NM25=fZmvWhGt-c-XY7P2S=ewtVlk|Gq zuBSV7r!_@rzsOqSolv6ZUGh}tFWU^}-{5cP=LUv;h`bA?iaDr)RfR#Hn6nUy4FnHr z20Z9zsIS90;6YjW0W#gmPp3MuUXRWdKfFUr!be^L+28zJd&*MqN0s#_yZWkh)rP^- zw2IHXI@%&-YU5JrzWPFDB?_u|NW^%aRCx4|A6fJG3c|!qA#IkQ4nA@mL1?P9qMIsD zTvku(ZAo`G7KAggBOfm(mky$99zVTP^D0S;{Nfg+k*H*)vu2{XuXZ^<*rZW`H=ch{ zd@0B_p7&8|kwW(=jBF1&DXj^^n7rn8Z`>bfvZSCKt*IWDfV@rG7YRhBJNaFO8B z1<5{muJvJFss!hrek!tbaY`tSHM+8+*|nHDG0xB}`$@Pst9=~2puLw_5U!^!0Yjuz ze);)gp)zvQ#XoyXaq0Hyh*UwhsRCrlmNE2=*wR$DWa40RLd}-7naQ+7LYY1XZU;tb zKES-kbnGWtLA{8IAX@?dt`~8xZl-g8_(4-g#fO{~vo)O5^VL@B6_kd@m&86dKF^3H z`rsL8?(XxzEh%e})8Qq4#!w?QRI{?lu0n4uuiy|ya(@3(9NjnA`=WB^_1YZAGEBnY zgsAe-B`jv3KU3AcdwW!u*e+VmPJ-bx^eyreUPfC8gVR zsda0$rJfhek~|su&fEwxh(WZT?kY#7)0W=ei!cd9&Ae%GjU6I)QL`A_3qw+>9$GJV z$2g7H1Qi_e<7;hD$#v%9DnrOKh4ODpk_Vkb9dk6gq)>La&UEgujJ_`KdxB)I^#*)ee&&LUdhOXGMp8vB6?(2_e7y|AueX^Up=O zU(=iPhF)NwjZ5_*<13hH(u>Z^!V70PKkT_sCulLn$l5z7r1hcqZPwO!I`xk;m(9P@ zv=qSxFMM4uF6Ex*vNvuYY)P-YYX3C5H1!L;gv?&$>QrVI0qC!NxIJ=fby~Kl%Ij{A zdAl|34W%(q7uaTHp6iqn*fD}GSCuCbuITkal z-C>+=9P~Kh6yj_8o%@py7%Mj=dl<@F6VkiPu|6FgPf)oQRgJ1qXAfrG*qMT3T)le7zBSt@&4?JG{!TV-|(krmk?p_|SF=R9U`$ zkNm1z=vT3Tty)s!%XPeH2(Y6uP<$P5FRNbnmuHy=MF^H5^XFax8%B%~3L=hL=1BG|4!YpZvJqQn1J=Xz5p^A+m7I!P%cbN!|YWhf9vJ zKK32mGg4e06)!(1v)3bK-3>RZH`^MG{Jtk7mn?sMfiCdRp7&a=f$Ez}man;tMCjLo z{(wv&1=y{Xrwxa9M0tf?58DM&{j(Qf^dZCNGZwjQ%X4cy z;x(lr#@`P&u}7JjDBk%?y{oj=!j1EUVgy6(T{oR0Z*75GY-Nz&%k&)Dcs~g`J2)ik zobEZR1=|h3yG!OCUsaT*z42SAx}@8?vI2{nJ(_CSRZ}6Qk%^y%zCGpatkWVs#VEBA zG@HP#mSGngsrNGMqy7D*TIHY^n-acoi(U0W6h>6OmoF(3dh8twhf^OXLU2E?YkGlb z${kejzGB9Vyv>);3ytl&zCToQYZ&^p=D(gMI@VJ$`-YmiFWw#@vJ(7L*=rp&j`UDU zY!)Jl{y2_5%MIYOPnC?>1o*65lAx@k@%iLL4$5m%L5~~nFy0g*$3ahi*5&!6KsVy* zdNeSEto2T-9RsBGoP=uePlt?P8gfZWw#Vn{&9=zk^B*;g70q1?Pqg*g6pH(i(3eb} zg2|6xC|a<*XY>pC=~@EIvmB0FRoMEP&-G;+l-1r#;ya0{&NXw@_48(a3lbA)=kwbu zR5ypnN38ck<~@GhI-2Cxl)-4+^gC!pD>6#b<}IrfI$5YK7SO(j@3Rzl=|_m@qM{GS zd%I@$UVB0;7HAX~3%!w%o_B8AwZsIque2@#LTeTN-IaR1nPV_1w5ka2-Jg;wv~7-Rl{D!69i~LgGrL<$>fPCg_t})J?X(+$0roatFetQQVfQ0 zejxaQ9X%NG%jyl0VV=)Sjd6f3(^|^(kn2L0hdvki%4EPcV(u|h!SI3`PaU%@a3$6y zhAo|Ewe^>qqcb3to!e2vCFjujmKEk^jOyaVKS8peN&I9;oY+oN6pD-4yiGJhYPb`j z>aiQ1Goicc?roMLRGW>aFnnsXp8sQfdX>$?soZ4xcQI$23lwuqNAF!Dgm)*EA9mB} zx(?v0^hMS#sMSzs-I0F!+@mMsK8JREhzMKtnJhVJYS)51UfvQ)DO&hpLu0La#LbQl z?b4heDoj8PS048HwwX#m8D)Yf-dy}bvGLKbyasI62lEHP<>KkI9mRE491X#8?pewH zy<$6MI$Ghbmo=}8@0vuG(yA$F%0uC($PC2U^COFC%Bwp-k4;CfXf0k+DS}YPs?aae z_j%Rc zkLFUGay-d~i1|(IzWcLmGmq4|5V+BuEBcICd1{1PRbTB;`1X_ z=T7usyV&8BccA#;^1#N(Cu=&rL&b*^^-cpY=vdm}KBA~i8IE?CQfC?(d!Z*Ue$Dje zj^FBu`@nRK<=XA64%%xa4jmJ^J?OBF=zD453znu;IyJ9guXr$ZOLepg0^zd} zil)>*EVe~4l?qOBWUx}qUgdPG#BB%owVX-aMC?l#f(3Vr}1wem3>% zN#RXC6tj*xF1yT``R~zoF5RDqri|))mHd-Vq-GfEhS1IN*t@HX@F~>O zI86PfGFs~3s52)my5Atxp@un*K)MM{KjUSmxCs3#SGx(d{~7_|TTuj*3ck{)bw=b+ zXp7u1?!~p2OgH-mD|l}n>;(HYN&kvJgt)0nh7upLF`nri3q#S24+Y#JT`EEhE{uu> z-Jp9Xgls5LvyRL0<&Bafs5x&m!&b6%0y08P**sjRh^xcB%5r`C|EBQ2v(buC+Nq^W+4(GE+gy4#&UQbj~Gf#swfv=;TNH6 zHqx!L7izl}jw!=l*h(pxR=-QWGnP}V;hFv1n--2LT4@aVh3NF?7-NF26iW+~ZYnxc z+_?a2v<>C&9`bhiiQ?Lp>F#)U*^jq5CH>Qn7(y8r^k4-5_jD#){ygEE%|OtkW^;ai z(Z)7k|0VB5qev-YTa2@p%@PCq{4|`IRf(t-_iE708k=^GPb-fp*$={awYxm#+R(zN zJ-5+z0wnttlGb5PiZ~qh{%pP%W1z;~EFOXSh0xXSet|qe=5LPLbs#jrvKcsd>upfZ z8%TVzE8QNdv@h;zx!7Z|T_M_6@TDv+WE%*`*?$NKxo8XWwLPC{;u2oHVJ0Hl^j8}< z{`R1*Ij()^f!o<)ExLOBO-bbN-gGw4M(r1K6HJH(wRIY^Lk5=o`}mxh=B&pSLcEZqdwW|H9I-U1nDWGNKdUOQ)`P35`fnfR zFV`yWqspaPHcgjJbV`JeK;71D!I0o>>^AMS|Q6h1O4pWgv6qk{C74ewFWGB z(v-evy@lhxryKkG^-_A@9`pjmyiQqM1&>kv9`6Hr*k@bZac`BvEEeN`qp39ciFm(l zGB1tyZ#bbE0ES+pkhpUMkJLc@UU0(V^yDJZ;B!{p8Z){IWZ@ISca)Tqjs@_6^%^PsW>kN=OoKM#bmef!68NkX{`g{YD_Za5>^FWFOX&qc4l&FpBt zC;^>M-E>#OhTM6$(=WLE`DoE?e7GnOBc ziwQ>XdXz9oOQfbhgfxq4!7U7Y25N~s>u1%>Q_whj>{~0}kMNYZ7h0h7&G;(tCIEz8 z7DS;0rn3UYrVRx58r)cfocqh@Qu)n;J7jwEU4gOrH0Wk-ImdI>%IvDQv+gu3!Ix|L zftE7%hWgQPypg#Kc!1n;`y_0bjNFX0i5ChK+{Xzq+Pa_7D3kq`=dj2i@1Wtz$))Vm zuJ2xE5%ea7!ukH&m}ON1_3vC+&nE|{PJ>F2Ls=9MAb#l0wtXxAR%)_e^K&jQ4u2h} zEO?f#nUEOt%hT7!YsGVbM zrFRFbBujd>hU0c+%P$r~4elMr3B9BGRJT>~N1|wLdSUo?U)FMDEC44!eW%)W36Ix| z-o#dnJguXt|I54wrM8|Nn(N?O1b)RI*}?NHY~;U2PK|}olyug9Kk0A6zCJLK^xxKy zfMGK7bke|mI`vKL_fzVmW*S|N&0Z?(uWCivZ@l+9s86eUAHJ|0{*?{wZKsfu3wK$$ zNBzgP@uE3r0#cs*p;~i0Q(R{7|5Ml5I=>q!nER}94I{F<8ic#Ew5b>#DWRO^p38N}=|E%-Q@wZxb zblvXF-9v(Hc7`)%^;Y04VmO1{DndA!<0|riZJEi*aDYlQDjAqqP7I_GLqBS}M8J5c zo2SG~z3YH{tKA-Ph~QViUbomy&pZsB6PZ6nfT6MH7|n94XdkY1Eco+H*)5pP=}396 zUd~d#sOXyj*Xe_H0Bg^(E39o_vk&0`rN!x2vzs3;KT?s1za`JZBOZO<(R8EG{y=6z zo-NpP`c4XX<;L|-ml*G|7Ld^y7Q;FkN#PXwQ zmTAWj=c%xg3{aZp6Md`h!-}65ZM;}3bdkoonWx)v`GW<*0T5-K-KickC0tWB{J#eG zAy;zp@=GxJTW#cVU#-fL)-Kd`3T`N5QQU0_^?FZY9M|McF+8Uk^0~pK3Kh9}>&$tp zG*K@)9f^l+aB8#3fq`CY=;F*2)#VFzr|09O6nUal^a@104IQ;FZ@Bnd#a^&oU|mQ= zCX~nY-@#HMiKR^j(ItifPt*^-PWZ>@fCJx+s5~hv1&q}e))>TOtw=1ek{aiEsas|m zcHz>d7PKt7-++Cj)w_5xV>l@iImB96o7Z-k8&;9DCcxmG$T+^nZTx=OemX%L{B#qb zWqgwMVz)EW*p1)BLKDsH2o21xw(ZvS%)8lGf0Vh!hHIQxlFNbmmM})t-@WdcktJhC zNIT_OC&~6{C97S#y@5}zvgdH!uN0?Je*@Jnq_FG~2_^pVTbG^`kr08|B@#BP2@CV+ zlI5Ab<@aDA_)dE+>mB(V=3HvdT7XKuR^=@8Y<0d`CH~0_fEe?%^2vR+^*1ht(Ad6( zcs1NmOANbqmscnWu=H~}_kE(*Of-}qvPy6MUVrP7uTsj2j6N_1ZP51XyHjDnUzptb zQBAKCBy-bIF2YWVSpNLQNaFCeN5UXc`L_%LCD2BWjoS?h?Ta{k2A`v-P*mx3s5XYp zSAA&=bP73OY%pyDr6UHm)T3ZSb9zoy2~vn(Qq4mAO|}eiQfd!kq1G}E_ZE!v3U_16 zr36uD7{!~Ce>xCW(jcAzotNjAY|1=P8^Xrb&9nLMsxuF%S9y-d$~PTu5L%wVAKx5r z;WSI-WFT>DwEWcpQc@9Kd5(l2xdj3)dX~{85z`m>v;03gPjAEZ&tTvU++i2(ifv+@ zr`tI3Q|>E zSTS7~d{#M)?X7#Ks)x&+8W`A(wf0B$H(8_yyz`K}=#c)js@MU7ZRbP+iT12{lc;#! zbvj(wJ4{_xo@C==hvr#y0TiN>R&VX^U+!#b`ZJM*RzRMVfGeO3@O>}o9b3-1GeUzA;SEsg4A|Tcs#EB-&9osR`+k}gLYOMWv+|l6KOxk_h zfKf+)q%oLQ1uzg)o@BQ%TGcyXlQJQ}W3KeAk3A*^NL3lS`sRy8PsU=+DxT?bfNj(2 z^>3rgaRDil;+p~Y9{pa&yxE$!2%+L}FQKSi2UF4%nc31~ER$&h08FB>j zbWDi_<<6?2nc)u3^&GbBX&&bvuJO`WA>FS~h`Y;fRP3Y|12u!|(;}$G*S?7Td^3@e{B}SwK^1FDw8rUm(WQFxWFN?P_bKy5mt2!_BMR&g+OAA^36xcj#XdxUQxL@ zew@WjvS{tNp5;6(;Cy@)6ut};|J~3OIHjg3XiZkwX>1HZb2RiFahCxUr}s(HqSKuAbu>0HQ5J4q7SLFzAg#=3n-%mSd|uEQ)W~QRa0L88%xI@V0iUwVoK~5 z*q7~3f4(WZT!64Ujn{*&=Rg!55V_`T@md_l9PtOvCla zG+G$6Jh~i~PY;pz>F!m|SdUa^4Pi2UT=_z8FAxCypJH@5cJ&3jx4Z?>SKW6DGjS@8 zoW$A8bNmI4IH4IMfDn;I%Mz6hsUND?jm-p=Qw1{~b{E3(08W}W@(-uQ7>Mnv1J>*H zu)x9__6X+XGCE~(XWN-b_s)>^eI=8wjCz3QSPm5U7%nH;^5U}`9Cq@yT9=P3BiShh zm=9?#lToArK~)A2Q~@-)TXgL|q!SA$u9B*Q04%)5d*+j8m54{(7|8MU+ftpmjqKNtFwgkPC)CL3WKQxsvvWm}CN zF-i_9&j9D;+``9Eciu4}L5LY^5e-YPG`|t@JI`(2sgL_4hhYi8_4UjwYc0MNVxQcf zP`FNpe}!i^+a*VorVOA2Og!jJN%XE0$b462jf*wf11JFU-mrmu0)rmD2C7NmEjI>L zdF*wmN9qpZC2UrII-32mE++zAe(4@>u@Xg(m`&vaolU&!_tw5?j);5Huf zX6J;?rab&=cA+#*P`ZEFQpy}ic+>W>+|&Y}5-{=2uY&wl>BJY1V#S^sDtm6a>)P)2 zm1SOd#j|%*lNgUBlh2MY8#{K>M5cJb?(m4Z$Lo8y9O^N#!ZiY?laFDdF#vLwt|`x+ zJ{o=cB8p3v!07Ae-4JZIs0m)<@Cr!I>xzSi>ulA@Hne7YYy2~*jkPpstY+Nh8E^}NC&0WZzX=C*0Jky z<^Lqit#2)zeZ$Fp9W^t&2a;w{{PqZ2oI`6!L8fZH_wJr`^0@UQ>6@OGA2-?~4henf z?j?`E@OjzoP24}7kN<#Cq&_QKjtn6`+m)WQNsoC7Ee0YD30G z!PC#Rc=SGg+N>^DkLh`7YEk7Ax6Ew4kX!o@vo>5Wfx6l7i_L^quDfJ@{-IhTzIxWB zQV1EmWg63RmCf#h+e|X_&`SO&!m5H2(N;o0n%l=^hRyB!#v?ZeTnnd zIjcfwU3iDWT*>*j^$)$|32(%}4cV1eGnR2){wNWPnwfhxsxy|ue>C-`*|a1ZmgnMfI`Iy>6y??Jn9n!w^u0 z9P0kA5u0+ESV)`GGOL61a#%>9C9^Md1S#~G&tEHrzF&*)P=P@g;N9rQMy$4do<2Ml zyN#-15rbSEmSLvaO7LqIjzKES!aZHhSF@qSmhH;C4jX8N4p1ueba+!e|K@t*(~HC= zYtv*0dl6;_f;G-Jdr@=_XW50Ie9G<*F~91MC^v0x#d6V#o;f7ZnqW$IRPRl5?l_9B zPhW*5GR+KSEvbiCEfD#)^Q9bKfy`(A-z*%pC*pxJOmMbS)b7IF*LCg(d)W_Y7aE4R z;+;+_I@6h~&^)jIp$tX9k;oz7mNpmAisBoAks6e z-s z)kLST(B)0H^Q(fsIxp97sm_q~eN}7(VaIxa^HA38{|9d_WDE!{Z7;7qx}7yT_StIA zlJRNn?J>iUaR5i8^C@Awqf;=dY^zz>#%Ws3Z=eu2g)>Yb@cni)<#j55xKc1aO#sk} z>-mu4yK8XEy-I~!)pI8Kfe$yBDBY9O+DaAK?skbCmX-w_m@cr=Q@U^XDMQ3m-A&|B z{Kf5Acxg(l4W>9#dP?XS*d0%RJgV4Z{>f8)2aSZn4KF$Pb|aTPa-k*^hZ(r#zJ2ao z9W*LHyO6n@=1Z3c9H!dlV#N-iWb%}klh*c}3ud=BdyABBBv6DPfn z!$T<&I%DH%e?<0XB##?a|4sIoFE(FA_pQXCM@N{J!UeTmctdDfjinEPKQJhbHaUBt z>?F1~xx2htNI}bQ?o(z`aWIxM7s$!TR-%H51B>&f)j$6*b|_W;DCH&U!xR74z2-aj zulcCG^)nu8&8EF?n$0cUN9CYr*S1{Tn3G2ahZyyC*{7V$0w|SEW;k7NsO8BteKDMzk!*MQ|SBM=IXV6U_8A4xAFMyaWo$5 zz<96%Ns&cTRx2WVLW&Iy9;ut>MDz_OBv~&0hh<^FoC>ox(pp?f{GSPn*(2H?5>pApYk*w@DYj zV@_n)cK{@+6kmDsLdrU4>dKrsvf@q?_s5NU`TD*;Nqpnms;J@-fkf90ce5nnz;Xe; zdwCJFDK*lz4m-CyAF&;|I^7Py9I6Ei#FBR3?yINNx}^c9vXW(HMzA}4+}VIi(k9QB9QLTR(KH^LM;aGCpQW|zl&)ocoLjonS7X-l+O zZR0H!d&1JEb^mgoin$IJ6fKM1wf595#M(UC4U`lk>*#*qWmBEcC{XZYWN^8}*Q9(O z)hv?N%EyKls1@2{5iNJh2khw=CYx(_w(|0@!z;x1cb?FQEr!x z$W#?nh7^r}b>Y|an({JS_0uS0z?z=8k43S*+r4L)@*q8XgSUyH?mDPu+J*E88{-rN&G+|3 zcGW3xZz=kpU3-q%vUJ3zY(>K=z;yk==PwtkCxr-ls$x>gm%~M+ZLyx2u*!qxsWPYg z>J*clV5SRe`+1I!a;h(A%nWZ}?mpuMs)$tE7)n!Ci}C5w-aqM5(w0eE$6?NY45&$#PPj&&wIP78eMo#;4#NJ zQB}{aE7{egird+2#=LJvi{jp>mSI}7nO^KW^m5B}SXF}6wKQ$LukWx4paOT)n~#(1 z<88`P`wcz$`w6axQ#0XGWugI;(O%;IaT#2k>Vcn^*9E#CH^YI#| zY}0-xJfC|g&9hbM)#N$ME)D%tbA_)w1+Z!UxAwA$MhX#ULB99f$_|A*MS;*stwkcG zJO+TTJzJ7MZVjIA)P8UA&8enH5Hsw;oLJPb9v5c}qz-t%#@pZ7dr$$Y$xel|(D^S= zB~-KY)v=5DFx6f}e#$C5-O+exrBP`cfb5@(`yQU%CP?qcZyU0T&CD*;Jm@mGez=`I zJPkie9fTk31L?;)&KJf#(!aj9iJEo~I=phBlAt<5TIJOM(85+7(sV?tOjRYPU-a_1 z&%BbdwCf~L1yrx7&*hR)=K+*>>2LBapvAw$H%>dxPX_luWWh$TwLRE4klIPPPWyO= z!v7Z4ee2)ie*_t%7qdbKr31Sou8q^HU^b&6#FzJ5twK` z^Uc89!glf|N^fDRn!U7Utmyk49$ zwXusU7^}9XYdd{3TzbG#&!<`yKg!9(Hd*0<3?Wg^c1MNtfsPzpj7s|BH`g>TJYbw1tjtPrhr47kGYd z8m6?#FL3nWz>Wkw0T7-1{i{U{vK~+b3A_By@BN;TV{{Ipdd?-LJojF%HF%y}^Pm6z z_Zf_@-odLlk%GziNpS{rNKO~)i|NSmhfxAHbkGs$!KP=uw zFKwbd8GBz@&agTI#V6lpz)pG$CSL2C&eL{%1Iz2jNX~ye($UBNWsI3Q?h-eQIA!Z; zCcH<8{1pHdJMa30=YNjKzs}@G2JGXfie6p%@28VVq3-9~GxzLZB5~Z7?#azl{(C(B zJxVNqa1QRlOQEAA>Aw%?RwsA=aFDdNoYisXn5Xcs>m42B4*{&pijxZMf4z@WR0=mW zvuEp1{7mILT*3eSv%g>Gei)!&HS+JfI5|r?#XLRn(5g*vsZiWN?#h2Z(8;?`r34;V zScc;WWBmJkz*YQJQvd2XBrZ#LlL~Vxwnw~a+34Fy{_($O(aA?K;O6VsIn&$!^fnGhBi~oIGj)0bIcH9@uPP+U+J7HL8uru};063e{?E}#r;t-T z+^#>AslZ7syS6;qFA^vAGYtEk4fVhE-%Ic0moh&|7V1cw=YL-0-%s|hG4wM8j<<}w zb)01Wf85wVe)E6l{~wFwzh3A6jnDs$&wq}<|E;gT4Tzr*IZ0Bi;&q24w~7IuS#+bzcCs8e$Q9*+1=+U-HGBp$SMO^_DX)Asj5=rQZE%jZq0n674hp)dyai93n%YeBjI6s{~`_G-`v?3Xu zRqAiWr=)9~=R4J$|N2qHtoa24ZBmX4_-^A1z>CE3JtF?Y!;pEBN_8Xcd`#tSk_L(2 zSB~$m^djcyhzny6^Nz>UuMSWjTdsbW3;O4lb^g*Rg&02}rgx-k+(iP@U|vu%4JP?m zm82R9eAn#>ym4s7-OZzn#DCngpC8+sAR*1^v?9`RfpKILdXibn8;JKjxugLHzS{#l z)cR${EZ^gs`1fz`YLZ@R+v7{5DEWIgJ?W)x{Quiaot5x2@ZCxf|> zKKi5QtZFmSY~!g$QqJ`xE}ux^nP<=6c&Ap;;dm`-4Lu}Pwl9xk@OHYsS_&wi;?gBK z?C?PR=UiXBoL?qQ!&kAj>jwQ>0xy&^c2IYJ6{r@e2535JiHb|!Lt9DC4DK^dxvfRJ z?_H`>fRHqepn}l|y8RlVK27s$&SYoQ%Ark-D~FeUR!l59BxR6Tl&A%MbwrKPfkKcuR&*nI*HmYPVI za~*EcknFj2pA@q!HM|G80|;V_LEYNNN$3fj@`yooBL-YBz$!HNo4pQ@F`m#d76#UD&fq!o9=ZB$%J7*1n)I^nt%=)D&!Y{7 z6_~kp*;a2~i-ucT4(t@KcZm46MS;^pJ*8lJ_-3v!ehCJLLQR8u#(xx$WVkBYXX?;(o0xJ|PAgo>T$sy%BjGhk2nLV2&l;t#SARdq z@>QbLT6aVp$jKLE(NdKhyW7282TSqZi|@*7A-|ItdX_8YRgImQ>A=!itD5=V*NUi# z5)==CXZ}LIk4AF|blb~iz%u>p`GSRz06UdO>?TFbQpQF`*H8AB^K^iTz9|IOJ2rvW z{I)~a&n0K;94@|N`Ub$5zdKfV)Lh&u5OpRTNY%G&p}uy%emoIWd3(;>yqry?^>_aF zMI(?WAi|KNw;#{I&f{DwX=^DLw|z#<9D8N z+fGlVc`)3I5bMixExh3h2U4=VgGyDhwlE8|Fx+%UusmVf1@|)D9Y>%>kBnM+E_eLT%A-2u4nZU-k&UEc^M!ErV4#@ z`RMQON-_+yt>>OUeDWM1Nu*O}lxUJ9onyzn7k%DkQT#N3?<;Mb@p{=NG8s_aRK=!m z1_=F)(q2+cX2E^*EKRGY>YO=P*te~V9L(V_*3`J^JI7<5&vE0k4P)e-^Q|7`WUsg%MN`IBkw+Em5156RxwQH8KrAC&Y9~6D|l_j&_blR z(ky0ptmt~?JC}J8PV5jIksU!BjOh66se1qLqWDx9Aq|{Ve9NFUN0*1juw#R3P$s8=ycEyR{Lm$-?_qnU&}_bMEmL$7z;UL(8W zxq$h;G~+IDT(ftP`4Qm0_}hs*q&;#!Xz9Bt#ClJ4RwMY+h&69ZplSAP2oj z|NWT$lPJK?OG|!<{`Nkpy9N-ZlYN`eERx|EJZoOza_g!E)uDQ9S(^ujmSxB-u>jJm zgna8^tI4115bgeZZD52l%_`7@0z+Z7Hw!5)%$MFjl=vN^c=n zmVub~X@YUr|93UQ{B`Db$L*WGO{K@qn4c6$IWb)?m*HsEDR6Y_zqyw|Z=}^tA9Vhg zh}YIv5L8-)7c#Q&VKgO%YvUHYS>%=g9g(lWB`gf!nN-ossLh)qdz#|aST`fVYkLdg z!+_HNI^T5R%>6W&&JSxnD>;!fMv5@}o!-3H&tP3Nu)kH|ZH4k?to(Z?q>UVCeE&*> z-EzvgbGUMawQS;jn;nhW+GQ<^>0H%(2iG$TfK79PS%`<>IEhmmeKxr+G!K0SUh?QJ z@*I>|MOIF`nC~ds>3moI;r&5&t}80Ry{TC{Id3x}YxuoM(LODRP%c<6z~epyEIEb4 z!q9qDnYknEmgKS5E)!3x7#R|ap*?a}#bg0<6+}0B9`3_d_-lNBR+TGPL;KzIX9)z| z*D892R+Q+ioYYm?Ul4^u%LwV(RV?lO#CuhYGHQ#NmrXHw5y(hb_58WK{9t*-L;f>S zO=dTL)GKaC0|g~vThQP)8GNPX^|9MNh``QvOJ*Yb?qtALOfgE|$}-(!zdMd&SrSCY zVeN}SVkDj#>P~<3<@?fnqe43OeY1;|h6GUEo2TwVUEOG4^>ecE&OP12XG8m+;=gX8 z{PObaSLtHC&dz7ROk8_}N~{(@>eXnY;vIP2YF@~rOt2y_7cLU3%k?i9rMGNJ_nx@& z=jnmXRknoD>S%KX^v-R`uhEbGfh`Ui*WEFtkZpViWNxQ1G~w^fyz(V)4g@gho_Q86 z1UO0~m-T_#9C&cvVw`f$D_(($V$lYs(5}sIb4bizX4HoO(z^*CDV&j8L~Zba>VOJv z6z81n88=lJpiGPMt@W*{Q@vrpv%gcq^SU$MZjbnM^MalHTDBcbU;J`d7-sdSaqz}rwE?xvL9yA z;iIm!17K`9q5&eBYH=bXd!pFi|eb+Z2^lWkEP8J%K#gel2E~pi13;UrkQBfjm z52(*UKQbaC&Ncnb1(1r~(rZ_Jl~VZyB3rf|ER@oqJiZ$gL5qFeJYKIJBMM1HAqj(4 ze5?q{7qz|bgyP`>Na$n7>Y2=$YSH@Ol8=rtdU;ptMP<$5OgVh6dO=(WZl}ahI30C#Nue=w`Pl;~Xu-)pG zoW{F=_>6z|mDfpSUycSur6!jhNViWS2R8*op>&C9{&P_~rE$)QN0>d%B?zHQKF|hJ|*&6Wc zruuVqX>s8W+F9vNI|!up*$u5`y4)4@)*i~Gt~}k(tpF4laa%!OgP;c)rGhWVkb!#gXxm{$udjEKQ{RJ)&do+`vPx7prrs>l}F@xTfbbk}3n85|8RJBc2Lp$_Q8MLmv>MufA%Z%#pb zwvh}6J%xT})fMdGQMi{CkI}qPOne+KNtnADDJH~d`eI6Wo+lLAoLYyJJ~f1@;o@1b zMSR&RHi$h8>3WnTls;el2NyDJz7s?<<19e?mdcj+IQVfr3_qa8?V=tMlEINa^2GB@?aW ze>>6-OGYMsye7WP{nZB$NMLzhp(@H9U zTxMQB)M#o?p=uL^v=EZq`jQpszgitDQB4e6!~GC>>gNSDLLORW(DIqNy|63N!}M*6 z@JHAqxO;G~+f+4fn)~!zUH0IRs0SpOxo;S5Uimnf1~aSYsyWI;1ANK6rI5TN@u4K3 zI*q#ejD+P3p8d%fXbMGda*dQ)4rYiL*&IE>6Aq?Ir*%f>l1g!_aX=6V(Qvd!D8z&D z>z*S8rQA*IDQ@$xnqMZEV446<{nk=n#(vz3v_)1t)E@RDH{2@%s0KJA9rDUp*d~WN zLO)et&rD28Tk+5GHel}g46+R1swFXv2o1?~iGc@kn*;n22L4rMk-LSCS$u>(XJo9q z{A&%Jn3e;}mZf6B&Jxb(;_dnT!a@02fi`onCMnA4dpwiZbdD%Sm3$<)3;{$Pf4BwUQx=t0Nrf( zWnWn=F?r(xKzk~n`M|V`++YRhE+yK}Lu0oAsL~iyvl8JWG0wg|-RS{D+h(nh{rxN# z_)8$H#Quqcf=x2dS=gP^lhPUhd5(Fi5!)4ZN~-Kyz6xQta*1J`2F=&5cSwE!D_h;W z_|z8R89tN_8R+Da$6Az2U|4T|nC9M5DONLr-byG{dZ;1}f+tikU50qun|wP2`gpuT zV|vX^ntAXni2Q|E-skZ8n2yr+Q2U`blj7SQ?dH{Uh4$>l6{pv4oS17Hz+8JoNKf4&7ti!B2QK&B7eX>9~zOjs8;5I7oI`2Od=#w z{<<7(F=<*3=(n{ld&%K1S^6u@KCres$4J+djc^|ST-A)vD{-J09_0E~jgdZA&AfhH zm1|=R&kTE6b<-SvU9Zf-O6;D1v>0HA#!&KgzDp^`>R!Qs;;^)r<^!@%j* ziroh04dnCf!dx|NeKmr5??qf9;B;r{{IJ?|;2Hhg58*Mq^yL+jB0Tev9;^F@{kwr* zsqoc@_ga?c zUvo^qek}f%y)&e^k+sAfKR3#(WRwQ5d*5@^rF(Vh=J1PZ!;&)oOx%#h%5sjJ(V zcfr-ERu6Hg)))9DbjTK;e#X+1rUEowlKJtFXR?)$aB$}rx=L2z=iOh`yx&4#iz5%q zSnoyY-hcbNisI&vuuQ&y$q8(PFfplI(%7kBD!HY`1rPC&5s!bk&lP9*B_sPO@3MXS z*AB#NKa#VSKVr;uBQlFnShA1Ab4~U`%?=X0ph3?I@FJN7ajOq?5QT*X7DMX2)WxPz z2oE^D14Dd_JVBJkfiSBLk~KOR06~CC(UPjda_q11CQoAS%DUz4%@-zEh4<&7g zPiKjsoVP^{RRZVT&l#7ieFc34OduU|sWn(mq|}Y6V#=3%2NoSB-}(mqJ5w({7Zae88E7z-kA}22zSmG zHNB1t@?KnB4kC})cT|cb0|+3WN?<;x z*+Kqzu(8#|)yl$D)-=DC@2&B*G+4on;3<0(b(vQC_j%i8*^fRbylBt;W0<`kEoMTV zCWr_Re*w2kz9vjmyl#0en;G0kQzf{Daz=97witB|GLfv9-7nT1g+q;(+qYHE zo}?)hfjHk3Nn>@~7eIrqoAQBWkPIf;*=hP3A;9gtO}BIM$C?Eo)gBCq8_naqap@*VHmb+>aF0HeS-nF;gp;gm&7Lg{Z& z3n!1?rSAjFG8niG?OImSI?g1#^n{*Yej8zncEXe=LlKU?@M149=w}hYgGn8rRrgBb zofuDb($2T6)t>amh}zAvK*UD^f7{7n; z^E0!oLx&T!MG9NuIH=m&Wi}U3u5+<4>-I2NaU!@&Wv`AodMP+ckr4FIIj;Lvr(|@t z3b(s{=r0fiom08jgz@l;H?!r1EguggF@uJN(~5l*7SfCNN=iHmDu-_(9=}ZdMQR6= z8_h-PhR2jYJMR|wv?kBBR-3|1oQw9F8q)WQCxj>S8rrm0Mp?4 z`^Kf?DN>~@!z%Hic&GnE05EeYpC?=*a!?Vf4Lra7UA1&jvaU|jP8bdmAS&_Qu#qhK zt4BHz8ub!<`CnLEBpp$ zRvu`#-60%Imw%EscY`tDMiXa^!*q1#GMN zD1;9ZuA?Xp@;|UaN6-GXt4xxY(5N$l0;>P%DG7K70_!#T=4)o}9&B%aO1!o%)J-)T z6~1hJ1Abdy*Tv@s6nsVDtG>Avm;+F9&!eg4GqHf#qmN=x|aUYPzTgZemMH%oHL3k~1CJW2t} z*ihU0D+>mg!l^E?yEu_?l>^0aDvjfS7V@=ChOlor?spXq?O)Q@j3BKNu|g%Q7KCtI zgmcZ{?sQ^a{$9Q-c0HIa#i0~GJs{6I83AQ8`}wWV^CIz3Ngs=wIU`m^^fdKAWnqO6 zRpxsXa2CZ+f7AYDjBR>_;P>M-Dc?|fLsIGoWbUHu*xxjH2!3mN$leu^umV-zEn`*i z5!tmXOpJq^kpx6(E9(Lx7VV~(9hg-0cw+4L`IocEXLukgU z0~=gWMq(*6wj4)?3!-~~qLi|ngyWY9ynCJ<(os?>ec@BXAB!vT<=wHrK5tQ^mF<_% zjk1FdQWIaa-4|I$&dL5Va%76p>bNko>%dTl$c@`d?3V%*jb<3EQfPiCZy{f*92!ou zV_rO-@bp^N4UQOx^l3=(V8Wi=oQm6>Jn1dfn3Hm*XvZ~lSLcdB~8tQdY#VS=2@FD}u| zWM?%4Iubo5361M5XPeJsUJ0u##0u>gn{TZ)xYc2NhZi5vF?2VA*sLMiM~_eDr$JIm zi4nbh4AHwqzVWzumHkyFElqQ)3F~)iQ#ZA1F6L0rY=ucAh;2`tE3JJh1mUrOlK#`g zId72?puFMI`P-Di9oRRRrPA@sbVTAlz=DlRO8CTN+w$a&fb9tTri%wUkvSuGPB)ph+Q^k}6<{F9 z(lpQ|4^|pdUJqz!t>Zt*y<%8@TNrfP*KGlocaG~I+PLl4p#Yze;q53p>`UUMpD$Gr!MY&5dpO*VD~8f`3V-z_N^X5SMT=4o!f&~xa*TSk;jt51<; z+atV~U(;dRHwPLVdA1~Yi);N(b14U22p4xOcVlYsfwmi5MIVsP0=ljYaGhR>l&qC( z#x#weF2z0kjn?-T#;(>V&=M76=eMY#zzV9{ISb`4q@=W6TXaPMUX>MlfU=18LQ?4Tt7g zS0@hE-yP=Dj*iWB95P_xKSpW8JG~tAGAQd_x$_oEDqArZFs^S6DQOq@$ARsll8Xg z?&_t-l~`{KlGIr(7N^{zymeozpfWz_JHi=veera$*{7F_w>&%yT+^NOFD(QFPedqq*61pWCWjMn~2 z+i_a!%gt1}Ig2w7%GfkRzkde5(J7xrp|V@A+(Mi*Y_!#VkWA8~;?hC-ML)enEGt-B zj0qwT@YNAmmqkJn1<+5>!e>lGUKr0;KD*3Ngm%*u#KwU6L_1zJs+i2RnWLDHnnWdIJEhryVP7{YvBS;-^Br2r;4dO5JOEJBO;u&F+*$m-~KAtLFq&_DljGRna%Ye$Q=; z!=n|OJ86t>8c)K(Ye1t~+)Yc(OGoBlmeUV>I?0&sw$kV$*6(-dpG zjJ&z*$>SYeQ-{HY*GTkKl~+3$C}}w?jSM5R^D98$A))AiWs@%oJSZDQjgIM4xZTrI zCE2m^d&>C{=f?>p;h6iq*-o$4>`3&YG8c+gXKQXtRP!sVU#@7wk;u)5bSB5X+=hDz zCrNOPxiL%O^GRO5mV^>`Gw8@3jY<){?Y-~0m;Ed#I*|=AY^U^jUVR|mDk^$%@Fxf>1v$#o< z_3U0P7v0OiM}Dn9Np2S37|7SG;3?0Y_n{q56=$UB{Wo>Lu%0SG|8(%lSinOH;JF4l z%PlM19a;4Sw1)>DBPd*SO@YdQYAFLKfAe1=}>?c%>f_zcE8#-Ut-am0@<26qnw=yj&;v-TH=s`fVEtSM8r;VnIN`VnJG<%TOZl=*zlgdN?uL(*=UytF{C}+9>})arJ=Z;BD1nz$wEzHB@wLOo?8B z{jI_7nIOd%_u~1HkIjT5wE7 zl#MB{COvAS^VX4X-TY~6VvpW4<?=+2wTQW zt4A1M_N%JQ?ySilt;qO&VQBK7=Iu#Kph5Z-E#;#r`i8_Y-2nZ~F}-N}|1tLE;ZU~i z|D}2)rJ_&>Wyzj(vMVV|h)DLbg)xMTWh`l-?Adp+?~`T5Zdxqa_iYBF?8_vEu?#c6 zd(iW|@ArM*MC&hxtN*Gfr8wJ259^PDqz({WP5-Cj|EbD{a9O>6V(huw18LRa+%wOwBaIGqD!p$02Tmp7xh6(Q!F zE6wL7C~(sgj4?L^QrlJ%Q_ClvNFxBDAu+dAiQ#)i1e<7PS9VSF*a5{PKP)lN##q>s6@N&er>StQ+ z=Hv3>&${9Y^a|>pdDSTTxOFEt%s!piRe=9212JtYY!uX+aoi9?7LM7^l>;f^@nxeHT|7~rKl$VNMVWzLsJs7`W3 z+<%$nCuVf&?vbO%&)Ehk#n2|BRYI8+KO<;wibjz{(VWhCnjGI7xb|?@q#ucC5@`ao zf-^RS{l0f3;u&DqP9abFVD6|cTk9_lC_uJL(`JVR@6V18WTv<~SPn`ak-)ukbHI6H z?VRJbwqV^YiMd&gVkNW%S7=Ktd77Z;(#aiud*c+#4X6HQbHh@nCH7$y7)!Y3x;P&E z%T2x`6;}bur@!X+EX=KQWzd=1u_(pBNRcI@xCE-@R=<$Gj0bL!{ z=UIRQH?+cli&X@{77MOK+%wYF&Pv6%*L&xb_V<{4M2+0+#&_m6<-2!6>84rlOFgnp z2i`e5bcQ>Yh9|5K3mR2yqL6Hc(v)5E->tK=tiL{6X4IZRcD~m2z^_}c?L#AZ*Ao=) ze~fxWl;ln;{i{)`pR!f_VFl8r{h|sA?!nL zyJ{@$@AlH^959A>B>O7aVOSV$Z_7~L_#K;2>oZYyB4l>Knoqo0U;zP&tC~>F4z ztHbIqTx+gqLGGEg2D1aQS?auuYZ^$m&(i$CNEU18RscSU)v+2N;*fBn|FeBq*lab3S~U+b3FTCer3 z_kIht&I~zTl?Yo0@Elud@CT1!qvo4PXhWqC(jIfi`@-1`z*cV0HaVIf88#DF4Yy0H z>hdxMvUG1$faYaC3%$F`g(4#^&;hgItpUy#b?2}7^@puunsTvi6OV{Ah4z|!-~P-3 zEJraYfKri_nnbIbC2u3bwz_P|5($=FkCgxkSzFthxwE^RF`Mb+E5({UB8+`rJ+PN| zLP~v#$m=uv?joU;-gZI@LVvyaYXTwAPv@2HQl9CZh!c4W2Ay;}u{FnCMY#76KEkbG z_t;JB!`PtFn_F>jYYXAEy|Q*=UL3}{a?`DyguhyUF1_dV9%pr%K0iDEQJFyU+yf4L zVvwNDU=awNy~dUFVjr|`l%*PM=U3HevY1zvJJt?G=A-7nJj@As56Fqf+=A6u7K@1_ zappAMBYo;g?e^~OL{F&}TTjG87r0!1Pu?CKa8)^)rj~H=GW90*5mCGNm2iMg{ub=g-(PfN_6(%LP zu03Y-m>oxcE;2#zc$j_SZkjoQF1=tcZ44rE-T7oLK96VEs~ap5 zGD1Ceb8L3XA&s>|qRpiUQG1P@;83Kg;TAnRk#4%Igtnr^85l4txhPRe9~r@4P)K+W zz3%M1R3j$gxwT;aVwb_bpmmgy6SQ%8^u$PP>o+#>O-->LS?Q| zLV7fRx@qIP($D#OrR-B9=xJk}S7I-EC5`VyJ5=QEG@!ntITO$?;btv zer1B@wVbRF7daW`qxK~E`L3wV_lR$s`7^n)WP39VA;8lb|EL?iiLL8@_yO&CFO2@$ zYKdlDBgMPj)pi)zoqt-cWI)xlWx-RuZV|Jl0=6Zdx`*d5<;h3wWN`LP|Lvb1%b=sh@q6)4W(9BxEb3lKYz zUNb?yNdY9A?o-j-cS5(CooDgX%cySA=}uen_Ksh^QyEyu?_0TmX=0nyzR*vuM+1o@ zbzz(U@LW( zOfXDqH9jlqeD1*OFm7grTX0Pvf`>%IirHW#wD`t*TW16eN8;Q}&w+o`+g3HJ@1RJF z_#xgMiHCPXjwj4kH4v*pzVL)7I`at-e2AZsKJ#a|RAz{Eq_Ic$EUZfVF#!%?Ze&=& zOco#Mr8!pX$jt68{cJki(~DqWPmT+G zi|;9WdXTUW2Tp{_@a$zDD>RvpJW!JzrE*tnY1pVP$Vexix5HuH4>mybTz_-`iB5mHF}0P6rz{bXgKzn2;dW)(lSF!oxzI&+N@VVKSR(w zSG?0CmSs1@OgipDf`#NU08!i<{%Oz=2oDbFjr`{Reu$7 zx>^|76pY)9noR_*uwnMwtp642e7|iU?L1bG&jm(&?Ma!dKHzaE8(H8>3WayijL?>*;t-yt==b#&3Q=Eud zveoV-n&P#N4 zZOi4wEM>m`(&XL=noD(kbkjbNesQPq}dA^3_S(FNYegBH{O;_mD;v3R=N%o71yxOQk~Vm#A4`Yhp{%6;1h4{+qqEHJizFx z!k~P~Ny64tNmDXs4b3~{FuR;2;5Ud`p(-0vJxy`ZDLx=a;OilR4D5ak?|SbgWZR^k zk_P2^NP3$2NVr9Yo+&}4O{2XRD+>AjrnJ6$RuZ4l8tvosmoICNsQI}I zAn#CM>%7iBI#c85?0W;vRsGOWC?-`#>O;13>pX70ohXWD0O+((sJB|>G=b|kOmYWRX`u#ORniAc!l9^lY;XHzz z0o)FE?izb2)CH1MD1+L~@{NL~$BIJ3wS0Qb*s)t@6JVwmSw1Y)(4GdwJ=eNApXp@8 zi`DK9zRYhZ`3cCBwp_uxy~jShGu|8T7&4Pr+SL`#UlWC)QmtD%uPZjpgk5*ehdd>2 z6d;owP-0yM#cs=Qu>yU~0GbNhVH8Pot@6G)^K(Tj+{=6TCf?IB9-Q#EuKx>I4d&r| z|Ms+y+bgk|hxf~_lQX4<I5%zk$%Vx&Iw6y z^s(c8#V`wQB-{)*6cE^Z_d|iL$i%)6FHU^kHGWTATkY1zIh#xD07&@a4N!JE=svTw z%y7lQ!eu?IM5Uw_{YM|#xad@_;1uR4D71f9aHE)?01^GMv&pRes9l;A4kveQM0~-V zzxL$~LPV(qf%2Q#$TrQj=5S#nO;rzbZ{N{a#OuRy*I-SG9g=|U7;Q9IpN(-L#Z(g_ zTc&SJHB^ID|&82fIcDG~9?sW#Q?=h4AV`5*GXE1jf8s-D^LwFWY~ zCKY#%-%!+G@wVgwy8~z|>0>)qxl7b=+Xdee33GIpHW`4t`;eE65WN4>mBdCH#Y--? zvhUrnzn`o(SC}C~Xj_T#tQ5Kd_QQKWSTiLO)qF)-R}D&x7{v7mvHCXNJa$LkUfuV* z2c30pw+zrSmz|Vd{fa-u5XKkjso#88%B2F= z$8*Yh)$tHKd7L#fY?NLZb4n5rCdT=KtgYVK-A9NH=O10ON)fbyUswXB?WZ#4#hFqE^8yOlLxl(}&L+?2o;;zf& zKNbk5NK?T?5+BVf)LdPS7>e97+r)&<4i;lNax_I&w)+K=#<8|NM(l=->NvZ?UoQaPz2{H|bUp2jjPf`A#=3}wWf(DN)09(c=4 zv#|GT#GvFB8Rvhmv!C1`ycn8@y)4<6?AB~YtfMIw{187U5GS+Qw-U3_?Ih;sfpf$E zf~_QNPLP9LJKm6dBNa>uPT}!^SBx)tGi0pi4?Lq_Pe0&osbfjGraLK+1G827%p6I& zbMye}o*d9pVw9*{*0QjoW%j%%H~F$ViBp*l^euo+G!rHLs>weRro-qZE0<$RVBO)3=8_?nhp_ERdX&K{M)%_;Q zgV;xYN(6Ub3-s>v#%DSGHl9#R2tC;Ga|VuumD$Ee2RM_0@J}A68JJOXjJx|C7?+vw zb??q;VU>TAWN*^rWy|t2(=$Z~ekT=#>aKoTIllHyJ(ba|@I`-V^xR=`G=P$}BNwr%g+p}Y?T`m);XU_l2KKGZ+Q4d6q z^=8(ie-^Bie%t?#?bZH8?Yl~A1Hjt^fJgFJ!PLAaZ0Y``J@8j=xj5Cyo2Rz8_B@I2 zuJI=wP<00?*k4oz@L2j%=?jNW0gyM6ROa$O@8CyEOed(>WoJ*9Pp4w)H`}2R!#m*s z_H}dMo66_Ca-)S#R^7)NN&yiLR4BvESJlt^BrrBG5^2LSATd5o!CB@y%m4jzFJJ1v z%tFPyJ9Frez=vy0DTW{^U{I_hsccs2M@9)t1YQvv0h1fvDuRHlmd8L^%kdWykzaDV zFGV32y-#>g+!ce(o))*<+4Mg9h43$8KQNVu#{dst@g(TpzUU}l^2|QZsSRbI+a8iF z8+?pfoD5MLx$Ye`bD#uSB4ff?h286UKLCqY7Ps!(N*5cs1bpTb&6varo$F=>43dP~ zmUUuxwy?OiZ_fYnMV*Ob!CXd~dLK;fD=qK#WKk(Yr$AEWUFizBJ-^Q+;>yDz*b15Z zW^dZX?+-~jHScc&S@YH;ddW$w-9XM_eC-dpScED46Q2ID{Adxtl)PQT-u+`r{-6Eo zcBp|H*qQX7TalGXF54EaZSx;UvSrj18|9nyQjV^}S+&Yn!eYB-|3f|x0syUxMN9wn zkJg2bdz)FB>c8dHl*5ksE{zq?bvvI|N^dzHra;omt&INN`r!)g>BN8WV9IKG^Z`Gr zEvU^C{O3t|pR?o4!H<9xXmmev4<%`z<@uY`q}G-L+(V$mp}lYGPo#>?t?A^gKJ_CV z-u%6-KV~^|Dq>w^I4ScV>(LYZz1or%U*4iAg{eg8J8Kf;cZb6-**_X{ue@~gxl-|> ziZu`rs;Qjz7TCnS2bjUf&dM%7DE~1UGlU!Y+Y0`6s)F-?) zgI@c8yVjFQ<-#y9D}*U3X1_6c#C7>o=6_X<-Zelqm)*mH{@%lbWB!MB8xIt?1zA#Q z7$-&iA$~M)@uvIdSO08xUp?a#B@>AejQ{BU_{r}}#dC)|RQd(7>C6HNfZ3C7B+`rJ zf8xr&Jw^!72MzVV*e8_Ms+EjDc`A%Xk@thdn5SjO^n0dw<+GPUWdGLM-|OFh+Brd> zn2nF1`o~KXd46v(6m}Mv!zEF$)r)xG`2PvXm8F)`lHUT^pG~*=HoRxM)7tePmbU-6 z2tZ0{pZ*p;ps3fMTiE?9D7kgQcg_?~2xEgG$B;P9av;YNm)&{{8XV{@uV>4XAtODU zvy)$5tFAE^{*Q;70KV>GLHBQB`0u~^Qt2{~hwM!FF8&=v|I;-7?Ad=B5M>mD>ydvE z=AZxjkB|4Aj9Ay6QqTV%fA`;{%LPP?wB-0>|0w!@|107yu(`_y>i^j3zew@_tevA8 zaO&ws*8lV4|N5=J1hBdODqa5nVF3Ro%vPX4;^mz^^8d5BEWokSnqzeTBY*vuWvB`R zRwgY<{lB;L&xbfdfz3&jME?)(`M0Ghxd2*jeJ}lQQvY8vwgW2tT<2`P{~s+!(gIr6 z>Nxs8&EQ}DLlv-j#ZZCl1ML5A^8B~OQWhEUe@u9s>-SLFgs8jF&fC!~Vq7Ny=Y%WX zc^b%Of7g5JrfZWm*@6-~5o)?!Wf#vHSAwyVleb=XM5|4u5Nh4GmG^1ZrZ}l2AOfMw zyXOd)ZVIhBTO_XKD%`U0gxhIg8X0rH^~X7-CzYQy@xLBO-%s`M?@xyF*V)M0bsP7E zRF}i^4Z(SIR5Je9BG}XJFk_^nc-rzVJD4+5>+(~rOY(g+Y%Cl-0gX6tv@#4UlV@9O0%T<=lJRdR3Nls+U;o>#$FBm*F!l=a`lC`Y zfA|&W415&6I3^-@-h85p2b54^I~y- z30bJ|IH3Zj2!m~NfK(~~H)NoP_jU@r-0UN0B;3McSnRsw=C11B!%RHS;g3%F<7)m_ z7&#WO-%_;u4@1spX2TDo5xXmIdl=vJY2A zrjgmmOm6_{0iIpS0$9GTn3`X$h_Rl)B$0-57#+Fp9%E6P(^Wcb<`)H!Ip^J|DFiyg zmnEU*>GI!z>_3d-e1ucY1n^30x3@uzFa#|uC6a{B(jTgl;k8a2lX81rdX4Jj9fqDR zQItu;2+)+Xs_+`9<^YTqtv83)Na@TsmZm~$pR67T%R&XyW8Nt}oEs@`){=lbOceZ@ zHk0Wt_%L$*PZoN90VwiLHrX7;l?P#;js3h@1dUfeEk1F5WvjA)jf85KW8=GKibw_Ol2|LSW`A!i zW?_TG8En4~dfGL*Wi~SikAaooRfMRRSZ_ZoauIn? z)ufiy5H>!g3uUW(Dm=KUt|~a>*>JMn->ZK|U!Kf((nqh9_fPKp1PA!kt5k>Tu;+fz z^eUb}^QjwGnda#^by@uRlFpS2GmPjZ?{dj>@mhK;M&mQ5}bC0xrCaQM~wS=f2naz1m zWcGgPT>P%}C!;8Z19rT!dL(`O;3or`=|Lw-|5S-d8U456NH$~>JW7iVjCAsAFDyxM z)Vj`}x15C<$Sgv7{wNit0$x%6@=i=W3*yizD}92^B=K>lFv>9belI=GOaPqio~^!^ z@cc`4wUhU$LN}jH8$d*wK$xIZ(1PZx??7~L!X}U9-#9cq6Oa(q@qZ*V_-f>^NSJaE z{U>@t0)-aH>~PYTkfa-f-birVLsRY_@mMAOV09Z`@%djjaorSZL48PuzRi<8W_5`EI&r}HN#ib zSG>n|=a$IU3R}N3<;jMOeOfn3%&tS1a!=GdA`7zoEl0Fkfpt%t zX+E*E2`?{bUxa7G!)<_9zs0_)yUD1Ob397k*EA^ z1>kS1?r4`!%{ufJg4FXqQ9&)1sV8TagK{ULq#rr8r2et_BUFw+@EK1YIdy1W>h!j4 zui}wxTzeX)B=y>1VXJwHhOz4=GGDafRhn1B1QWd_le=>+ty6H>coz{P9 zO2pq11YZoBoeEbJO{#PdUjjKur2X10^n_qosxPuC?A{cgd`Y$pyCTy_$zb)DOKYXb ztBdR%n3d%laK~|Et|Ja2eMqZf@s+Qs&xlcJS^pd>>S1_vvaJM+De|c-*q05uer~^b|8@^H5&7yNw`#dm!(LbIERIc< zQ1ManijieT&~{;%%}^K#>v|jB;g2p&uoELP&6%*w^H!w!`BAm}Amo(=hV>f+-gysGyK~_xS2gHy3+%!o5bl79+ey>oF)1}qWsSbDH%LYj&v^6a)JiQ%J zdmS__?3Q=w6glm&Iq!VbUhLYtv$l`TG8_{N&?dL^&IYxUve!pqs_iHZ44^E5bt+QW zeG`cvCa%AvpIr>NSIJ!vbouID%`*0iXoID(#b(7rEh#L@LH);LO6)8VWyqqm(TjFA zjPSKg=A!K0TOVw`uZ;30p&C5191ru%x6Sx1f0`1o|9i%>PsZcT<05U zy9M@g9xq^P8TTx-$vepm*?u!#zuMY!842(uIrN0PCu*wbbOAKRk4d4TRco3PR;p>bV&VYk0t&e&yM!(l#3^WbD zRAZ`sHb03gNu+i?a`MFFNGZ1R_gs$C4|;f`XDXuc*Rr7jk2Xm|aeTD$J6Kc}-awzJ zme03LWGT5Jw!$nzu-`^+OR;~kBk43TEHCkYpu znyc{5FYfzJ{{oHRY`*qXx6LIs%{?9$qu#0D!$@(NNwx@}bNdlba;FAX6O|oZdU-Z1 z6YS+@wk%}GVQ+ge9CM7FyS_fqL1j`b zE#vq|Ky#FH%SgHFqc}X_iZ|}rQpIu|^OXDhkixoYloSsHWdMOptsF+<2ra+^WsKGL zr&X0W5?>OitMxcua5f;$i$?OG#WJ4$5`LG3`o$9%@ADux%dbNPp>;QsqhVuKT8%z$ zZJ;mQamViW?HmpE_Mg8GySpY*aH}LS`7HmBw4c$Qr9QrKj~jq7wakh24`rwsnsQ1r z+Q@w2Y_;K2QXLDyvrH3g5}1W*#19USGs|C6fXxCI#5i9Zz8qPRC{3K52N_?~lxt`e zf{ZmLZ%K%bKwQ(C1rCJP0#Y-b1Jgkw5$f8~P~ZsSA`4^LcIJG5d6Kef2QqCXyC}cE zB*@DwB8deU{4$;QL#S7I)q&e+ELAS ztn!7w8>z2Zvxqsu#oOYO@tjhqfoh$7m_bE2kSmwtH|uA6cpMAYqNmyfCY94(Y!;&k zJG@*r#@(Cr_sVB?8!ORW7)oVLt7!g6@0}D>mv;}i`wKQUJr82Cp~DSd?)rX$C8y?6 z*~atYy~0qnNYY37PSSw^WdWVFw6565gOcPOPx{_1VW6%k6VFxr|H5Kxw z@TqqQDL2|4Ggl0%(VucBtvB0ZYY}Yle(XcudebEy+K&RiYB5W#A`lDFBy77qtfnpPzHHs3#0yS9`AW#iS$WP8iVEL69{7v#Y{qXhsF0WEO7jLZ7Il=ajfUA7bcD2y zmloxwdVJoIiY__=S;o?it@Ll2Qc*x?!LN^SGu>!BkVm9~euNBP3#{mB9(1 zdj>q6Z_av@SbQAFCMjq)f#+1zsG_U$QV9cOm#VsKd^BCB)eHwA53&ic8ab^3&+Yu5}qcGTeJh&<3Qbt1UyNwP&02 zBJ)bgdvZklc!jTiK4=TKJzhx^zrK{}*|E^6f*w(eSvN=QB=ji~Cofaurm_p-V@Z3f zV@rCV$cXiD=_MV;17zw9a4;;*6! zNyKHaB`LHZA>iOIJRSa0uj^2O2fEh=f^p@c3}W|eSkj=?b*tC8Y-Z|+Kq;o6A5>P1 z(_|dIRZ$uRRAPgO56Q{^2i3g5^S+~ak>z!Tb9Oad2z|tbSBKoeBOnVux+--5%G164 zBUG-&z4aJov}ZyA^w+7Vb@#X(Vr+@1*|1f0g;if8z7tp3g^)65tP2dkY&l+1aK;34 zzR=gL%0K&|@$}tyK%){2DSDYK_F-gRsC46|6~Z@Tmturz8WVoQ(sX4YukSvzShJ z=*7h&5ZN1m-W>pwR^1_1h!Bt^AT_I&V!T{$Ye1IY^7oH&2b%mz1E~3#n%aRMb1|GW z(z7=`7Q(Z+RU#{(du;drrAiWaBCB@_EC+iJL`U|5Cx!Z32XQvLqM6+iBwd zP#l_)!@Xzf6nSpWF_b#Lwp;Q^$F_gjAvN_GU`er#jf@9U&=WpacKwO*yG^@f=xS0H zs!Uk5VF9h0qvXkZ@x z=nK0RkWwUUj((0GTOtmk>Xj0l9IF-{mHQBl3oK(cD*SBeb?S1p5^S4OeY}2Yo?3gc zLqXUYE2ih8^(wfJ9ygRN(Pz8h%p1odce~46ML)(`{}n7(5e`!k$XHGoixA} zCL~62>D0NQ1*2eH#%B`qC4h-_JTP z#)$9IXVOZ{8I@dAz|r(NHc)b)<*Qg{29+i0JBwHFa(xSTQ5WXE#S>JlM@zJ=6(P$K zLJJ~{!XQ{c{LDtwdM{b_Cs|xMfVE+>8z2-MCOq({sJf>u1Q;TuYMS{#kQ@;}zcTIn zq1VtJzs>l55g2M!S=1s=jITc1$fy^*P_vsPxBAK_(i{C2uch5!OY8tlPE)C(*?&MY zb@|u&3NYxEPoJVo{_!om9Qy6c>%S5xGj`>sA;=lF#~74uEI30>wuCDP=z(%v518v} z;29Q~9>hl8Fm~z24f)!QD-j(_}&8I=4T$FGULgAQ&)^jw>aS-F*}X5ul)FPw82fTThG@&YCbiZRoWNiR)4rw+UN zOE;#ybv7geLk26|m*?lRH=;}3deTJN*6^_*dEMA+Qn({*EwHLVqaM{ z&Ze#Y!?1ShKNs4C{S(2dUuc<%#uc>o}{ z7P0}PG zbb6XaVX}5}2AbqIW1pvF1B{c>ekNWcAQGX%gGix5RPyG^?n3C>R#F`_AbCYL1+P3C zOz=WGT6~}VdSX*ha#IL)-2=GrV%lIX3xx})>X3TmGBz`7P;9V-=>3}3x#V%}F04b9 zn4?w8f0HrGB$5=y%ORz_-`7m10y59VbXV1baP55p@F9udSbgDj{oY5AuWz&b$g26q zedd@-wAI59m931o`Z%hms%f^0d{2y72`R@gmBYf{1BV3k*=?hAi-j9#t}S5NeQyZN zw|Zc{A_i8pBlzmBB(u+==87KcC%Rspqc9%@^@11|C(DX)ZXACxO8u2un zIMudl!+fH5)cmk4)J=x6VaCL~{!TbL30bz5t*Nb0bKgxIUdKrpyglnndmQ*R@$;BN z&Lb7DsI?+#`U4PRPszKT8P+khJ`|IxQtm_fWxe5we<;{t@WH`ezqj#GZ&VH+qn;@b zx8_eNE;^IN7q|^j!i>Nb=g}7{Qpn>7ji+d?mk?(?7NTJaqSblSoW)?Y)ZA}ld+hC8 z1g}}PLsEi<-&?NWvbBf2d&*s&x-C7WJTx!+yXrp6@?n3OzbMw32~|cX@psyMTw=+nVUCTq1TN*4TmZ6 zftoXr(F}>x5n|r-pD#B?H2E2uR1e)_87`h-G6mbVPgMBE;Cb1C(D@0x-b53Og0$B6 zjf5PCTk0`WOa1Z`sP6`j9hYn{3=ZS>qqS-o8ha6sV{ws3qoKG?WzW6KV&4mF<{0*7k8s6X!Lnw@ zB%9KaO<0#O!|Pf7b;_WzBZcW|0uvh8dmwj zTIkYDJ18Z{!@J?@=v<$vnouw>Sp4RLO_7z93Ld7Kz=>CdrM=~m_UGh}y%KOx>QP1a<$~n_m5)Acyrg#u9&dpOYaNfUWVDG5FZi)kQV33z1}EVO{rJm$u!?FI)O2RjDZ($qDl zGp8V?S*JBK+9WxaDz?~lne3c8z-J5;F;H~3?AE#`K(`^Gxx26e=^NH52z;T_eGo1& zGf%rBRbfg!Eahii)_ZZ>SiJkh*#r>_uF~v1bP}_}oHA}DKo7nd?)>^qg`s$fH7aAN zA%ca*LVhMK^mT+sh3T+;^JU^6%A6JO4rf-r6Z=fHe-;&|Vw(?>kgQ}@$lC^fv^o$a z;9%f(oyd0dR$H($&Z2ZBqhjgvFjpEH6?3KRL6VTtME&H@q=8K>vf2*Q+R5@PJjsF5 z`l_`IqpP$%lwi_qLYa-Vv zS4lc?(H)S0{s}bnlv>e&1Vp_hth17jNp3ig-;=G}ZhXN2mk#nq?2CX+%&A3v%jT~{ z@Xcy}9590K$le^WeYM%xCrgaeP4z>%wvJ5^%he_gA}nvdMjLj_$xN=g%RdF#--wKU zR$CIP13El;bL40W;1MY-u!E7f2L(#ssY1ImvWs=B1u5wwlC%ditNpGYmxY3s0=1`| z{-EF*LgbBo)G1uOfYW(q3WK>g{ev<#F&g00O*S0^X4EZz851J5fdjxXfk51pt!!4O zdL!sC7rGtcIR+A)?&C!BN@g!#*l1lWlHdGJ;+rjqxZ@eLQ?(9Rl8TI`jDp*&M$XK} zbQ=4(V{7ZR(*hg4*g8xi+TxFyE`A)pD~sA$*QUs$?m!;J^)!4dnri5gRzj5M?^a&f z`d~Y9)`Rcf=ka#~F8Ji_jYnKvV8;ij;yh~rc`RKh*DUsD1r8;@e#3SM=Q(PCv@xG` z;h^=d3gA%U!)HC3Uf5gwQz+YL=zTe?#LoX z{`7N5K+Th8`*&ohQ2cHw!k_z?%YF`?QH(yp23QNV_V?RKQVna2vxwkuw?w)%LFLrO z4Lf7#wa>R+H(1?Gk;qtbIv!z_!*#0CVcZ5a@b z8xBjTyE)jE&zIWMfiCjI1T3@kSB;y4Q-1&I9MSxq#;{G4#eqXWc{uJykCUOOQI zc5uQ?J_R58c9byw?U0npD+QH=lG5cqIC?1o2qYH>!no_`yRh;!T#Zzg*7Bcm)u%v< z@Z0VP%Rv~?J)T&nIzabW#TY>=14PO|KR_5z&Z2xZa>fZsT))%Ds2DD*d%&y}J|(!> zt?Aj(Y1jg4{5Px|z}IoHV|CrYXeJ*F#@-hCEfjSa_s$8 z^%m$-RhQy|!K%kbjqk92~ zvXMR5vU8@Lc7cz>T>f&Ek#?FhcMJd0&3rk0TXDPhhp&%h|MKEnU|-As2(VimqlikL zD<*TnVl7N92ifw7KME-PdFc-vW}eEQM}!`MHvk}|*gF7Bd|`+T=@XPuJ3~>u^`M>1 zb)yGSxldX&b13eN+%2PH0s14(9ifPN7#Z3Y}iqk0vn$i1U8s#e5*^@A^ecG`9aa>8NS1TlW8h9LoU@))qyYr6=SuX&9hHCsUo6p_bE=i z=&`${+1xr{XP}=tLK^cWCTQ@4!{xR`;Jhi)M4NJ#!9)+XbERCEpSG7=3yY;iTf95U z95$ePwS=*sQF$)K8VRl9SQ)$SKm{6IPpZ9ppuGXg39N=e0c%*A!f}BwJPU=V_>s=0=DYHATcCoU`o@I;0%ct37XgkPaVIE15FV=mL>$>QV0_+$%cmolW-3 zoU{=1)*^y;Pkcj0ZWRTh`9y3b6Jv!{35&g2QJ=WZ!5e-xw>iC>*Sm-LnI}c?iHt%r zB-r#Cv@OR1<2iG&fa-i61p0=@Og>kOP`B7AWA6~7l)#K(F{JU_ZiF-UnHQq2{OJ3<0cUG)f)vF@inQDj87pK`MXQa{ovT9Xsx-6`W_UN#AT{cTWHg z?_4T%s+|e6Y0FwIF}+fkLWseAp(Y4^j=kU8+@MY0^k^oYVunbsT9PTu@x9%c*|5wy ztmt^4&@Fx%^5Mw%4B9#dGS@$cu8M3P?Jzl#C`Mfa)ES}BLp zUz<9}$I6e(k8owbku%LSRsA)SmEbPG!(3#qxpCX6*z%{ zZg77yL!AE@V8{o6$9^&Hy#fW&%2~5OUnh7!Vi;=`3-@Tm)btt-^%BLm}g&?biLlv%pYSBYFw>>j^Y)y>m{T36#hC8Ecu=~Sg8+j7qU z6MPv~Ga6s|!YI67C*@q)Q{}+r`VY6tA3H8-XeQ|1OXCVUBQP6}0@^3~pnKkjGzCOo zf6r95yG6ngzC~eqc1rdD_NF6b0sByT1lrepEBE*Uz)N$dMRBz%PJ;uJGQ;G)h5#3n z%C~+H+o=lzGcJ4s06DVi^uAXD5u#5raH#*8a16`aFlK030Vd7sr@y*_&BH-5yD#_L*s)O}}L>MwyWallD^mp-G!48V`UFE**yv zqy9Qkc*;YF7ExT5zrK?oNdG~h{%C&GEYe~uG}mlvs&(q)nLeBc&;%(BVJOgd2-vst6o&pr-xk2cmX8T>RKa@K7& zWAmMAWM%l{+kL;X<-;$ScH2$?*G`vL%zcU;23v=zg&j=gDKSva)s`CAQBF<01l}YM zzz_hsL!P7Go=T&D_X5)%&IPQZ#cf7(#cE94&0aY>!S~^c4J292jd?VxeFRD;T+pmlSq92L!Lw(-m{wxrMDS!0T{2D(8rioJ;+#2HvuYBMPCvRkfusD$9^B?;^f2c{%+o*fZzK1B>6)Vl(=|#=CkLK>m@ihWw+sls zoY}W#NGaFQjR34A{dfT2cciwZa6!Re8m+R~b>}$-zrwy3e&rs;y0>)BM)zJD>`QEN z0m69BeY=<4WA@-r&@T#39f2KFd}f`jYX$R^Se~Aet2>^~l}4QajKLb`O_SuEex3F? zv6uCJE(y3m#e;jtSRi*}V*wxWcsSK5@g{Y_t1f3=0D1sn{V`rTz|u9!DTku@X2lFS~D>s~RJMbJ0yk00M2f10Zws&9(P~i#Bgw-0M=H{p8W=LK&yK zMXiqbUE;H&of?^_xbl}9mFTw~!B`CAJxObIAB*Nf=noLE`|@NF{%& z<>g8Pjw~}i$FLr`;$#Hh%5I_0s|Swuk88G`-2%<2)>q6yfqb0`&hkZrV|lv#3%)E= zMeV0(26FLPO0Zj382;p9Mw&Xe!N=Kx%xGimY~PHwsC?ME#9VB#zf&&=PC2tYvuW z-8n{&UQD6XP;8y+@4ekyc1whT59rv5ZY7s6vSw^pVmJK8g|x0VIIkPV12&%>0Yo~2 z8r_yQ>Pd{8{1!lAdVl-QUpD7sAQ98GU;4vFtUAK4_>tx3!Kb#liLXirtX`Ctod(X^ z2rI$_1h9B-+F$ai-KQ+&$3D8LmJHubw`{CTE(%?`-usZScX4qBL|B7`rgL8Vfk-in z@Pc`1JEGvP3sSIB-`m3s;%lpIcTJF%2(QV+9}EV?KyDT=a^N)!1)poIotKCE;(zP~H)VzfEw!!p$C?d)-*p&okI}fMsaCk9u#`VI@(_^Bb@{Gkio{4;%hX`+d=V zQjYG79CWP^vfBE?_Zm4@|6*Tx1ZaQvLRjQ0VIZUFk^AWWVGv{j0i6clPj!37H<)Ju zS;SRCT8*Skd9~G2O3j1@Z|4ktEq{<3w*S6}-p3gtevpAO8~07W;Zv~2()Yk|&j$56 zzIZBWs{${kCy>820zC7BnUmWw-)=&zIV?mQ6}iZPlH%J<%*=s5b-L(rM}{^?fqyIq zi52YvjT@&3ZXg!{wXhr;tJb}bq9({f5}9koyK-qK?T(2y@dJrIZ3sz>m!b+@ygsDl z;s-Dx%vTuFjV9aNA&X*qe>H;6Gy;*21s{9)H}ygJb}A$_sy%S;UOeb{Gx&Y3U$0*H zO3CUIfCcS-DFrAwvFVq=2%G z8sI<+eFl4bHOz~!{e9ua{djW=YsX&evJji(q0@hb;*7Sg97rne3sQY0ooxc3vN?|& zqc?dGHX|G9B=1bX!@Z9^So)X(MRbihg5ndy&qJlQGw@45A@^ zyVhimrp?DdrC}mZH0_mUL$fo>K{r^|4G+1QVMAp!Is!?5fvDR+rWgE_^V;tUa+m_! z6r0bSc=F|Ss>8Hbg||_WC;2;HruEC$ywLzaDZba-6gG6X#CbaGTEO{@F(jKrQZ}Tl zO|7%iaYdIfVZQWGu~mNnbH3mj)=RGaQy4V>MOo_&HeWGg7ffJWS9O7nmbdt;Pu6aj zw9?LNBiR<25l%UxK#wZ-d-(OxLzf@=0AEMn*~YxWH(Ht22iRt@S8x2W@PQMKg5u+F%Hz=KK6eBnOydmE+-F9z#f*3$FXwc(s7!=Ub=)SwQv zUgqD0%*+#`)ePk)uO!$L28KM=Os4Pj=iHQuwQ7rxi9<`xQpeQ6E_P%Sea< z$mmKhGp_#*sM^$x-nNexIH@~XgHTTawyinJ_OJ_c$bSS#{HrTp%CWdjdY3xIHdHOO}0j0P|S(egoE)9va!-j(_LAx(#0IHow#Fk*tQ)`PX&3+u>Y6H*F+Hz5~y55d~Z65BVA#-KIEm?tG}uN|qjJYZJ>WZncl z{YC+j%<}m`>>8IA*0V!?Fg*BI1@1223*8ls96cD7L~BU=Ts%Smhi5DH$>$k5%VCa* zbWkkgrY|a`=1HOPPr=tCXZ}#8+X1c@6fL6kyH1zkxkx_ybn^x4lKu=uwVE3sPy}`Y zm?J$HJO>|DE+nv&C-60Qv1Mq#PPV#WOar`L$eB0P6JSbSB*r@TFr1P@o{fG*suy=~ zH!+WQ52`1mTlW~T2sH zvDKfrSu8x>F28gzI|rVc_sUWnb~udY30dfk1zHxQrsTZ!@F))$)1t)f*~mT(QBe_5 z@^ZLz($P@y15xaJR%YaIce5F?=#S@@Fhm~|6-Efc&03FA!^q+hx<8Bd6>#jJog$In z5j68`V103Ue|tG&hsSZr&6l@T{C(I0xz(|1UH)TL?w5KkZV9sO^kbR5COjKO!Ua&$ zPY)4^oSMByBMevf0*hiBfJ~_>kRMn(h3X>;v?5AEVvAGIE0aJ5=K3?Y&}VGb+M8qu zT;BxxJDv_NS7?>`pN3!$|0vOY(WI_$PwSLt*aZmZ*+n@i9XO|<59$wcdyC-oG^7VuSyb6U|Xt(4!ik}T30F~J?)ix z{_M1Bi%E4jwYZFfub||(#<>$ zKbwOHo3_JOBXnmya{`hX_>u*|y8CH?v1}hTkBFO8U(?##ja|vo;lhAc z#l#r08d{sU(}yMC)>pgE1e*?&LghJm`RV`P7LUNPDLKm)3wfc#s+-7JLd?cg$ph8b%|$6N-8 zaTlirCQ1RpGfM&?*!&~h^j$79yPsV%C#A3QA>eKOT%AC(Vaj`M4yR(Yd^q&V z=W?FKAs6e5Q9t7!7-hw|9)9dQicU}Twy!;D{ z({PQb!0ESk4j-rJTeFb~Ny1<5?$&e^q1Qe#{l?1riQuRdcZ~|jmfJ$!mC3u}$Yj>p zu9{~nVRy0b&)J~tl8gTe2+aW@a&dI{mw@fD7uYiyh7TPf54z}$bbHxIY0N7AhpTZ( z>cAX?<|bmQHhtjMJZeDg8WCvZYV|8D-hQU?(B!^XEifuVf2eV1nAII$`Gi}+$T(uG z8q)qS#FuWbK9ibMB`Oc#tpMa4%X#WnTN_X|?4cpR@m%+Z!{6=d(}GwhgK_omn-gDW zRnFhdQySOF#p=6)l{3BRO|Y?uv{W|-zQxUh0z?uyF;g-;@!o0M=GTi-IcC^0W^mO^ zYiPp?)T{1Dx)mBSNV{T@=wLvIh_cDTZX{YJS-?)Q;h^^~A_Xzy z$S4EUcPG4;C~bCi>4Otk&ODj}n))my2sq3TEd^A*GcQ-oz$Y5^~ zmg{hKwE5c4yBO{AQvYOJIt=n&4%m%1gzBzAr4c+kI=;YjSb{u!cVNXg80S12#;?#I zUCMtW4}qrnqk4FZVi|}xV+F&Pf9=Z`Sn5`ajTA&^e<;PD6xHvUb}_FCtrz*(n4?Id zUWJ3e(R67x)E9X#B#!9lpZiHjrZn_U0saYw`T;?1Y_U*^MRJ5&GZpRc7jp#LCVAj} z@U>e9&}1_{%U)?q99#LjeH`n|hn6R&@W!|IL4;&rgm?zkB_&zy-xJ729ms|96*FWg zo>aCEmv*#o5ly3s$><2k8_L&ZXJ&ika+G`N8I$;4i3nOZrvfF1PL_U)s)nioc1Ln> zqI$HJ^f@3Rj|^VmYdZ+0L+Wi4Gs_YDVe&0O9hwbT$?`IhhRhI0n|O{}?C=3dsNXZ> z!Im3lHvGvqdp{o4UpCp5API%?gjYM$l$LPUPyXNaYM{FUYV(M z_7ctwr8#PjYhU555;bTZs98A_-SP-w+i6&z_P=+er319yzmgTt!qnZ#=kskCcK-qp z5&!_P#?49f$6ja5+lGN=vVP^An^d*G2-s=Q+0>3y{9p^33Ku^HJm+RC#36LPy{7YP zn9Vwc3u7OV!$ry0TOLi!b<8=2-{I+jPQ{h|yimBGebn2>P_Gns@0Wc$EQ~4#cT8pf}%R+aGMXkHzldma3!oLeYqcAYVT`MV0wxtaCkQEHqcLNyaU#-X;bsXj>*GIY3l*QSx4C`Kt7)+tTv5nu6Z#JDech&$uW(E? zh`>`D4B~u_&Q;ZhTC)m#@`5+hY~sBFBcGfL6!jD?-=<5sEXm83a*miashi?|mgIQ} z&>Xe8EBt??w`6`eQmmW5-D9}-<2kzanc}st(mUo>4a-Y|q>J&t5eq@xQ~(WH7~~r{ z&p+nNq$i@Y(3e7i6}bTn&SMU;27kS)?iMigB0^4h@`sQ1r|0|!^Z3>6d&*n4hm}N~ zTiy4-@kk3Qpa$1?LJ5Ba3T~nSIKL7Z`+I2SzkK?+4D95Qu-1`|lGo5m{CB#fBjVY3 z#J_kh{~`DGf3$FZvqxJ_qU#PgHn8O)wO5ad(>l!_n)RGQfvzfL-SN{a_PT_Yzq$aC zCO`wv+bsNdoASS0PWL2*NN3HrQDBPO@zwjn0hH64;KnGKu6EIB_*qcm`7ZRoU0Ui9 zCu{lv{K}tH<~R8BZg^qYngA4M$iBZQ)F&? z={KYJ7{xpg__9kf&HuMAJx)nFd!+r^X;tIy75WyKZ!`c%;N!a%;;nZ30DB=}(9ev0J zK!4*GJA3|=Ex*6nzG?O0UoOD^`GMn<-j9EXESlT{X!+Ory}cIvJ1R50*{lKObg{r7C*u@|MlQQb$@7W)(a{<#0Y+tKGFhF-j< zw%E(=$|W!I;q(11e0Dw{kE!OACe0O@y_fDv`|9_{{^xAdzkkPH@BWOZJeVAieh+xk zN3I8cRlY@{7Q|NcN3OWv8!a^+xc4oWl|J|X%~mgZPdX%e1XcO;)Mc^^%|8D_#6)-T z{!0P!D!@@GJcIo9ziu!h`mcY-qnA(iZc`lYJUgvHC}!c0ekg>;Nfkl3cTM8 zPyq5D(NFOSl7H{#NVF=>nA&pCN)RvGcEov-uut@{yuj8S%-ht;opywfBfMe zfB45A{xhZiXJ7oYFaFsV|Llu@C7b`R9P^*^;h*#2|L%NPJuLB9{^EXB_W*xrE4Lmb zbT(?QUG9vs@41UFZr+nP`Hi)f@-0oo#k1FGnPubrB7+eYOnuhduD{hKdk+P`1a)a+hJ9_om@k zo$N76ng4i^ z?3@3;9yXulf2{cXR~Wi1t}jF>p*{-Nk>WLSBK()k24dwe6egnGHGa}of{nJJmGfwAR34K5ygu}2w6 z?CQEARQ~oDYPhsB{p3)GK(^Uh+R34>>mLH8g?8Gxc+oVHo`=mwU7N%vEB`)EhSje> z)sB$`d@X|B1spr`{NG-0)hS#rySG2WFU{{QK*yIQp0B@BIi$;5h0$~m-jF{Khx6tP z=0k=y=d_qo-`GeaIW?aeeOagTJOz(>#mJ0K zfNtI9AZ}o51}VZ84!Xue8K1M!)IQHV+al<8a}J8Onw##tbXOk#%!O!ZB%x9Az2%=Mh+doBC@H#o)$y-nl1^wIx)Hzwz&K4_ zUzc#FrooT&%Ye1(*^liGRHP}i(BD3Gm~pH7d>w}+q*=2Gxk2d5yOFH{FV|0G?Crl{ z*1}ou(rZ(a3ohKZ_>@8nTlRUv%@lp&%K6}Hg^w;p-s@Wnn zsNbJvHr5-f-7ZI-KjudL>E)QrKrrR@%K%~je8Vd4qCww?ih-SuA^HBt(Z`6{Y>@sj zK1wX3=R(C(&4#&i%$Vd8MW5w^9n*%QY*yX3cNWQqs;K zzAIoCWkaicrtHcQa=b82x!VMW)-bAnkq<^cUS|W`4O2Ed+hy?s)lzn)lv-(6_3;d_ zOND{ml6T143_x{Ue3kpma~bh7KOV6&PDk)&6EOG4$ExGx!x=D#gDN& zSU=EZMrMXblvs%iM59ku4>_-iQB$xcA6ptaqj$_zI^oz}jCo)|ZYr@l|Dnqn_gdY% z{UTw&>TpSF2+1u~tPRZ^l&UP3hsShE`U6C|B+J=wEq7O|>AU@wF zG&+3co}f7d|-!B@iuc0_|?H%>$UU^ISLr^G?tO^(gZC3I;@#d z++E#l(dkKx-|& z8Je`)2P}%1_E)r>>qQG7Nhe1fMM;nj@y(^yC}Q@?xbNgtiI~vg(YY>JYnk~*NYZDE zPfw3QxZbd?@?aVxKm_j;R2)1$3Lc>j=PT`|>jrXnndc;=H{ZxBbVa4t&1Ge#%r?U| zau#w=ZUn&m_rp2|0QJ6n9f!OE#ZX}}Epe0=>D7W}p+oLb@%a@zmiKdpuOKb#$-p@L(50 zxOKy!ZWHA5fE!ARLHo1r>^uE*vt6D!4&8<9mu`L|vflalhT?+6c9JbYKH_l_-W!(} z6U1B#b=7XlK9R8@Zr=cL`xEZg%O##zdA%w%nEmM%;dYSFjD4$j}-l6lu-#9@`i0*RON(fnc zqc~VJ*#ojyeJ8Q{qgqyUe_k_5EE&9O-JvPH(`dU_KG~RvX{ndYf)_gp-HERgaTBrd z_k_Ob3#nNtK>8e97(j{CJvoYu0Sa%8t+|2z71`6v45gPyp4j5)LJ0iE$oEI-if$jsUDRDP7*u~b>Tp7D zK%i?MBbxPQ=++4mL?BCWJ*`+uToz{ZC%c$4RYat?PZXJ;nzyA%j4CU)8su*CL3asj zwu@D37fSPAx07O#eZeek&v7;ar!)^{)*x_irqjW^Leom+V3y#puJId(DyDk&&FpT) zf&0;ON~#I{J8Z<|tSPIdJ;YYwd~v1-)PMSieg?iv%tu2H?pW*a!W$F5)&lR6b@Pi{ z>top`=rBpYnmJkjj=GJ9wAH^!vlkOFxKi$D&@0V3ud`7NLw()mGVZEGuIp>2bb-J$ zuNFFVR%vv{;+OLbmbHm?C^MVY&74BHsH<=h=i>|^Xo}_KK zLqFDYVMq%*jESm9e(e4$->Gvm3sZ1p54pYWq9}@BVQ$P<7Sx}_f#O{j&Jp;zgz&9 zwUcF36!mK|^!?kIWVKu&yCJtaQc=*8lP9F7E*h8rNW{Q{7)zl9%j0Lo_-YqkqcdJ< zp3EUgSNkIG%>Qul`v}v6`si34H*08Vef1q8##m{rLwC1V!D}f^9?N%EY1F~QH%VFX za>~@o;DQX~o>>GU%e8GQ+(IOmF8eg2i?JRQe6Qc3LQRT8pPs&^)X9W6$@S3Nz9Gid zc6^KO&6Lc__VP}Nt%yqHQgYpn#kAzsKrU4qIq_BeDf|~gYLRU8+MMk%Si62L(F)_- z@x705m-@8*>nYblNA5>XLLlmzuqr}bP7UX-*|<{mVE`9;K0&~DV{q*Rs!H@QSwP5A z*?5q9LT)nhZpN#_SNNTBIL!d&OjDO)VQ zEm_SyepLzsa-N57%N;k;_^;a19gbP(sUWSoka~7ol_=RRW5L4^bjG_pp2nSWBQ)Js z6I(G`wZckXA61Pc7>DeIi*16%3UR_>gQ%!_J11UMA}cNDUeq1bE~%Nx@6T+`^kH+%}NX`HH*vMviCjDKV{b%$-~WmdS~w@ zN)rTO2_lBohrL@LEj#h^%_!2Tpfdkw(VcOT%&tl`+K}H4=xtTmg#$ zHF!gRp^76n{uX3(KEE6-|bi2MBUSt&|4MuDw8N`MzgQ z^i$(D3Hkb%x=YP1CBc>E)*7F1gAaWk=&3NahwF$~K-tWWS;(Y@0a>wQ`s41be9G5H zbaF8-CHY`C}(MzZyJLT!rcr?c_`f{mB$J0#%V zZq51BwPG(b8W_UtHiFDkAN^<=MQiCH9WO`qL$XiQ*7dr--%@p){Xtd$eb5ktJ-OFr zJ}!^g-Yi_ca+<0#o#!XpjS{p%-jf+Ov(ZukcL|pulgszsl-&^34~))p$El9^cq=W) zDbl`4Kbfz%bv~fGmVLmvhA|8elpRdxMpvsLa3gf8H#duIx}&|#2{x&^Sck_GwWVz? zIows_Jsb^__5AW|nlX=i7oL~$@x!lfCM`hATnu<#a=;=6>yuvF&1e@mT3xpZ_}DK@ zsF_R9mo5gAmG?j59_VE|U53_YXv`EtwQDXLY1pZC_^|mVy<;iZt@qvzHZij8x-^w! z4CI3}!olY!>*@W6j;evtIYSp3mmS%D4DcYHcpY|C(7xHsMO48{{|T0XUQvh{ohrFs zG+H&M?K)kkR*L9SrDcIEjN69qT)=gfoIp&RzW95oYGT5mdE#bFvx%w*?Xb5p{PO-t zQBC&@f9HE)i!!N<`HE&J&#mu_lM&Y&$)bWH1+`|u~ir9KBCaL|<9--VWx|r5y zC@?CMp;weO7}0hq{#=`YAZVC?>0!1>7F3+M0=*&Noi{;ZZ|3-U*l z6|kwWjy?UMY8ri_s!NabvHV8m#PA-Bv9da8K*Jg(0`CdiHt-IyvrW$|i`6 zkB&Cs>eoISUugWfN{eJaK}o6+3Z)@Db>{Jf-2jhzwJd~*jOUJz)@IJasfcK;`|nR* zo4+CEm7-$GgHNfg?iiyPX$6li8rXzv-`{a zaUO-X#JPwI_01xdnbekIBYuSQp+1S~;su~{zV}ld^1B_~j$5Op`=J}WQp|Xtl@r;? z>%v+_nf2Di;VW)4eC;N&$x^WySpEJ7F!aRSjqw@0U zQNNxIG(S6)+_w4ju7?BYWAZ%1%Fuq^5UDltvKk2G?mlFtYc0j^FJ;7dmW>=O)O^Zu zS5p#%|I&0f_MYSKzz<*YRd~DY_Vzz*05L;tA>&9RBulJC1IS(^3G-2pe;r*ZW=XXGR5iN|`(fsv&#UI4r!_KhYhK#zK z&1lMd1q1UjVDS~fXIkf0>bD}kXfmzi?kz4Q4_d|=iobVvLU0^@KUiXqkgPU!eyrE( zk#)a6K0N|8K3TX?b}EAZJ#7`~lwjMgV7}SDuI*{4&(7X}c5w&)fiIOmE08iYKgK!K zfXfat&&R2qE@hxV6c_EvS+Fe{8hWJMbFxd_SIUPZF;q$IP8gscc+l)7-=|SOl(Spr zn27!$`sJMhEkWg{D#?QMIV^@mXsjZHHedU|eWo-DNW@{WXR)zyGT|B0(5c;MUtUn= zvNsezAX86y)=}w>*9!b)o28IIDbkmgCSzVj>&7 zyYWFLT4&)y%ujTYHt6(_+nQTVQPsiw`u;Fly)w9>ll z13@55b&@W<^`n7n8iqIKVhOFte`u*-Nh{#MvpL)}JCg&$%gU@_#;LXGAHNLxeqES<5`V@Pj4 z6|S!_c^TXB7zF$cybyf=-i@+!V6;UD9#CGekKRudnKfRqv0e5L)UXly5Yr#84|p68 zcAb5eHvWQ^p9d+f@kH0dMSS&|fipnx@s6;PNrfE+-K2-z$R$b_w*5@KFuMRXsqEHS-wlS-a&7uP6w@Hq z1&X238>^z565F?&uS3LNEh6FUH_Wb?6;baG&z2s4sXr?q_;g$DW~}G^P3IBv`;93X zYueKTU361Yk~7qbHaIWs3|^}1c~C=iqRa;#on^}1>y;W{Wew*$^qC` zz|%AX^T9Dh!Ny0^H?dgSxJxe7!j@sB;o-YmJ_-$LjtNDJ6O-RX8k$yJ$B3-+TorIP zDw~B+%S#UAWpAZ9j&t6Fas30y$IiD!;exvrnR2^?9N4Mu^7`OUaXT!^C8?;hWL7k9 zlOu67cC*ZccXGfwK8{(5SD`D0# zd*^C~jY={$^l0IcT=RT4zKIfB(CJg&ph0|qe_D*o+Y8nWvN5CK219mxGB!qnZno{s zPBvdnR)=3SMocjzWR}-z>?U4MDk|?OqbhfROnOI{GfiPLR6ATarj4m4a1K>c+an4? z1a~R_GAe^+@}p#D>%RIPgHEuN7}u_Urr8peW4!DBmlnhw+|k8mIs2-sxTp1%BvJzM*eXuX z$3N^mxyzSF^<+K9yuN6{kodY@8oci`!b7&q*HqGOX4R~=L2J3DSgs;i^Qo?ZM|OwT z1_Jj#r1tb$csvm&R3gfTkTJ!+7b3AdWeMe%()ksKuJvZCa;(%R>G_*^Mc1M{$yHzS zWad|na021jvrdrwq(Y%krwtdWEH*034Q_u_KS@OlLwIQK^a*oqhy1AJ`Cb(WTUE@hP^F|N1dw)>9%hptg;!pHt{8~c*1d@uz2j$=u|p5-G9#a!W5 zHoIIC;wv9K7{{E%i@P&Y3Wg1hQqb0X>D*){R}AYjTP;@)$X34?DO-E7P*^kG5Vj~| zE3i4e20|4a0rQ*FV+Uo4&I^LU-tGkz@(g_nSBvHN&7yX>IE#qYMHgv3reSIZ@LlZS zLt|~$cn&P9r15;OEa7|_zxP`!nWvSsGQIwlY8MF?E-M4NV`%C1lg6f+>`63EEf8<= z$gI;Uxiz>9qznC#c)HkE)()v3CpMDR5FK{%@jG#bXtw8SoThZ-qAr^gl>8VgtsUC4 z%DbK4r-zvwMU1@bK6*8mJxX21I-{ZVk~3Z8Yav)Er=lp>h;3d^S+FizIy&RES46X7 z)?1}{5S_0r7a_egc~Mdua1o#R2SomuQxl#ILX$VYbUa`w!!crW3K1T6H3_?d)OKKl zJ{li&8v`3hnqDHrmVqEvWuMVjz+p}=9#4tV6ovy}Fsr3F!621t^m zLAGz9NN9;WgzyY>H|hRhhMi-WhHwuu)}xZ<=TtEtJw(aiqP4(L*38XR%0qozDn}>U zcQ%Eie{i3il$58tC8>3Uy&+xdnSv7gn(E`#(067qC463vrzyd!qcnTl?yfFDZ6eNC zYLR)H^6IAnj*s4PJ*BJZjzD0Dy44p4#ZU&Pl)&r~%5!}uhD9B!ZdKSU5E4Bb<7iV8lw!&T0-cMf=){bR@}386MBs7 z3P?;LeyG;*dc82)07tuJ(+W*?UuC2k5eq)w#{oe|n9jh!$9nx7Z4%Z+(GCJ~wB<^9 z0a>-K8k+L~YJBr}U)g@)-Kbwy!=5kbr8Ezb5E53=5q=V6hU5}Lor~KuwJ&uS;I8nh z7h>L8RPB`2hIq`MmSotNt$vYD^v)(4pE_ha5I#vrM7FC9y(u>qbbm|_?LLaw6-K@9 zvX)M6xd~P*HVubd?ouA2De?ai2SjoMKLiuu-c7 zt7ooEx;05<8)!A1I?c8}`0m3&J+ZyncC8ns3p^R)*{m}`q@Q!!W9gAjv2j!j9lP5X z=lOZI0$~*vLFrfo zcR@rB1M{1_Mrj9Asf_a2UTD~ua~uy~#M3(?65Cib?|a_5mo+(}cbb~vJ{$ue6v4ge zic5iqHkp$!q`al6eM8M29i{M=Ffjb+&&Cr2*{JD|zHaU?h|Rf>iH^EK=kl$Z9mO@o zjOlsk1cZ~itQ~~MN(mn?&=Id#1b7EePr4GM(v;?0S>m{i%30*bUd=}H;Y4$@gbQXCiAHi)LF~GC# zxjOELbhQp*DreYh)?e~i&p56Om>QOPyQxY;^g~9JTgZXn&%F(gMw5y=20ui;$W_PG zYP`ODWa|&^>nCAD4-)=h=RQmI-#-ty)?6Kd;DV-*MU+AxP;E$`|PZ z^rotYv)8BKXJL`v@Qrsz9oamfL$+XFvagQGkRD>eX7Jng-w7L;vw?TyoE@Uh+%Oqq zWK6`I4!Fa~etIms6w= zD?}M;vgm71ydvOQeT$=8ziyd?Ii_;v5v){qv^UzEB2k@SxZOL~beIlYDAE-DcM)yzm)#&>RO_%y;7-%<`wy?}v3NuLnJ<9tBHZ55g@jAr~?a5MrQ)|J?2 zX5J#IV(*08Z|x;tPkNir5P*JO@bFr_n9xRfR(^l@)LlJOsT(xwlY4A!zMYD?Lp*15 z?!!A}IXB$%lNX{{G6%&u_XQV?w?Uiq@7whSq??CL!kFU96?C$JY|8NH0Donp2bsV- zh%;$yS0J`>vrxXKMMlR|3z!nSXZ2G)-N-KQ6Uk-wrb~<|oh*&z&PmD1=RElC2%_G^ zAJoBA{J}Vc1!B>mV6<%742MkX>lL;o=DYd`!q)hCETE*($rMi?iS0 zT=C&pt~C>~Bt98vOaW2S?q^;0D>m_#3lotOuo?NnfUK=3be_Un&M;6fF-7*~4S6z& z2ENWX^mk3cw$FRoUBkx49uDy#>gg*w2O)YoYSFSB3B{&Qd!G5zf3DGI82+-G{(Uz1 z+K9x+BK8>lT!Mf`%DddJm|4!}&KncBhiwLJVG>0WDl>E@t_crDG+`rd z@qCXDJy-V8RxTX-JMY_X9Scs0uLV6>!Mt~q&Gyb=$&BJ0ncRst;Y>t*yw!gStK|Zq zS_*`_FdubR)z0}U`=mg5z|heu{uqP%S!@=-#9el*ozxB9^+`cC1~VP06E}N$v=T;D z{OMcx{e8g5$GiH$o8gwcB@94a&HGcodFDJlUh)2g*Ui=`U3Xxi=8(w^o(wx76{FW* zt%QqN zrTu_D6Re zRg8SygnsVXjXxT)Y7_DWe^TyY2&>Z^K*hRie_A>!3y?s|^u_1Tp=H4y_*sJtGQ(Y^ z$=$YWR3Xx9*<)bE@2~}%0UNuzStNlFIh8Oa1!EIrI7Kjjp|~Ps0r?W!{kr+085yy@ z9MdTBsegbj-GeI{Hnk1J<^EZR zDFE$*3s0rGER!@Pbzz}W;~`Fc$vli{>8A+gFvX7;yS6~hkdjA3mh-{QkCo)GemUt` zH_jN-%^4UT^WEAr_|m9h+u$V*j@+!@9U?A0e3v{o6-v+i_U#zw-M9#I{uTO-qTmx@ z$vO6a!oD&Px1N6gUcsM3bM3WSo}*cPkWqFH$7)#x>SLlBsul%&>6%4%=y0DY77yWB8f z!fHz^00we$27GLN;5co~cpxYQjfABzeNXIDaj)Yfvq#++dePm+N!6g=g4Oe&#YkV^VDQPDFBGI=jZ(Y&yN*&~ zJ$-kPtmyJqy==uT4x~5>@pK;IJdNMGYBsdQ;54_N=x5vfE{nTNJ}I^Bi=m;?TS#2E zgvTtH3QeOW??~eI{)~=>EAikx}X#d zS*|9QnC=g7n5zJsCx7?7(1nko`1OO9;X9q%y(AFnSVR^$E5CfD7DkUrB&pcv6iV5k z1YJ1Cki%sSovE>ip4RggvZc$+~^q z&i>5oyY>8sd|vyaFU_O3s@t8INGCH*XI{j{oc6tC=wT}_Kok68DtAU7nbXxYJfM$= zYZYYg?%L0+o^rG~La#A|eBsZFWQW48cvuOGfi{bcuT6al@;)PX}zIkB-f);$P^lOi7hOW+IDewC`(wYej2&=l@X(6Y8vfxdz+Cvj)umSH8R2hBH z__iU|D5%m{&e@7E3|NQA3E(h`?REqKN29T@%KEKd@7{yjmwCzN>g0v^-}RF7w6tLP z(55f%ZnO?wi|))hb^y2tik2E5JM$td`aojsBl!6$mHvdf)9Jv=n@TLwb#Sl&q`Q-* zT)WDmqHxYQhIjYbH8QN3#lQu(XnO%llRT^ z*}SFt1@P1k-FJ_JR^V4^4~FyJ+t&%1y3%YmmPKI8|rcT|jEQbg0OPCPH= z;f3_fshs8WyRT8)^R0B~YUCOWY5fvNpz5i1&CttGppN+xv-CkBCn|Kx@FC%$Bihi< z;#=OpUZ`a#bNneYvzZtA2$y+#pd@FT8p&quw>0K5PtV7pKqS(&}YQlYr!jtbBh0{)WhL zoE2(XH}l1909mtQXjf=PpsQ0#cT6nS7LQIh2B1h_YqmuEKkU6{RFnPoEown|Q2_-M zrS~FDqzOn7q(e|ZkrGgP3kab|35ckO^e#0ZgieqS0Rk34dT$93kWPTmLJ93YaqoT3 z{-68he!pi7Kj;`3@;vKT)|zY1xytl@+gqG%e_VZ6pX|*ROS0GNek8ajA4)Ufm0(Wz zwJYHr@KfnfvnZANcdC@a2rD-;kUNu1Qsty<*WEe)VpbS6>lNS%EhT5NWIkMYxAMlD zR}sgB*{S7stR<}G+hiQHmni*`@lMC)TCx_k(tDjpYU_zWBca1RQn*?%IX1_0ZR=5s zSNoXHz|0m<7tv?7lpdMG%fP$601Na=V4IP=qG9|{n|-e02|iiTl2w7|48k%9>G!1P z#Olzm&r^^s!#| z_#tNYy5}Xm>Qxi}E$wx4@$1KDGe2o5;fa$5Gnhl6CedUJ#0|v351SAflZ`(EifobM zgbz28i{D2Jy|%b(@?_~?nl#iPr=-K^i2U$YKY1PegJ~&U{tdtiEO&U-%lhof^UMIu zL`I}2lSXVy?sBr{_ZbpRrA>h0QErE=qnSBsFkz>Uaft~w3xXAv=e`<9XcB`2S-BBs zq(K!X!jc`%pf;@6mg0eH{cMe%$LADagm4}gQfJsgZ_v`J?C{HAzz;R(I|Uw@Q~wCC zNQzBltUR&f<~L?->`yQ4uiV45J?Wr@`d*#g&o44OF(pnz&Os|r87<#d^#s~z!6e@r zTv(|o&8^>!3m1D$dZKrDxg1qkEt0y8ScTB;L%F1ADYPU0w9^*9{rui1L5{PN) zmMXS7WjRL~NuTH5ai`(yI;Q?r5fs4QFUhg8R`-y}2{kc>B;W zBehz!2$IklSyrBl_hBPQbmwjj06C(<-mUXvfO9gl-3F4^g|NF^LsVYNYjaMQl| z+!8B=qM4s^_ALWDCNYK@!?>#eg%DbNuBob5OV3@}g;&?)_EzAa)e=B1^7Dxu{JK*m zVZWd5EtDv{NiB_xj%#TuTUVsK+a~KH>p0jdrBC;y!Ae^CwjFRwdm&fAqO4aSaqb;I z?DZufvm_ww`h088#N`4ll*R5B=Y5>VGaz#>q%O?6ysrNrI09hx4PoFrH9F98t?Q#t^05omM6c>pF zl51f6^h=J!=(fEta$w3?9@1AmmiBRbV=T`pU665MUF|S#?6;Z|x49fAgjS(TW@WH> zVDg?@Z@oh31uYt#lCvJ{f%Cye>h zie(waPE3qnC%g+3BD^s0UudFkt2LCG-$Wq=zxwfNUEc{Dqp@&0BTFHo6r8k;g9_I! zUNnxK21wIL>dQvPU@o54iEpw9;Rtj7>O$8zJV25(i@eh`GE+PaBe0KPLfOcqdzphX zLywtOqL@$WQ{ZTkd2&GG;NjXUHJR_3TbdeBhbtD-U}yu26z6qKy_JkquDZN~L} zGoLk6&FZe{^voH^oBM%eJa#Xsg|*w)9_eaK22JmpCYLEQySg4t^fd&)QOZ_kWFX1m z9O?qNt#*ElZYcftgn@$Bd1T(=&lg8h%R>6A=s*+H)&ra9)GzuN;bu9-Jxnb2fymh) z^hqa4B$qoC2a~B=FekJq)z`M?cdf%EXAR>m>Rn}Wm`(TsUE9B#y`P5dH)VQN4Aahd zSN4hx4Bv5Xmr}HJ^q>74K9KI$+dbrOe`_1~hcigbHk8ty+f ze*cfVz%IbXpzdu$ zkekFIm+3Da!!q(}+Pqg+Uo_lu%xiT2x)w>bny`&U;wDA5t&z!M zs4$*g6I$HL)g4jXPPXF6R`iy<%67!xHHRkj7+S9GetsvhSBw0++$MjevpE+>!bUMO z3H7lU(;ws(#Ygu}78QVP_PA8o3U<*?v@NjSHPv@@V1$#N`*g~S)b%jkTG6rcc$H&e z`~Wg$=|Q6nZVpRSd-849kN?+=(=cVtcU%aV(-6g&%+K}3EuOSt+AO);z@)t17xJPI zof5ZK67dHm$b+Q9pG%c#I8|toa+92zb{Y97eeUXYvgMv#_vbt1nh>bd@gTLr>$Is% zkv{)uqh&qEo25JXKvYC$sQ0!~XX5W%(&{LICz+br@+MJ1oo_c{bZ?wMglJl6MunEHp!9hS>{nqxv+VgsW(#>p8dcLcj?OyHaqL{ zQ_J~{Qc08!F>*_IIFK3LeTDDjEa*Vu5OIP_=V9%UrdDR9ecujWEcjtAb6l#`tJ_sWt?J&Yt+JxAyNGCBL#;;~NI+TmkuumV$_*LMmyYd-~t zZcDH$*Ec04x>QTmtJA0+W6AcOqtgo`Uk2|D{l3?Rl#aC-;Y-$gt&V}`x#-hFQL!@O zN3%chPD{cS7xVSco=eRQJBCEJzII4spLnmx)F!zR)aal!ruCrXO?-Elc*UnJ>gAN% zM>ls^p;T#nKnB(+_N&87=lqnYb({OL@2Nk~)M^L(O_NdEUSUBvD4o*u!>ecW+;oUz z`k(bx`jBI%v87X8<~scsRtkBA5~EQ%FdqMagbKzy+GE2wI%bX(Ltf&ztu_)^CDsv> zl6!qFS(=di_w{zv&SmjZiUwLHn9~`p{GM%OD;VDrLufs0b?s05{arMtTA?xUv*8Z2 zyDFr=yE&W*%6rM-DVZF3cTB3&;GclmyWpyM z#aF7q%L_i!;513De0zA=+H9j;&j^meK156u(Qpo57q6QO{I|nl zkTJ8sgL1G8%6HG|Za5ejMb{XpxM0HC<(jF5*Da9*g4V*Elkw;70OMRNVc@kk(D>_B zvR`h<%t+3`Unk266vkeXJQ0Go#I1!#rjsj_ye&1^H!PcKq&vBSOrl!-uD&DEgW*Z;bmB{+M^!R z<>O#|hm?A8jccGEiV634&Q6uY9yUOKYvZ{S<9IF4P>PlswgGr$E!_`6qWV}LsvtJ~ zewP5B5w|safm>N&DO=T%_@NvlzJzN@CH&P}ae&fuJ+aeJf?slg4Q>&8VgXdctMyA~ z_g>fl@*HD&?{U}7j}k}m9Zd4SX;~em!yJh03y-oy$R|iRPk$7ePdRFwUSCP(fqP0b zL`lJQrool|D`>Bl^_J`-yybNN2#!pV1n8HK((9c4*?YL!s-OTC`%@)}C#@YGP~$h( z(*s7;0o))zv=^h$#X%pE^d9hm*k`T3GJIH$ld?}DSH^udBSi)Caku_vz_IL&liiG%Rk1c~P&5e}NTXmYB{bR4MVq11;;dikqso?S*AzeyolX zFs-M};!YCKmSA9L*0FS)1Wm(gbKg@1iBE)%S)ToV?!0t6`Pf7J>IJ6Dm(1r9cK!RN zd{}Qm>mLF42=ZpW2Y|x_an99$82MPCG6TogDAuUC2KD1@--s0bw~`k4`|UQ01Ac;vjO4XBuSK^AmH-m zpTC9;FAM(Z2ThW*$0gz-)<$)Nt&#EHP7b8Va~b!(D)p>CJg$7IIlq_oe15%;?MQbe z0If!HtY{Qbh5!=0|Nf(@^%gYa?3Ozt^AYUZ+IkV5fejL92=)n4E+*3|?z(4*|Ley& zFTCDRdA}+DZ{_T-8(BgK@;O}%RKa&4gPB2olxf?4Z0^xzaw%YsS_(6e(*Y-mt1oey zGw&7u^-BJ&xm8x8%d$CZB#0G|d*g|Gj{3|!(MN3&y^F7`hJM-qAU(ajYDB|Q$#=4dHf!a4Ve8DABH8%MIr=hevSocjBE z0o}8PPL5c420%SXn8(fjvgi01I@z!NKSax#ye-xZ>}TWcMLMErjyI-ox>Je13^Rz| zx>yEZz^gw?MGIYlaTuP5v=?CH7@+C+~9jZ+>TXQWuu z9$=7aBxOpH zJ@*VDFzG|FT-Dn^K+BAmg~{u;T#iM@-;<;GA1{GO{*R**P(RnmtM2iEG#o~>ft104 z09hocS^L%rc|idCt0nRECYUJM-SBzw-zslq{69~w+jW$76(1Rwm6Dg-^xo5cTj1(^ znz2pbpK)p()w)6b@AdSrRYm@&J-RGaOQ0?PRN-`9qB=5{c_A<3%~}ib?C90dYyZ}; zr0TZ-iY9XXLh647>R+!1!mG@DZnU||{hP1;!xNY4_5Ai{b1ThT7tbK_$kHD5hX1!M zz(=a{Q0{TOn=5kq_JJGFAiQjb9-EIo6*~of_6P7*X(d#s{>Re&KTeGQIM__^ zmgJTH&mJ%T_xAwr@c+KI|GVDE+wA|p>mX~L;~_=c`;_+&DPG z;YyPxQH_4{1N>yG2E@?bf4ipmzaUaZUOIpM6Sp$7k4$1u!(j|qzu~68IRCl#r|{L| z7M{8Gh&y0d;2%({sUop1UVaB};U8F!@*VhLMHqaptJp%eOHh<{U!ocrFSo9Gmi6#& z*3xp1d@0_$!H_B&K&2~xs8k{KH;*p}NiEH$er8iS1=yneV&$G=Mw+FBg#dy#-zT$TT=Dh;L#<@EhHmWr~;Rpfl+x+{d= zbo8F~F^srL-{A6H@GMZp>r~dhrUc>8`N=z;*JKwXwj)AHrj)Hlf{GsH(b5uSGMb$*AIT=o>Z3C zACiPBWpgK(q~710aOp4^k^8PX?g26bU_qB4y>Zu%Dd^UXcongqsP`WJIGLwliuzE8S7x~4MC6>$r zW2$9FeiXYdqZ9;(X+HBhNi!U*&ROFD;WQsB=1;jzp^`SUf8gs@sSzMuQvnl>K{BT- zO0OG?%%sm=W5qT;J&Tc+$duUGC7S_Qv9(K(U&6f-GSjf6HMEVE^1?~XF8>lSQbxw- zb#3d7$8>KVM7#}vyl>noXK|FO7VOZL-!PtpxoJ?u`@rA#m~-oL0`g?;YcNY6#;{nw zEvJJ75UBxVl8PT8(_>z0OatP?$(JKz+%*%u^>pG4*Kl@e`qa|%rM1&Yw9NiPm-~*- zh2NyTecR@J6-ZH46w?o}dqZ;{7a+n33{5XL5Mbe&qwcff=cVRJ-IO;YTrQ|)?4ALt zbfYj=(b8e&q_zE}aZUR8-DH>T;vs{IOSMxTCoxACWdVdif4j_{cGBuypY1}q-Y46I z*-xg*SyVuGNaoQU!tDWyx*YWeP3tp{HN{9@pOqPV-L&O9Ji*o-)O|}FgjvB_=_-_- z)@aQoF)Rl>cJ!n4%ABS(uJ7anq%axzQQxsSncrN1;}CFFk)1z38py`ZUGG-aVFQRU zy*XpjlUO>s`}g;*_m6MznNEq}pUTT>LHnhyina31^Dz|k;W(S7&&b?Rln0!yCr3T< z%3xu5D2eXWXrBy47Ntp}$j3}C_M8FT8Cesb-^&8;9^gBHQ3Wy09R=7%_o^#hoC7NA zey_^J!+mL<)B5#%#Q^VyzTwqRFdas*FI;0;R#90OAZhU$*Zn+iQVauGmNECwiyT?p zSzg1Q)iQ=C&rOLM#*>QWsP!{Vf0}JJN4mZ-oHVaV`IAomu~}2Yw6)4NzyHGp*mbYF z|G2@Qs-Lp($&rh-J^_H~L`Kb158nk=onh;DbQ`z_ zhb15d*|=`Zi;AX|w@fOqzcmKng|p+to-v7b`5s*iRQY+u-A|74CiirdmYhIev2brm zVXOJiudsSq5a|7RAfcZD42hJgE>c{f@0WA>kVgLu1_atD=Q7)BzM7A4NbD}lyh2=V zMr|2HyTU3v!MNsUc?}Tg*Yly$4Syf>< z6)+UGjX5}~c@SyGrgkwwVd^7vcWbBtbmE*TQ(?M|>ne73dog)q3XobOrysN|Aj5cf zB54ygn*mvRai9LARxYUVWcNvw;wOs@0fw|)nP>H`3ZG(~U5<{3^))>mC!KdrE(Egx z!Rvc;!|Saw_4&x0(dRLU5P11X+gJId$;|*Da+w~^s>Rp@n^u)VY9{e2K#-5nyyM_H0{U0c8pp!=x~JgSwVbPc`UuYH<40N`Sw>SmvgWS5y~o9?i|F)E|Xf zK}D%Spzzamz$T*5liN6mgvca+_a8S;&IQu}-(Bp{O|N%v)s*K7s&ASDF>q-vUykCH zc?b__49%a!^sh?uzWDaUDMbAmgc*|?t*UdutxxM*4I(p-8~{dX4!xZfqiNu>8@zkx zk-oEM5XGxU#-UWfH7jDHIX@q}_jf<1|N98T)^3%vwU;K#*VMNJecwT_AIGI%XFFPT z_^(MI@Di8AJ0O8(E&sVrIR_AccHHSfvh!*_&qoUNa0^V0Y`vO8Kf`qgR&s^GPbXP` z`^SN$ngy1xJl+?yRlJ(A6lna{TV>2>fCz$5ZAgrqKU)9mG*)e_H{d$KF4~A3N>_68 zEA0x-B?xXc12s0Ci(>V9Fy+`Y+A{y{i5gaZ7fU^*!^c}vFTBECJ=6osS5L`)XKVMe zz|Hb&-@snG!)4C^@0g%(O{ykuZC?MkIS$CsVQh2MEXe6e6hDiPjVJv&335o61K8!{ zYU-UviHXKP z$+LMJo|=E8YYxE_ZQVq`gqo%`6FFDrP3-$tR(m7IM4q_a&Gr^XIXdREZCfHu?^#On z8*o-M1N~^(Z>}dWdzW#jO3}L4p@7}Br)JS9elM!W=CusU`I2{5D04&txs~JbrsO{qRP(RV@5B!6&wIQvzV@J)EI!)2fr0q} zMC{(I%Rb-UB~mlI*_yx&-^%&*;}1fKzB9)VOjyBYiy+qPs#CVAZ{u~`&wNBHrj6OyC<_`-lLe?04hyDc4K9ljhv;^DE zI@b=|HDgyYw6$Jn($AwgST5ZYO$|~rR>rkPw9Nqe&S(6lQp7ZI(e?N#km&)g@jyCu z%~99_Fv6LRyk^eEnRbK8hfkB|PJ2RQ9bm&Ue7^h%vtgi282d^9??|Ft#zX(T#w_6# z`5>}i%H45Xg5t+FJBFg1toMmqL$rf<0l{UI-8u?XNjChm7xkFn{Id}M0nn$pkyO&| zs#=eY`WBvi){D4~V>fr#OMZwyjvC4j(y0>X$*n}=(voV6Sp}g5#fs=#G2b}hUqz{k ziIul#4*27Swq)B%yOhe9k3LeKjTW_`r@gy~Urz@bs-Vk&ZH@P~daGQDGwe(*C}cW^ zD65NAah466PQ8y9W0tl3GN)~$$d6il2?x(oQ8C(YOO%JvVj~?N{={rGFu511$o`(>PE=kK zWbo;PDLmNsu?BJN40Us+IJU=n!kBZgHM)pe(EOJ%Lr=Xw_8+8AN1Nby2c+R%s^X6H ze5$@wxs8SNVs3L@AEIj!7?$pGrQ@dYzBpGi0izbK<}6kevX(v^U5hIO3msT(nl>9S zg$k6a7O+#O%K>M#2I_LwSt}KAR*$!7(oZ!8noc&nvjG%mgRKf~%p!Yk^((8G_Z*hX z{T&hUptPI1(y2ZJ^3SKsb8l*yI??lf0ig0)N>n>~`anX}7>_8L_4`OLpdR7B@z$eNYJXScwo*h+;pan`#}f53zK z46JGeXYMT&xa}D=lagyGm(5!^GTd;Wj3eteywHCynAv)8@>`{R8NbiL?IQZDr9@N%&;X% zo?PJ|Kg3bh6ZN~wd!vUtv7V^MbcS+$^`jrkXwyFenVHldK}8-3ceRU`!02M>`VJY= zaA|DS_E<#D?dBf4n`yhzTkTT!;}Uv&2jM}r8PbioN~^**+*!Fz+4sp7CG;V~CA_Lc zC#w!`=7Q--W>*zR&&kmfo)c*M2w2w&c3W>vZr}6~-gvRM9$`WjB9xKd^KNa2@f^xSpkzes*{vKj10gB=@u8 z-}Wz{{^NSgE$!o-553RLA~(`mW=?{fXPD|Vf{u*zTg3AX*@Tq*qWE2O!8~x-e#&Ga zW-R*2xoO68+29=d%gA*^al>*nQWDys!sN2d=-Y7XK(uM^akK z_mSkd-F)Zl9;)Xn5Avlo(J74b>fJZv2XmW+IPCXr|Mbc~cWc~wPF!3R897tje$%%i zXl#W+i^jBlgQ;Mu`jT4br}$;{O%J7QQruluHz&ffLB~gQel<;bXeB^+mRL-i-731I z>fM!eqc$J8rE`t<>PX)1Q@O>$beDZ;K6rB+E%(c!y!VvhE(;gp$ zla^BWbef!NAes2O?>3h%9nNo=wg6Ta`gR?ViUzGH7T{{A#iG(|b z0ZqL}5Z6HzP)TMOk4Em$ku;z}hls_#%;>_C8c0#)6z?dbsqFXyVu!_&5#y&rbkFc; zy-|>E_fxyTGBsDBEZmKWgVi5kaP%4{v1yn#N6OrnUMVBCt8RZfRInd}AGbHrrej7T z#^VRXVY39G|)QT})RLe#k$1$wOAv^XRa{+}^)!dm8R|-SX21P%jFU@SYAesK)8mEaYywMA3i* z6+>NIYKGlV7D(h7nl)OMFpvNCU5$)YM3k2Tu0zzM!Eek<$=u5pfKmOGgc z+xF&tuI08)(7||kgO!B5ep~OVZR@UmL7=STPrVyfky`xdze<72>HSdwgT8FSB@L^R zp5SV??w$Ax!}+MJV7$U`a_Cse?q@;imbnUgFSv^PM8lIo^RH%tw&u0=!#z|s4R(MK z5Wkm%ddzL_y!Zhn%=VM%bK;UKu&sN5jn7|+QJos?u zC>hdBrKKtM#{xYHGa=O;>Wb@Mem%79dVhs|I~oz_K%*oiiOY*JTP+4|y`z#_`X8S% zp8*|@knw=MR+;w0I2j|xApK?UbAY&#$q{$^_rj45XxkAIVmFDgO?%;%5XV`olwDmu z<>q)HE?Q(RXSh_n$~qIXVA?)>Sb^-*ncrgspQ>kUkm5>*mEh~HDra@Dcs4c%D_Ayb z?O^p+q0z_U$#RyxH{IeY;&wxJhD#diT@M4MS>`^G3~Eh;N2J^NPN=O5l|*C1YRGEW zCakScNAiQY-FPGTkKw(LPAIIq{?QY9oju4RFRPOM;>vfkNh^}Yc8a-H5L$402`Y2L zc&S$Wy|i83AG>T~)2Lg2+l=A*bFGX=QvhBw1r$@E>Ti`_U0~AC!!nG47Wxwpc4@{s z;!y9Ao=<;YR654Y#Du8yHN**`m(0fy+UYJEE+6PvOzR!GoG-q}3q(5*d6|7Vgc#-} zi96mSm+Z}r*Qt$tcRoDY2y`HF=LK|sks@g6k#sH~klooAxWlH%o)zTc zSPI>FHbpjscQ~afqOWxsJSBlNyd77Lkd2+Y(*J?ZeAv!7>jiWqf7hF~RME+{B?QE2 zg5_skH&n`w6q-aI>`o;<1jcnoh_&diM@Yi9cohI&8St2i4mwPfC|`w=XV`mH$9rOU zEF72*9VX;5lNp=X|z)*yu{rzqxg2nBBK|u*Nr{A>P7GBcF?b z?t`6`vYCc@>H6k1Neyr60-E{$tTu`a9t7`7bJ7n9u!iVYoAG*H@&fwFbpR|!+jB1X z2gRG2u7EVq4o2KsU7l3}T{l9paBu-B`i&3FfPwvi#0%5(>>!0wmn@bhb>05Zh|1&UFW-OASX(U}P zX8CiTE)aTRKF^61Z1L(B6o*~6`n4f;<8xUXM!YL0KtIy}GJfFXHRpBpaq#)Ekz_y= zy2xPCtrCW%(z?*vI9ZLij9czsPOB2GULXtWMiqB|&u{}eC^0{yR2%P0NeKQ}sr=*A zVT~Ic#W5Mz3$H$Of6gFW9YTTj{f!7mr-?`g>l-T_J+sV})6z8$#sIasV?UOcahgvr zXmz*V(bt&{m(5Y^ovyt!VG!sw1>q~4OTu)Y?2J>uZIFZA&4UzSJsHO;D7!?(^>`tZ zn4$grnvY1js4e*_IY?)+gK^MeC*fgV58Rf&e(RvBpnG>~DaIUcE?=o%ao zS4XDL8JYt7ekk2StO@;3NAQ^_SO^t&N{7`Y%vs+}Zk`#8jA6~S&xPlA%0?|W$sS85 z2O#$DwKpP1%AOq3X$9d*GaE$~hy1EIS9j=ru1HB8G&G40|B8BdQ~p>mOlcM67}6YW zMFl8JKdg4edlv#u-bzm!RR^cjZ2`kxq$(d;@3mg*h$Hm-oW7!&LgPmHYFERF^FlZy zad|EGME=aE7VXBxht1VbF@yu+n25&!tQq~dFsCn)?sbOxm~=~RR#nJRHu&r~LonDs ztTJUA^0+c4hu}PVY5alN3XNM)^E~x6rbF$rFFPYzAO)CZ<8Tys#j3(`zDK{_!Sl1t zuMlR;k`&6&_;1p}si*!cbFv&KD9hQ0%c=H468yC<)H9hl+)_%d$fKSFY0?RJA61W` zok`P=CthR>FMpQ&*6$6Qm+l6*nJbeZfj4%yhQ4!%8s}u+XenE{aJ`^_GTNr z*EwbE2pc4-Yu#!4tyUSVEq58*olA9pCI51O2j^uoh?L*V>YmmF@*T*etikm`ERPSu z&%RTO7~OtdQY#3ORuIrpE(8|ZmVG`av1t$O6kYVDakLWiV$n)LbQ%}c$}SRbpN#yv z>w)a)&zMJVno(m zQv6f!Pl7gS=R?$PLc`RXjfV$x2?qQ>hef8;N-wMku;3{SpJ5acH6!~EEsdlT8De)s z#jFB?BLm}V*9F?sU(bdgPhM3Dn=~NGO9!hE5?%hOIBE$IL%w_x^)?pYmI(Ol$NjmM zG{<~(^_{8sRbE&ATp*wQc_=S+zTxE(vp|b}m{xoy=4A=bn^7QmsAZjLY}l2YGHH99 z)=fn_{5wwrcJA6M#5DBgxhSJEnD;0C8mr@|xGHON01eJ^XCnA^Gq-(^s+ZOnvyr~m9Vg^!e$A$L=qUBz zucq+iVVUT|<42l`g3aww&PN&PX1%}4b)q70c_nmh%}uXWhc-)4$>j8e+I(+VQV>nV=Mx zJcehPoQF@7Ehb)wSdc1Lfzx-5p(A5ge=0(STBkgjcTKkdbOl{Tc2~*2MRr#)-Wtx$ zCrr_)%X$iGu%Z<=b3b&s?%e;#PitO(;fi-Z=k8P|gFM3^?Wz2(S|HawFZvthZU!}? zU;z=r;7NRMrR<55qm`5fj<+VEOKLQ~{{W13Gn9d$L_!H-Q)?>eQV~@(GKfa+rbmRk zBC5UBu7(M_!{1&d+^^x0&MAD`tiC8nWxbOLxTRoNa)R^@hs5z$Bh4ju>K^Y05JVyV zbvRR>f7D4-&E|8Oak)AR+!@Y>F451+au;-vAIu>fhf2iVt0OyN$7msRYuDiANIVj) z8?fHIZkSy6NI+`EZ9n?BMT!<#{J+HL$ni@{*P&Uucl{mff%M6=>@Q|xb}cocSmy|| zplJax1)oe+t_Jx@BkM+&^;&HV*ONY;Co|Y`ZzvBcMY3mJ4(2#NMm02}TGH}GJjb6! zAAK%o=n~M7F?iNQMhd+HNEetfA5;wUGZ0r<85tmOqn9^7Sc6mri}r6xfp}o~p8qi` zA&-VYmSU232|)FS)S2?b>leLlCOd~;?Z`I0hghzatc#!9t>dBke)Lsg0d!%QqP@OF z@5v_6Z!`XjSayvgH~^HgCL`+u9uP4^Xp0qoQ$VZc4-6;rKYV#1&CPZC?-ks-#A`eP z(I&~1M$-*vi~qa`=X>4K&b`zfL_2jm)+#jMge8nb=Nu1g(5?@Q-s?EP*?aV+aKs(T zI3JqCMxABklx3lAk3{{ku-4`S4V?Ay4qx19mC5|_T)w=1LrT3@Ex7r?renF5ntuJl z=805TfA+QhMRT|QHv%H6j#e?4AMt*i@?Xf2=MJ?LE$>Rb-#8^M)0La<-B%hkynp*> z(JILwmK}RFF>y8L@jhU7zoI9M*<<$q1`KDAj~<1nC%P_oNJa5zt&=ko9jmr z@AX}#vX{DjMvSNS-%6Z5^PzrNhMoS!Xv+8jvjEI?uWcRH>5DlXSR{?mmUy|IyIu4k zX+_^@5I$c=uHu1~Vj~9241^zQlA_m5CMOX`&D@OBC{O2{g_8roT4(0YA7T^{n9?UF ze^E+y;NaaUf2_wb!}Fx`DKx`V^JcK5G7IX5ysdk|N(iupiz-FJ;R%WkFH$~i{oA5M z2sIr(CZzr-n@iB~}SY5F8hp;ZE=xXN<$w9alvnZkxU zxje11H<*Hsij3ISW{DpaE#s`$3~7 zUb=_#KYaFE^e8chknKAqBR1ZV-G39CM^h@MvUAi8T^h~YmGBx`SEXF5^&xZH7H{)q z$XOk1Uf!JdbZzEF{ABngT0Z>^Ruy+YfoI2>E=15;=Z}m-yUOPXM4vW>wMYkBHb_do zAE<*AQ(-wI7{GL6v!8oo6rcEN-G_VrAy3pW85+s>-8*8}vGmOV$NM+H2knXy30gr7 zJ(7H4W}9=FQiZ=LXKPh{xj0?f61u6g2wb4g$j;&Vlic}1?5jd&8PU=G-zfuMEBo!J z#JhV9Y5eJNdp5Ee%X6aBAv)sfND8X}PGLu&BGR7=&40w9nU#>!#z^=5<3CsC0e6mD zvhNlt!ZjJ?ke@N%4r0xJvb^UIR{s8-Y(fHhIj9nPA!BU%TiwoO+@E|P@3~l@QdQl` zbG40yFzc23ce8fQ(neZq#c}<5g5fXHsNBqHU1|_mn2-U+|UxNm6!TAa6?=PR_RYUp? zBd=qeXARe`6PZcdvAYOz1EZd%eff3}pT^5Vy=~CQ)OEu`T|EWzMs4P?RXK?tH?Yv4 z=RaBZF=!z!w$_G8e;+hYz%$p@2L!FW$yapl{Aj~WYMS>8X>LfkcK8Mgc^%Kgl(yF+ z#r#OcqnqeYgGCJB_;$tG&{E~-{!U#deDzM^6iwt>)w;|={d5D!EI;6KmaCrem>pHE zk)i=Op;PYpW%0gh-W4}Yuh;uig?X&UolsZ*uvw$KNo!755Bd2sq;+UVF_!RE89dyT{nQaYxs zg1#9Vq$2OL{%>CqfQMMiI#y^phz^Xcb$<28#o)B&WVddO{}<1?)__~#L#XUAC#%j% z_$yv8#Ub4(*-RyL{chaKLGT&h#=~srv-FQ2@=6?)ny(yu6QtA{&Z_A?TuM(d53RX? zqq2^l%$Ic`Lv+^aZX;gR9)@yv2Gv&G;zNZ%bI`viD4=+yCGGR;!_9Ni3KcrhR;$kOjfP$_!$IUYW46)zI%x6q z90HwLC$@lkBX!Ao(dcN3;Vld(-qdh)Jzk&1KGH5B>bD;zKGlT7D!#$H%BMH0xofW- zK3pO3#3`_A>(l2&h=fr)X!jbxvOMCvLs#Qn?F5>py$dy_7sinG%Z#YT)-yn=A&Pye2@+phZP)oDq6 z%zI?Bq@7ON`sloqWrXE#TTStF%d=I`2=Ns0XZ5)4hS_D{75nYBQ!0tKDiMV4{1mJ) zl}G|^;YF~(Re*t`4v>x|1K%)Fyd#G`z@YEuCl4>pKQ`liTQwh87C9d4pI=eo*MM7L zZ~Gw=0>=ppS6_Jq+SBqJ^Nb~G-`)>ztiLEfj1#}Q0-7RV#LZ*^5&1=k;4)Op=i(@q zN9VOzk!qqMEolGKl9^hVR5-hy$LhZ^>>RZ@ohN_#Ps9XWRWHKNUjDVR|~DoVWZ=xwU4eRGv8vmbWxV@MH*6 zn+KqkhnmEvU;WWOGPeG2nAfqgRkg+QOd9C~)-Kl)vQeq1QDHzXN+7ZNd8k3B4h);% z;{YG&oL;nKB7-o*_;S$`!U8=V4?VJI9fdQ`uM}b>YM&=oAnpt}WSaQeF+wekS ze8j62^E<_ii}gkgiKIY)APy1p)=Q>Zewi!P9I!8?1+H^P=VfYXt!nDGLPIV6 z20QFpns01i960Okq<)Pk#;VzZneV(Y6R0PP04W(?8Nuzgas-`8iF4YA*K-D&cMPSG zco`TZ<}wQqGeW|6L*B0VGq%aSv~vZluQwqs6}GmWn_HYI#RiKLfdk1b=WmCd432Xa zM(U3|>e+$B`+VNeCW%x#<{?=ElO*4y{@rh~T3ALuQHIIH-|Y$6(iuLpt>Ew0W6ubw za)mBH(L$e~pTW#~;%wE#=@_b`WM%VPhHE12u4Mkl^}SqR!}ZMIzuazq_|bhzLe_pmEbnzCvO zmZkh$omQ=|bl-2v;1aAAb~?W9id|K_)Z+E1a^m?{jbY!^%IP;yXsBu@wRycw{8x6Q zSLE(ns#+6;WE&n`5h?=J^5ZC6iSq?Zxv5RIX~bir^x)Ty|H$o>h?fXI>igf z9t)!r0zxl;Bwo-x03 zdi%B~t`~09PvhRNixY^4H}?31Rv;pUbDxe}(YLkN8kZ{Sy{HBl0H9FF(but&(}>;v zHocD|VaB64T=q4*$dx8)z1Ue|$S@k|%{5EtZ(~^3K5Tou{*W#XmFUXq$F!};;)&sD!c*s5g9U&0W#O@I~-5GC>Q1`Nu|l#c**O6r*c~e8g+6sidOeR|RgRWSZSQykwj-fH@ufdN5^}ZP>q`s`fgOR^7 zi__;5%2$%{ccrujEv@zIBfB$plP^aH$f;c$dsv4gL!KdNh1x5&-49hD?jn;2ITNlG zph3PE6Hd7m2>iLgf-F#*xjllps@}Dp#%mbj&>v-}cgS!Sjur8910NTJ)uFsM?v+U1 z*8&UO_BUY+aT`QB?_MI0*YYD{#ieAdSQ{|k`=btJtzI;`2BoBF6=btsY7P5ZbcXpMI zU3JIKgE1NrT3_dPE4BG4b8Ci2qsM2Ek_Q4!=ilQ?<|Q5*DAaZ>?4GEmF(4wWNUt&- zt(pd^uKB_pXkd#IjO6)7)ZS+PUnN_SnvjonJEF-xt9A_V(@k-nNUBY*#6rus-Q-?J z3{kZDdyQKh)<4zM(xJV~h#i4i@(ZG`X>UyKiu0TSaNL!HCL_>l^CF7|Cu|8C%)_~6 zic8A;i$t;elct`D!I^X2X&XexE^}LU$Ky3L?Itg4WAg{7lR@t>ttNxF z4Rsy5DqfivYYeb}cto>|#Oup9#HZ)_t+L3mu_SHuFG1oT=re`N^A#*ZGgsqo%%6jM z?WK#FoH@MR0%m1iS`ZVQL7`=Sy;x0X0PTK=qeh|%*|Q%zH~+>~8fe4poIwks3^b(rH(Y{oV}43D3nD@TF}l5NcZ!M6;e2`rSTC$G74tp|tp^FYQ{ z3RV9gS_uG6d_!)+VHJAm_u+$taUq=iY8>R@lk0=@Lw3`Oj@uRuLrn?5Fd68C^pF&L zKLOzVx~Z`9LNyAm)n3dU;)|ibLNT$;#VVDSBB@2=s5~(e9XObb`qc_pxe>>0Duk5G z-++mKNXe7~@YzQ0>2LKkLzW;_f^_#+;{5la) ze`&yFFcw*>3#)H?`n%Sn>95O-o56Oef`-Q+ZXqo$lB(4$q6F-`fa)0t5WNE7+k%Lq zwosRf>U4jP*2VqgJdwDjS@xIB^aCDPj5k}k?O0;zK$`!|J$%@Vm|GRk--K<|13Mg9 z{myeJysc*N@|Vytg;8P zQVz|sIpi=)ipr@Rb524C31h|-WlnQu*k%cv(>CX^8NccM`Fy{h>w8_lKYoAyuIu~X z=6Y@(d))7j`{RDN-EVi$PQ+Wn5cmh_P<4dhxzj)G-3+zIl(D-@3GoR0HZ;GGd7UVr?k8lO3 zago{Aq39=mUBI+NB?GFGa~0{%r8W;J4Vz1iA70Tz^m`k1j9tu{XHAaJuxBB8^Rqq6 zSjoG4seD)6GwMC?AEK;aA4Rg#5A5L%KW_6}zfOi7UM@lqaPa6~HWr*1MRG6c@`JKm zb;9Z1>a%n4>s-)a_V@x$C6+5iWe#Ub!Df!MKyuyy(>r9 zK+wF_xp$K42xsJWt*^>CX)o?rAcwXQug6fYFRRIBrZL>!46j6lF|AnZ{cn^vq+L~5 zzSB7WKgtbH0Dko1eECc4^6(!Y=h;<>|E=Y+>5xYw7v+v_DsD)px^jo`<*p}P`YPXl zAf92JH+z>mIL%-IkjH>DgF0^xP#X3SVnUeY2JoS!=+@+wL}kD@O{xZ9C}7rO>TE z3Rj736M$bDIOT9;%Wud5AMM5p4()BGp&bI3_OpY2iFLE>NlatwqxOGP(-Pjbv0iRC zj%07BN;(9WqrD8LmaqC4;ka|4!hIi!9AX-AN5qWRKG!;AO^c29^frWl%;>#+n%DR{ zaGyEC>(Jqomu~CMS>u>F(J2AIZ)~z=)oMeb!%_3`2c0jhZvW&x1tbl;tcZooIz0eN z1IHRf1oK(fudXTY>pp*vOZ0u06Ef&)ARwiSdw{63IYG4U|AlPNsvnZ|y1w#(Y*Osu zl6U+m7nYJ#`pYxC*m6OEYiIXnP^sj+)384wthQc{fk=k(%`J0Vg6m9nYvUKY*ojo2mq(H5S;@}#U{D1xu z)SO)2Y6s3rYqk`N6h&67L%Eg~w`XbXnTuK)o?%?N^9Lzg$~9xdzbZ=nr&op-9(X4W z{Ouwdy=l!7d37>xU3mtOsru+<>q*a13A#V}Bv(%S)MFJ;8hxi*?pbF%NuBeBT}tLsXPN z+`S*TON4tr!HTx`D_y;qccE$wWms@qPNV=kVEC_V=0?^pNm9^x{+r|Aa)Dbz2mN0C zNEB6`(*d3s0KNu-ud8bA&$yJ7s|6@;^1Uu?0u|)Yk62j-M9v42P6!{lI!f#BuEs=g z(bl)6%^&Tx85zh?LUzqfsXf_hPcI}5Mf^I1mmlr67LHka^Y{*__ESEUpu&)7aK;)d z*n%W8QKX@Bl1v>|MQ!0w8`nj%XUOl{n;Mvtx3j#Q#u~2*1$8n3wEnAaXnY3vzw&RO zT&I<|-%q}Zy#F{F6?(TiLEe)PZ-uf#v(|85EHzk!7dz%7M^r#1CF?H(wk_7xOqtOw z8}EY~PRz=8v=_C#3y}IM5<7shSMV*NPhZ9oPBxtTmt_?nKN*H)F z`{Fx0)<-?#>Jsj-ZYh=&kz>el9_G$uJs6w**Az5Py5O&8ZCJDo*Jc^u^u^SpEh|pF z^1r3jg}i%Chxe55L2l3Bb8aeH==}Bl!Z$DU-5JPp@~$XoM68dG^XdV=#sGCbL*bUl zin#d>an7yM&Nd?zG|(kW4V%kIisvOb&S(2_mZE)wV7LH>SN*xY%*< zHyzXHz!h~`!LJ_f9Pr>x>{Y3r70S1dGPo5z23;reak{!gd!G7g0JV0pv1cImA{%}V z{oPYVkUn&9^0Ew?Oa0au^lFXS!U#uGEkftC`$tr1$sx@Tjt-pfZg&=WTf@HDFw@YI z*vTDYxYo1BpNVSF`BkJ$R}+Q{%p{A{ui}HyBl^7Py=Gq5wbEBR0T4)Q-#7U3_R=d=huw2`}3t{+0 z)ymHwnCx9u<0poXj@$9;r(QiS+#PFid(>;lOJno7>OX@1zhu(t_k*6ue*JdhXoZsb z6$Mk}lvBwvCsKY3C>|I5H|ou2wP{n-l#RWyhWXaHSFGg_E9so6Y(oQe5^Pqc5hkVRAoA4IpaN$nh216UvtwTSO1w|964e>?Mr%s1x0!)#-gZO zfI@7=uBzKEnvkV2c@bSy%#{Xq%JQ#o)SJZ#0#hwT_J_}gJ%K#l`2zHK^1AHC+?iC0ig!I>fv2{@I6Jsj?@(NP0Yz(V@EzLK@63aM4nZ-ea1x zJyw71)fWI8`>AEQl~6ue$zTt{v4`0a^bu9f-3T&VJWB#WtXd$q2taDf$3ekoKI-J% zJQ`KgJHh(3UfAI~;yzy=vq-?}v+B+6c#HdUXf-UlFT(wV`>q3nct`pNZMGnxJ@jT_ z7;&>>R2~p#+mpN@9z?^$X2WzublkIgCqkWvHwenXrFjBy^Gy}E_~ze%T~t59Kw|FF ztVgvJy&Y$wEypDL-}6{a+OA^<<+Mf?t(Cy)y6%vL4UhY8`zN||`2KK&tDp@M3Y!TC zGMFY?hdG_`q!(C#cAc$bY>r0)J-7pArB?eclx>80gb>Qs4Jb)0cwJm|5tk$wZbNIL zaBRGH(lj?zac1!}Y6ICZNV2W#fa=P~6G40l_GY|yT>%8Ln%7WSs&gp2jPr8kg_a`} zqKW7H8bW?cW(utDC^iQTm>!2VqjH@osGb79tnoU=hr;gu>9i0zh-jM`lgKUyt^)G) zX%bd*E;oZ`(vv)yw$U_$ZIbV5t$R<9Pj1_MF;Gs55W~5i7dDzNlsSY!`X&T?X{<$n zD2<`|4yRY#U@B$4Ro!7Pvr%6*_jeB1UG>42O&uQ<;Ca3imYRKkNq002>B*gG|ub_Rz57j;@iL?%7V3A1eG_&&2K9&r^0m znE69<;;dWFKnH&$NmiIIt(&x1!6MNI-ivPg3w|A?kJMKWBud}U`*wezN1=*%Vl-m^ zwOv}}0Ua6RdoK_EVFYE&-kt0mzjill$is@bnY(C}6DPbzz9y)mUWU$heRz8KA@4)c z!;ot)06(RIy8pf59Zdejua|jI{!g{qejeV_CuS4kDK5+4{9A;K?^35`F|Q>LQ=EX1 zL@1-=J{Be&7UI??F_-JZvOD4oON~=F0~O{8GdAu+2;KR1{)EgGR~fef|3y8*pzSxR z+woWFlEe}S_y~(paT@JBK0_}(RXC>1Gb#Qd9kfhc_=VblGdkTa8A(MQ)~2PM&X?dl zyvVyBBFK2*lw`(Zbn>u}eePyAdE)nIN!eUU@9@c`qLsvjUlMaZ$bP$?VRN~>apHPB z!mamD>`vEerbF|eIJ=&T#^a->xbi@MJbUW-zDQ6006wM>qT3{^tYUl6Q+B34>>rt9 zX^bI0b6!rcLljAw1`Qs5Gq89l@~QXi6@E^%K(9D_$|yUzQkNPiUe@yd;+SChwKIo> zN9B1Yfo-CB{u@Pxqt2~*g&WhbO8yry>7dO&)mqOj^0zT(n($6Ppj}~;;woUe{?hvT zKMDGOsF?z8VH;2pm&t;x3$Bx$cl*Bt8u3-xfvI+?7}Ddw-g{yAym(FrGQ4-_}xAPdOAIs?&qD})$f0YXYim+ zWWke~CGT{q{_0QVAG=E%-N3xfJFqDr0AiuhID;T*I%vd5e1n8OTr_{i)iv|TJ|?|+ zs%M={Z{B6&1f|j5w%-xO5eb%oBBSvGCz*#qm*RQFfHR#90_?neU_4zXW(~hc6uWoVC@~Z5%xDM6P-5 zj?F{D3CDxnwb*?=7{c9E&x0-d3ORa{n;s5Yc~_Az-s?+L3>Tr>lcq1ZTC@@T93ItgeCx=eNW`&8fuO}?mR0P0FJkl*Iksd8_v+38GK=-+mWTEpz4w}@B<9=o zue)>B@Nd>=<$h8=|E*KnbJMnf_<|O>w-M`AavGKTt80>MW6m7`_Hh~Gy|wb*-+v7O ze!ll=?_2i%q%Kec=_D@K9$1ijs+Ypq{w-W#3p}$Yx0~|igVnjRLIrP6j z{lC8Ef4&$^-m`q)#!qGb&wunkpZKrU1VwSLLBG#8Jpb$cf3NBPd^FNPUS_sguFN%` z|G!rKe?IYFYyH1V{6B^ESL*-S*Z;eV|1VnecaQ#mqKoUN#I64u3-JH-=s4c_P2S~T z9_~u=jR?WI`_2AZ|9+E-?wz{u4J0KBj|ea@>NT7z!SQ3I(N{wV^f=zErQprU7_AuT zpxK~DW~{$kcrVsitYCYF&uAcgh0?2G{gha#(Y&=-Oe^)bC|97~u^jLZO8U;OqL#p9h^1^QY zt}kx4aavh?%W!Va+B-LRMID)Pp=LNecRdrhyVFy*Gift!>zAwG;JGo`AR^Dbhj z(ZJoi1pPmg&Gm9}Ks2Z4o!Pbv?1yh}50V5Hk64^S47vn!cD;9Y6n96%clnG)FS~h3 zC&IgzadWD=o`pPqyELLeR#@}8YF6na4T5@FxKd9TzgenZHo-@KsXOZJ*-Z;>4I(Yr zi{-fl&g9W+{-_u;()eHOW3Ef@jG7wmuys@+d%lz|P z+?c654-MtJe|^u-T7;)Hxl42-`Vk>+R}tsL#M0M0tixSa%|t=B4PsFtrMXYq_P2hT z)$|qlMcPLn_4_f0$Yz$7iWGZz`%xK2h{Z%cTA1dCldPEZrfnkdN9~=Q7lxCIwL3EF zA8^D#F{yjH%Nfm0vSSY0bj!>^1T_U!U0porJY)F8+M)Z1s9`agriX=WmNhS#LW=!# z%Ac52zOU78CoyFf+~yMVmZp=l{yH!Gc?f!0X@WHrr)Xboa@z}7@zr=9>(Jyoi6vaP~Z0&8@mxnu5fk#fA{)1Wi^=Q3GAdzZVnxtGJJuekuhNJWBtWi9-@DSEOlYc0S^kBNii9J^zpmGMx;pW{kjZZ zD2p@{Rdg;aZ|mo}qMFp*({{6j@#fYDR$spi#Vyb&ZMRek0NB^WRlQ^@!@w>vrVx3v zVWO_mqPMK?7!>DFi+k*VX*t5r3}2mypH5$2dg`^1*R&p!rzn8vh4-lI3)`axsI%5C ztqKmAt-uppo!tI*v!_1LrbS@!;%xK2iS`QE8oaBMld|0NZDqiKuF%Vc^w}`?!#sZI zIK^ljJ}PjS<$I3z;R(k!@vX^+41C_kHt^bn!o~!H7p8rf z%FRzAg2|gO&gcHCD~VO&y|LQ^1n3)Mzh?30W}>d!Me!FmS}decTCU8dS&c#xZ5j@h zlVn;TB*^3!%d|c@YEiZWilT>dRldN09sD@dd({WBsz#mX?o}En-A3%RnD2sZ#knr6 zys}E1GWNYY-QV6Fo#T>b_qZ(I%3&;E*5&Gm<4biLsf`A%x8w%d-)U54-1zBFU)Cv| zGqI4h>-(t50Jp5_GO#J{pN1np8q%{jp8uGsY_)yQU7s9IIgi~^RG_*5+)A=gI-?Z* zo4KQR?2Giy`+`JAi|>e2d|yjs{63={azjEZuYC>0hgFQP!G~@mo0dibI^zE|XDfQ+ z3AJD!a~x)8yYNwNb&2(8&yLKkjopzFRl+@i$nSt=+DiOxb501MqJh{G5KIWE%1H~8 zr6olGvKdTLFrpelzGk0y#!Ds)=Utht2-bmdx5x$|(RL-6%xML5T5Io&{&Sh;EM4FkZ~VqLFP(P6FtY zcZQ_;Vidp+>{iqqWGpyJ&28&)U4XO}pTj?4NvbT>USBuP8+EO#fSI%37L#zpcuJZF zU|m!XrBpU*ZzAsGIk;KaMwdvhGW8R>r^nMJBD@C5Ex#ag^GJ5UN(s)Dyh)8G7hwb? zn!Q=8Sp6E*e5X;N+qDnkVgfM&kX9*ZJLcmB?0Pk6|8F}9r3#zeKYRv7yoOVNhE@}U zyxldy8?=XVV3+@rUj5poBHvn9+8+<;-7JbGwJD-tlNNPzxz#JS!q~PoxKd(IhGB&h z$m(oa4n2qh(;IkLEjeG7_mIBsgvhSwlBe2LY|Yo@hQPG{^LyR?^LytH2ULpq_ciNP zA{ChL_r$1Klf{bVo?H2;9HOq<1GJr1JXVDC0kM7mwdhGv?}Hn%SAg7{NM=^k;ajIa zFPr+`)IVl(%s^lGx$f?2Qr+X}txv^9g&`9iz3nO{Vq$d&GpS`5?qH>XUKm;Ua1+<+ z`(QQ;5nekCSMuo7E)As%oVPLh^&u@&5rrY0$x;pycY1rizYz3oOeLhDfjeLG3~So; zd1w7tKZ`RFES77Q)Cqo}U6A|&bI{BVHLA~O}6^m{Eeinp9CbL6okBf;p6D>c#+(2=qiM~)nke* z)}PfFg1mrnxc+L*)<8Ohe6zUekp99avLpJCeuRbQ7lsIHT(P22x2#tlbvlRuxmi4& z-*B6XM{IhCd$JhRM*R>!2)f|32^rE8qcM>1?hq+A8K=EtXkIlIcgsUhc45 z87Lq4(UTw%%Z1DJ3G3)`xS#l9S=qS9TkRaW<2fnuXkU}hQF4{>g51WUz6r|7^r{6y zE*~k!b_#C?JG)RY4qIk4uOw#KgG1VT4eI%+)2#_QJ_B>2tdEI^6SU;u1a@C$rB-WN=*l+29pK6pVc!y)?Q#WX%~W`owBeCdFTOjaW3BdP}dZ(L1I?8={I1Q_sU!90|GAw77M-TGon7 zrCOHLmid`F=01{6JTm?#GXgbprmQQQ>>Fp&Fn2U(f!5TSj@eF)XHQoA7XDvy zJa&+ShA9;?kC7H`)FF<-?Zudlf4b8j&x4@s`5RF?wb*tY&W(DN;-k5nzKO20h7E*7 z1e>s%lpU;O?(s!QhbAAKg$bc-5RWiV?8PMOJ@1C=6K~Gcws97%GR(w}u&`ivw0%Q2 z*cy4^t2o!d278n%3|a_$N}Ev?{Q3!FWEc>4gAasC?q2@qyL96+5El<1={rfg-`hwU zbnDCB(JPMg)59L(9{!q$(;Xh4%T^J)e}MbzF;g$aa{(?--9|1#%*Ee3k*SRvAA#5M z?_f+^o9B}7m3$4BD>bjYdobJ@W(t4<8z@=sv-TF&AwG3kF@tpZ*t$Pg%ax%k;vMx~ z1F_+4mw3|b5~{)rBNE98LXq#RC!W&MfF_9D1?#XK(u_9g+LTf|Y&a(u=e+502n> z0id9eky=g17`ulmcLi8+<@U*)t9vQ1ooD}+?zHvblQzz>YJ%N%CcYS!I_G(Kuhn)C zeeDQ-Z3A;OsO5^t8s#)*5rPHKcZH8R|HOzPT(DOFd>{obwPtGbi zA~?TeCSNzR8Y1A)cZYzOyIVQ7Np*s|G=@6%e0rqcBaqQ~CcTXrQ&QD28u%oGYIhl5 z=qrSc;D%{p`mV*{CzMk-%n`Z?bR60d_~{cFc*@61={WwEqx9*BUT>q4sh>=whj+Ze zwgml=O7ovyvxRRDBu*f6#^qw**zq7xh9#kA%-1qK(Lj43J$)P=Qh|5bnmbE%12wFk z;VQFlvq>{vA|_yPP7gm7_T|n*!|H_+a-GM{ho9Wh;Xm=ECD(TQPFLJTKa6u#ZNSeH z)mDbW8VA&%@l|AB)u&TM#^I%I78G6rhY*tli)%GRdEcVNSdKf>C5*KnYS-nWH@-P< zpSPM1RZoklN)7a#=%uHG)cEB|_Nwx;5^FCvi#TGqPT@*?q4B-g?;pu=iF`XAmY&MG zo1K!zbq8@x`SI>;ooWuYZ;XCi@m%q?aI=&fAJ>5L1jvH#C9sYqn@>W{hzH1UZI*?RpOE|dYf;SRm;TppHXQRwoOQE`o+I`^RND*l&u~7; zY!dZWj<5yr{2DMfeXVPnd@1F zTji(LRDr=FpR2WvJ5HI|qI+pI9 zMblG|4C3lM9Wp_130ThhmSt*1CP*nU_m^oeOALPP9eo=7`8Ha4R+{bsmCDWvg{aMp z4;N{UAZ^!cz95r3Exkdxu->-|b{C9L__U4CywzvcOevYQ8TY{UzcGEO&*EhA;;|Vs z@ewJm?pWt66nYRbD`}XeWT^aI*_xqRf?1pAWkD9z@X7?vBdn>NR#r@$N_7(#m1Msh zR+|##i=LN_i-AhrJc2#kCd-^91z@F&vj>FIYwAiutX&zF3jv>nlnn5MtIYU73x-1s zy(?WOaYQo?&dafMLW22~%($M2PDO&nz1uRF$#zu9g4C5`TFPNdsd~@+_}-Q5_qjaf zAr0F$Rr^~B*eir8LzHK%zAII~{&k>W0C2r%S~=ovfr05^L+PrGGcPt6-^Xo!l4R3h zkjoZ_eiyEDzEE?Kg;FN_rW~ZhuEYAS8KH82)nl9o>3}xhgYSwqv1C0VtfPIzY1CW- zgcXAk%4>MXPcWhw8I^|gjmw>n9=~Jt8}TLQMFc&!)_h`#SzbHSfR1e1fC-Trba(1K zk|A*_XbIbK%Tc-Y=n-~BI6JgYWnIfTVQ#1~jwT9H9}f>=#-?woa_CM(slBXHJVt>o zbUkcyjSP>lT+)4XU5&VCO@p;OxCxlO5|Ch>A?#xyn(+eI^jbK9AbQfbvV5@Us zgm_Sk?hunrggckV ze1&#piM&coJOxT@Wxy4W1Tt|U-|sC($ZWf@8;`(ev&cbPruI`9KwwWyJd7t|xziGS zei=0YptqwK+?AU-<7sne#hhH15V5kfD ziwh8n=*l*Mnd-;5RBz}RDPKZW|5ZYd%YQ5?f19l<0Ty)k+O8+pGXN_X;?W$p@Psv7 zl%T;r1N`<6M^F;0>0uwjM_Qz9f)rAiAJ#b#*65k|&KB-am)Aq{Fd@ao_p+W-NMWg0 z-&u!fB~+h)uYljmBObY482$=i&mXnQL6sX2~4 zmUA`n(ky8FIoSH18@EUl(o|@A&qT(Jt_JvSb7IX`#5rKe?&{cap^vSC#J-ivl4ld6 z|LlCr`q#&t9%Ot5q4&kq&E`jI{!9cr?VQBf>GYb&B$gHFz2L!{EWga>Q==CH1sC!? zKIMKE1jIec^>^xD`Q@<{Cw)aspe-;l9o=bG3Oq<&8hYxJ!MJiwL{%D)R+$uJGq4kV zX=yyjrdq;dU2`ogJQ+Wc!tHFO-U?7jO3a7D(%6D*tdL&(LER}0H0@jpKnbh8Hgb(j zxbKm?ZOh8W$a)3a^cm$&i-n0PXT$bNmt%Qpvtb1H#j}RBq#~)BvkmmZG^m8Y^L6D% z`fEC`pJ1}LI#-drIWZNLCXhENZbDf5j1F2b?7;r~9iO;s(U+F{ z0M_ApXeS3$&Xm={=lVk4H$)_sXP*F}Tb9XedfkTMlM@i55i3j9OB5T4irQH|V(r1P z2Ypw1pOABa6xM}_xo(N|(CjHgO2!1ic2JeKDs+=Wr$QI6eIMeC-zJ|x?k0Cl47-Gp zVgQ=`Rm(jmqqHKEe%o{)WvPyhVDn}!Gg<-(U6|G)6;==SnXtis%U5$NM-BoW9nX8z zHQxnmqI6o%{~+cUF0gw#kfeB$$aF3rEY9T5YF+tiKASPLSyf5uQA504I0F$KcVLSe z3XbIX9>&+O>1YIp+A3re@MO4ZXcRJA&BYZL;mpcEAmY`abEB0DdiFb;ZjdjDz@~MB zA%`M*Y_wFGqNGPk4Qlg8PSsZG(8gXk+GK8p8tL^n(i;v)*!tdQ$SnfKsBSG1g8Pb2 zEnMHl>?Rx#pD3|ITFjG?yoXb`S+Ml1u_)tHkxzM)0l&`(MZ?mJvUP8difKr5r#xL1 z68vDRD0UQh9?2KqrJ;4szL3ZCSkl?=wdfc8g~dke9k_zTu%ELwjXELm@)-d%yf!sQiJlcWhrgXont@cRYUaihk|jh4hV8jnZkG74dk_U zgv643#?8ZQY7Gq|(`m)e!on$|7tIJNe|%SNe^Aj}c2xf=S~r{&Dm^a}J?>ZvOfcv^ zIbe~4H^JjE9}qnU;z|I$(U(v#Hi>9#e3>z%c5{256&WRNeI?=Gdjcx~+tGEn8#h_g z?x^e-2mBokwwX%L$EZm~g;PZEi4jho{loWc@MW}F0_7O1xB_PKgH1R1cQzQqp&>|5 z*9W~)I8!ccLw+V+UGl5)v{3) zii>x?PKaOC3fR>Q+>v?otL_FXz5NS14~&>eSimkl2h@%T)F&tS$>L{RBmX>UR5NHdLJ__C<*nkt~0FH(WW z_JES@A(}1U5%4vboLBCH;zhNr0O9i+ZK-t?QX5h7Ur&e!p2)=wsrgx zanTXsp{dyb%rq~l!xr?U{-F}z*M_LVJD-jPlBA5*+g!4P-hbaL1cf`Ub|r2XQaXGC zBR1WQT+-^NRaLk`67tXM7j1k)xMTiXg{~OQ^8iJ=Sbu9SilSg<-c*PL0$(5rf(ALw zUJWRAId)qdo$@2bq%InT^MZtLUpPM0OBm9y&u%TBOj4 zW5sVH=#I*dv-G4Au%}GGPu|#hDNe4Qo2(YcN;BKPtZEkL9j10=9L^Yzy{LTS8ZMC;MQ=b}17XOV%YK~pjFVQ;R1 zboc59O}K~e{LTEFZ^g$zdCL6RPSX?jXV1kF4R!1$h)CCJ+FHD#&9#lc>I9pS!z8vV z!+eMa0p&{G3>vaaD&~_tx^ZV*(X2YtClSt>xk?o>Rd1LUJiWE;T?)q^X5l3+q$hBo zQZ{~N7m?zjPcGKf?V-UaMb_ayaHdhi=JPL^@q}RVx>lWZkA=p#SEuIHIJL_9m3eNz zEuunavLAb_hX8CEQDsL2y_w?%%2@-)7EPWRbHfV+CRLgLj_753-r-(3Eo&1q=OH&#Z+E#K?AHcUpjB^1TSFeiLbwWkv8{k86a1 zA9sG+;D3eT;qv7D(6W>`of9!TT1xwcfzg1&N8V;htaMg*ve6cu-6BF9T+{?~`B6+N!dg$L65i z1x>Sv)8-e3+xe=(a0a_D!czs@Q!)l>ogvVjW7J;dNYRSjEUbvse7+N# z@UA$4b3Ft)@trYZHrELCcD17U`t&e>VDHb=PsG&VoZOD!$x573>ogzJVDR6f? zgZHqK3KwiqpMOF4z0z&n4#U7cx2vCTp1SmC-$}A@y8alc2-TVVmS+1A!7g#uN*j|X z-FyN=^fU7G8cuGf$l9alD2Ea)$BnJv>9=mK>7+J#s&8F%zK0dQxcxWvg!_rcEcX_e z9Z9ZI)uA06gZxgbh&xX1UI)$w5$<%@{sHfwiYQ?esTb$eV3oWPG(%XbN6q~(ty%U) zaPX=;=l9U|r;RQ_CnP(KS9)p)4gy*-q{FTwB$o8A)*-ZK-v zLtc6wTv^?P5nL+p5?dYcdym>xq>@t-2yOF)Ys@77n|{9yQ)7ssN7*XAJ0FIMHa233 zX3>p5VebGp9$x-$EWrN|c(naX^D*nY2S0u~Hl_2DCT967Yg9^3`~3WUB*QAxVBYgS#|tu zzqn+f_c9c{JOu!7!EIy!VmB2b5iTC?6*7D_`EveE9g#d)uuL(=mpF>oHZ4?;G`RKt zHplVvDgi?bpX;g(gV;JrY^ELqyQ2|zKUvLBQpaY4=+9{5%-Bt5KR zW+*T?>q-3h?yz3gLdC9;Z`VVF`yd^~MMCC!0pmUBT)-)1MR6y5P_yphEJ!!<^hzHX z507j}3Q8qBWIg|iqTaO<|Dt(F9-QYvhzY0d&PP&8%Z$F37)c5|qmBm*<_(r?I4aM) z_kHV>^D&^Xv?|o4jnTD8NE?=}JGT5Hyfl&KHwb2skje9_f0n2FOe6|ty1}-ER67v6 z9Y_B7yu;^84o4SfwJ7|u)+q58_b!oL&U;B3E z!+2U0MC>SesVXZ;Xx|zz;pe)|w{1@VSqCuoR}H4J2IV0d>H3pS1-U*_1ss*%b`FRu zTl2i-&3QhBD2ads3h8$E;fzC;J+T}s#Dcp#9tIbXht9## z*v-06KUeufDu94@IypXx!#0knL;1T;M_|^L380qs#YfWH>bMKi%K|uV&0eqJ{%{IQ zdi)WZg}lL(!OJ98n!kJ7T5&z7~$7=G3K z^+B1NjsN(7kgZiWD^^HqZqrneP^1DUvJFE{jrY7q`03I0to*XN)-x{{`LnqpZL)K& z+AcTUo@jDf2VvRS#MK*#N>9IJE)lA^5wo$Qq|C`&Sv(cPT@wkC&@ZK^vZ&dq*v~13{Ux=s(8S)nbi8mWUyNF$m;+Jkhh}E=WJGTiU%UEyC~}%`0&)&xxlAxVUB)dMd}h= z)s-z3zOB4@=kDq9bgeuch*0XMR9mtvpg7j5N6AJSwkZC17cbo$*d@0Qnx>B9r^IBj zL5T5H!1&PZC53g~wU3A3k!jgM14XU_J1vH=w1OeI2ob}GETbX304RK%v=tfvr8Lwl>U^=FFi z4q&2@g77Ky1k7%=U)=9(&aGRLkG>q^UM$$$zb3>xU~vkt6Vk0n715;qXlVug#ZUF> zZJnvjY)zYb98A{2Ze6J%&i7s2SvCn@)$MefqXK8>s zebl-zq^{e){rrroaxiTxswB5|!?^~I+-f&~K<7*Cb17o%)U;+=LB)2gFY?RbbmwBi zsWl<$(*G)lWDZ~1U0EwOL~Y?787VL9e@5I$ws@MstS$umr&9Y(6>*1n58pW@yjIyc zcaOL8AT)0T$H@&=;43`va#M_}2AifBm-`D+dTO)M7VnO*3NL|Ra#?LkFu#+3T?Z=h zd)y5AqO}Ls=_Pqed`bA|-{SYvvDb#U`X{)0{CzwP%gD zjU9Skn3zvA5ZdsmC0K7}S4g{3F?qJjEaBIG#M_xX$W88BvcC5fxrO}@uhVzoaw=cx zUw##{`)8bb6Z6eG&+Z7TI8BV9XswNpm=l#A*{hiPgZ9hJiIU4O2<2OjbENAf5<&oC8ue=cil)(GI*^a{@ zHJR{ekK;0Lo)%vK@2fd1CU zT|3L-dgny^zk2qEdJCkj0y~pxxIqH-(8Hsc5!{fYE^J4Ni@9I@-8p)|U|F0X+l8cH zNCpoAMy;hY!_lh6IRTJvx6lz^t)w%~2haIcb}5;evtP;8L_eP_DgJ^cq&H?bBw@dT z_4{ob5RLGj;{6umCgI!J9qIMG87t=Rk|M5fU5E-4$HOn;&#+;`9P$Sz>KLnIy|A81 z)B7AUs%8d$oaCH9)K?u(8|Sbu-5meDb6hCoi3lsV6~CiLnZ2MTmD{N)FsC$di4acN z9RAv+?BJIHT}jEJd<-;PYcnU*Nq>WYU~B(!(U#H}duon9$SE0RKi*Fb4|AG z_?@1RVSME@1!95uqv4CNm$fU(_PyD${;+>XdlBShR7haX_;*sFP2EANyr!TgpiJx z3TTEe?H{QMN}U1((UHyg#yn+BSFWZIb!#Q}^Q?0bhYNRgPegX`cvvsAS&yb$Aybc? z{PTSJ=rbSUEbx#^za$njnR@oEYoI5qyea>D+uWy1+ZKCa1@^#hm5iUlu4Y1&kDXEB ztz|>f_a}3NTeW_fFc;Xk`P@G)&T!{Z-wu?1e%Mm3 zdG(v6&jWvsSeIjn=d643+lS_1uLLsHx310*-wev@m~t-yg)bXFZ|b|B91w)l_n@8u zs1_o0nu0RD05mu$D&@AxEpTeG4lNJ)-tF1SRB-Om0S#0@3EdyNZc&FGm8-QoX1$Ut zYW-()tWx`eZ^>p-MBxL1RxeC6ciY>YxyA0Zo$r&TBQJE9LaSK5&6 z2kNF%lxuqWQ(6O&F~c-enrFWoJ?xW090k6abCR}2eKmT+gmSh?Y<$y z%~ycm+V+1%p%7L`)S&_;n(@V*J# zak#L!jKZGCq!`2K1S72WgLkWdI;ohRt{W5~=={SB!jM>En#6_T3X25519h&8>A9Vj zOde|d=Y5p+F3}+Yoxw-Whd3XD$vb^4KtJ z0W6;Nvd(i4QC3AtYPQZ0i#>3UwC~CGA^hmo1r&ARQ_Bs#nVRIF^rQ{Zjf`pu)M?w* z6xL$v0qG@afHKO^z7iF3lu*c1N{c!qi+$a^3fTC4gR32@YWQhO^StWzsK+RLD{=KB zTH&9sir%U^$jSGpWF1-XX9%GlBp`BeuP4P!`rct|m!<%r?OJ{npTnQ+wlbyl@~6iM zsTFM}2jU42$*nni0SA2KY}C=(*P~w<$(P~Sc4deQ86{E#)1Bd!w;T`d{PMGG+U3|* z=&(*DVQm9pZZwoWqOcB*9jAr{^{xjIr9pM*uAMq;d~ab;R)xD2+19B?9;`rZoL}w4 zfwrG`c<)LLNTaQNS4TD5?{0l|MkdMj!Yc77a5)4$z$)?YO&57<5r4zNEuh`?T7@a$ zOj#5$sByMdwN8cF-kTEkyMB9FGvBliQNeW+Dx>04{Ufmr2jCq3!$8|T^dPmE|m&AQD?9~k9{*_Xtv z6+TUTPt4Poc1}~b0_6UlMgNdLqeMCSbV?kTT^HNtw^*k*D^32Xv@#MHE=5J=ZC?74 z(@jHSiGYQ+G7sC4H78j(q2^O56lV5|=9;p}+2b2@Cgcnxz-C2U@Ah?_}(#qUK7um%6cost}* z*`8}NJ<>z7&Zl)uJLJ}E=6TU>lr}yx;!OTne)I~!+7#K#7Q7A7^ z^-b~4Gqy)@k5c|hJLi7Gn^mvcg^}gM!eZR~wKU+{!N|M3e>!kMP#vjTDaZB^x`X-D zWJLy+gl2B)!dztj( zKK&U$>Q-9gda9G#WAyW#67%RGXL}Et;yQSo*zsocf}a)H?3(1At+zmAaPWc+4h zH$TssB*4%fC%fF>O|eS(C2~wwX!a*f{*%!V^(TIU`0P5_LZD>W1lk*$1S?<243j*< zzLoQ&+dFw#EB4c=y40i(yQ5Kx{)VvL!g~ElZCPp{aaSl_4@$URvHa2FZBUZt^cFW| z|BI6PC>Jxw^{TaUea!sNAk}A^KM!7Q^O3J6ZuF~=c5C&TCtQ}stE;W1Zb-?{EoA`B z%RB#1dtV-xblSb$^jMi?HrZxwnW<@uX^ELzYMYu`np*A-S#F4mN`z>(Xicf*f|?6C zxnvsZBq%O0X+rL1?x5sKZlEHfAo6~xnfd)b&-?VuzwhVs>RJ=ogJ{U9trtMQ9RL zm_rL@mwVqW9sQ{xV=T?i%Y0yJD{8j}{K(ag!C+o@1~U2F`rrcoE8_Cgid9Q8Vos-u z<>FK}Q`U2TQMOkpGe#cPsX7S+4R3lX65EoDSu#?GPs_>KVpN-a(!q?n174akF-L+| z$GgEU-7naiz;R8hh7tRZWw`ga!p?PTcoYya_5od*ef$kmGz6vuGC6ocM;YProq%r@ zLnj}Jscs2@hV?g0bds#h_Y;3^C2W48cvgI3o8;Z$O=1=s3ss;jEA>dGQGqt&T4+2* zVwQ6~N$kQW`TX)0MmWEF^q1u&~45kSAI>Nah8*3FdkD z?LmA^$>a5wWkz#73e;*5M`G`o(QM)!Wd;D7IXOi>giXI3eV8sl-G^4>h474rpK8It1Twz$;bS#mcHW z#$aogd$kR7)NaMY^x~~g@%b=VaP7%s7<`xH#RV8AqZwS4Z^)ci-15>uA6t}rKdySymP@aNW!bo>Vuyw&J z8e3!RS^|l-ADUtPm218F_OmVu`^%w~KjdDSqvY@`5%=+)%9P_Zkc5glqq6sJTlF#(KelK<2! znB`^5$#jmNBhFn@Pnt=IM=b&1CQp6_J3mKwts7qu4dtYIA8k{i8#xU@^(h=i+`HjMhmt ztuZ%Wz^yE%Xp8@=BmP=-yVT8Es^Y*)cjk>y4YN5(_}<$@0Nclns0wdfcUtFhg7nVA zlA{l1G?A2Dvh`aN-B{Jr3BH_XFD^B!U-))VwLTIh0w}ocSPgKHAmY%|Yp_qHzf* zY{0wtZGm|W&F^~oOl&4B_wc72tfEp)X>cw!1{{?{V;9|6PXMavu@_DoeEq{e>ss&K z!lRgEWHdB?cTi3~;GnqQKOpIX?)RnEzRiS>8rqOS#{wvjVqwJ;GiqoXq21;i-J2fn zuYzYT@5D<+(uMD(x`n#%=Ic(aUKqzxJM&drC_IkCDp>U@f|}=^7&QzjKCyElzL*O3 zO6%V}VzghaWOv7}Z9S!aF1>1@hVolR^EwFAHiNxYyxycu`hK`fqpE~31DvK5f6T3J zys@qQzCeVHKH8HO2wBFYROb>HRKxHXDER#M?=2N7XYTK0nhq)%9* zPguD`Bq?*`6a`ce12;8hBa4mvnlijz_mEb;TzJt`yu{{AdCj^;?oIC|LZ|K=b5w+OnPAxcHgpL5u zE72~-jI|dFXDOiTI3Fp=V|5^uw6M)^S*8VsVL!D>lzTt@ugK84^V%b~Ax|nN=U=^x3(+n&4Djv9MLqkX*Jco8H*0LK zI}_x4jG;ik_>joxQ!~Wr0Tnv{=923Tv2M8@2PD&gluE)j6NYGLnXX{!lkyVD!U(;7 zclVA@ftg{_DYxr?-Di?UYrCDaARC0RP;HD>{alCO+8J}~recI50Qs_ zm6uD6)a-k*BlX9Y+XCW@CLhI)h?v!YxO!yZE9jHr^e5I&7i!+`c2_iwHpQ$g!il%+ zwinD?sAUyyUyxdUMD=}*NvT;l=d3U)(KF&_G@H#SHC@`mumoCmCPF-SW8c2iQG*|IlcJJOhP94o-BOYMmjr@x^t1a? zWzR`K`s5=ASr4FZNL)`r0x0c;w78U(NXVp!o=-<{Yo@?#rXliF#N-gBQwJ;mL`2T) zn?JMAYZ%n4yX%H8%d^(-Hh&KtNdXtD1BkcYm+~Xzg_^x z>!$`;HkHRkidx+P60k29I#Ni8P|evLIUP)O9g1J%zJB;I*>$mK#MI}UQk44ey4Nc5Pu z?7+`5Psf9D2WQOg{t*JyNE2a;2TOKFbvi#)$}Vka&1lY1?TKDI3?O|eld?sOQ7y*X zsHG(Ww0ty&9`L!m!=yp07Oy9L+q3FiN0ZiJLSI{^xA#$7dZPkNLieEOu&VC5lslF1 z=Uz>A%d!%xamo37q%~?m9{Q<)#thoyV>fgP4BeZIPb8|&mnuJ%-|+B3enl6A{8m)9t$)+u+6RaL%;)aVNxOq) zoGaQs*E=-19La2dWBwP6&v3)%XOw3t`cmPj&t__cI~HsVk9Sv+f8s6DsUCCZ_Kh3ne2{rT{hNBlY7l4wfMz)3BWfa*ri6vGoo4RV} z9CD$~okk2fR)Dn4PR7%!T2MjqIkLi~$vkJLR=w83bMua;6~5-#ccA$SoqOMK+hgiY z(z0Jho^qHRx)-ny%x3_5|^J5M{E!!urx^ig29ufWNHdS zls{~o<2tm?>BosnrQxIy(cmr#UK`+UH7OI_hycSyoRAoy%=IjxMS!t0WM2L$#hHwA zOoW}2W9|$gom8q7+zSegP=GBwPj?7!DQ%P4vbBZ!FerGXJ^Z4s9Je%H&uEI~QdTUZ zaqH{5NP$lqJ(#q8QKnKcAYKntuH#jGf+Fz$DD1_-^P69dm4T_-_g}UF=6_ka%0It8 z&<;0Il+77c&60gNWBp)s+si71c+_u8kY7s;qN4z!48ZFNp0p!f&_PG6AnCROJ<8?? z(Ij6aP-4+KK1F>HHQnSE!TjR<rclcP4KIJ)| zUhZJ-;bkth6kb)7xmWYPI;YJiUK;x^O=JFw6;zpnz>O0U;VR4OnHd4>1i$ojhC0KN zZUmOzJ0Qq2sCe$1s3HybOz@k2cStE76{eDi215_xcM}+WNj#VFy*VEYlW-yH%Q-TB zc0qsmcV$@c9&{oAAFCyL{x*NFN9Y+mU&hLiloG2R>v*!!c-Phb3q=-m{A-jC!A?+j z%P2_jbxCVicq4%7(lUZqa$D`N4PeGEOu{b3{17?YI{@&;xr~NmNCjJ^5M1}Z5>ZoRtA!GR zrE{c6CRyST0sK-u)V@Ovl0iv>rK1>(UR?PUhJU@W#HK-DKJhQTCyP2@h;QSHKa=Kg z5!r0O`7+RJG@xxoz(Bb4qik<*=rk}ToZJkcmfnRNT;C;T3ymDTBsO+)|5oz1fzuJf zo<*sDJ-?lnL;EQtBSL()X!fRy&Yx^@-+L)*euZ%oY(nmg4ScI|K4!Z13^P$TQgvb% zYtKBpQyP=%a#N!`f`@)J$#nO1&|ZgeqR+vXhv)H-sV=`JUNkAepkB8Qr*LngF!5Qr zl$-F=Cp7R$}Hmb=*PLs23EsxkpcINk6wY0f^fc}!FdOsf@vrgM zu8(khfg$GNs}Qj%6Ro(G7WM&#r7zthuumVmH~hGICzwh?r*d!&9e!Qc(qg88fVCOI zAYs_^)BAmy2>eCVG4R$MTd6>q^tLa_FZ|dTx*S=Q4cfJ-*`cK%2c;&EPz1C&EyNqk znm#V#IQziVY_|6<(Ts}1d%VQ$EcYlTEjAX_eSn6dU0C^O7?$npySm<`m2=}0-XIK0 zt#PxGr*GvXt4Q5`s*{(^4w&{F%z%M%6xUzLUtNT$MWQ{tX^Qc1hk}_S2`OLD$eE^^ zXrNJWHQmp6fDLpqh(zAiCH(~xDet(`^GYp=Jw}4P3XKpUFv#l0^CR5HPaT9;XEsuQ z8?!ci=?Y%;cmrz@)TSCfm6clg?Aih+A%(nb#pOrt*Z5)$&z+4nqmhG0Y#p2SDobTz zz*5E!B4#s$i&f4?$devLa&sAh0kW<@Y;1x9VtZAZ&~hJ!hXv!S1z8{Bq&E^@zgEvjZcMBo;B&Ec*SOC2LRaP3V!D zrM#QI&-{;McCv=@bgIv7Pf_-lZR`+?^OHs>{0F}e&J(CFkVFK_^rp_dZSd1)EP;Cs z%uu{%bpvK39y$6|_7ZC1gAKlw;Nt3CHB|L{;EwpRf&Ywb){uVIz?p!@pTqpq-=v!@ z&NvH=mT6<&ZTa2V2L<*T7t)38*32qlmF&#w(nuTx-IpJ5f!{ab)1CTA9HJS{TBM+; z-K@dZp`DHMea?~Lf^9z0Aje>ZmgjA>leRro?G%x!+Y_?*zyeuSSbKJu5g_OwSKRP* zKLz@EH?LBJBs|*lp<~Vl>-Ba9t+UY_A;zCIoM4)r)@l4CKaxkh;;J0$rPuY*xk1Zz zWFc^yNY(94Pt#>$m^0nMc9XsrRg^%F*rJ-X`-3Z@AGB?>lA(;Fi_^(NF~tM$ko7qP z%EvyeK3-kEirmu?W?=iSEtVyN_R?~sHWVb*RJ8QoeuHkv7t6am zl|vM#k$WphH=SVdg5lCDZ~dI!2;D*kv3cy?Qqxs#B9Jymu8SL2ozH!*Sl#4~bbeMfDypwf&ub3FfSSSzSX zzC3^v5@2I#n4B$N4_f>za@pvgi|ob+6ANaZq?5-kKM9aUuC!7 zV4VZc0cnu-HM?}657ckFna5)C>`#9eUGm_F)jGdc5_hh=W3w``gKdBa<#(KD>syd% z)N?%B+~nEkV8@&@Sh{@E-%s=(y#kTy87VIL*&o;)6|<5lpdL5w5Jwwv5AJ9WfqD+B zOc`)Ux|6Qzn{&i!&$cgbv(&ES-L!OWJOQpx8aHh7LhfF-|6=B_Ry2I{$1~xOG6JY^D;mH?%+!- z)Hk4dVqCH$FmefKj#TQ6K0}Q>!hhGSs=5k*T~Zv1e)+lg?fL<)K{|YldI5R>URdX* z;mA$gre**D`r&S24Q?95-*@bvRgUT$by!kg*do&N!ix!oLBgIFQY&4O-{jUlpZ%qm z!U1!251R-F+$k0pzsoljMW5LVCoMgFSN@bx=S*!wj6ZfBhtyI9x~O5h^!51cgF{D! zQ&@s&JLpaK7pi1HB%spP?P%mD44Zde&E7g^raVM9O|wRXVilL4Ag2iLFJ6ci!=I<6|=qw00EfPuAXEyJ6eXM=YlBW5`gm@JveYmrUFw+?xZ2f%$(*{w*KOzInYvtOi=s^X0 z^mlj+>`@xVz@Ip4%wnivwP7|9!y_+5IOPOaf6MQJOu0bl#TGd{JW!&)!L;O-NVRB7 zIiMsFun~Ss2dZwLYES`apZ5p_fRe>*r%<5)UVpG%Z98^@CUTiDMGrr++yuz9HE2Pq zDuHL9&{;S5{GY3_jtXS0&cAD;&u?73<^wa{bUZ9$fQRIsNEy&(qVGmJ=WU?}`oLyF z6^~)b8Err9RO}RqvH`MdF~Bp-YX3D6@}~saA8xzF>Fa9dHL*Sc%d|ZkWq9alT2mM@ zd-^Z!$8Uaj?OYVsou7>x>oG2wNM{#>FQW4Nb~Tk{B2J4W+pb5q?O&M$+jzSn#wV(n zxsOW1h3T4A)ypELS`*_yW$5;;S$Bq|(-}q#nUZv)_jYlNUx z-`?ly(VNzZbn3>5d{PyDl9B0m*jS-&TK}uZ;WNyS{YgHeeWzLiK7Y(-;=gOL-CY;e z2&^sHL_Y2xWZ=Y`Re(sGQWhdI@%JP8&o9n+0abA0%WW6_+nYpRHV&vtVJw|ae>=4Q z^5&Pn1MqgQ%Q4FT^=pAogaNnJHkG6De;)e}H+1jvGTy{gY{qrvT5hOGn3F$>TpCF|hn(fRlgt{^|cqfAHUJwC09CJnJ<# z{Gn;q-0+7XXDu53&@^k&@Q2}jEh+!dG;2xuhqsKiyWx*bvvxOJyBq#}*^Hho)Jplz*6c{@+f@jNess*RA{MsQFow xtD@TE|I5g@iV;F*is!Zdx%<35)#QtC(^EZ@{>zB{>~+AO`8n&eSW}OC{|ByXVDkU~ literal 0 HcmV?d00001 From e3b40d4d0daaf44fadf7aac0a7fa5fea91361442 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Fri, 12 Sep 2025 15:09:42 +0200 Subject: [PATCH 402/432] chore(angular-query): remove standalone component markers as it's now the default (#9647) --- docs/framework/angular/guides/mutations.md | 1 - docs/framework/angular/guides/queries.md | 2 -- docs/framework/angular/guides/query-cancellation.md | 1 - docs/framework/angular/overview.md | 1 - docs/framework/angular/quick-start.md | 1 - examples/angular/auto-refetching/src/app/app.component.ts | 1 - .../basic-persister/src/app/components/post.component.ts | 1 - .../basic-persister/src/app/components/posts.component.ts | 1 - examples/angular/basic/src/app/components/post.component.ts | 1 - examples/angular/optimistic-updates/src/app/app.component.ts | 1 - .../src/__tests__/inject-mutation-state.test.ts | 1 - .../src/__tests__/inject-mutation.test.ts | 2 -- .../src/__tests__/inject-query.test.ts | 1 - 13 files changed, 15 deletions(-) diff --git a/docs/framework/angular/guides/mutations.md b/docs/framework/angular/guides/mutations.md index 5ba756d625..93405979ba 100644 --- a/docs/framework/angular/guides/mutations.md +++ b/docs/framework/angular/guides/mutations.md @@ -47,7 +47,6 @@ export class TodosComponent { ```angular-ts @Component({ - standalone: true, selector: 'todo-item', imports: [ReactiveFormsModule], template: ` diff --git a/docs/framework/angular/guides/queries.md b/docs/framework/angular/guides/queries.md index 2d1f6c522e..336da2e171 100644 --- a/docs/framework/angular/guides/queries.md +++ b/docs/framework/angular/guides/queries.md @@ -37,7 +37,6 @@ result = injectQuery(() => ({ queryKey: ['todos'], queryFn: fetchTodoList })) ```angular-ts @Component({ selector: 'todos', - standalone: true, template: ` @if (todos.isPending()) { Loading... @@ -70,7 +69,6 @@ If booleans aren't your thing, you can always use the `status` state as well: ```angular-ts @Component({ selector: 'todos', - standalone: true, template: ` @switch (todos.status()) { @case ('pending') { diff --git a/docs/framework/angular/guides/query-cancellation.md b/docs/framework/angular/guides/query-cancellation.md index e0d108da67..572e8b5dc3 100644 --- a/docs/framework/angular/guides/query-cancellation.md +++ b/docs/framework/angular/guides/query-cancellation.md @@ -83,7 +83,6 @@ You might want to cancel a query manually. For example, if the request takes a l ```angular-ts @Component({ - standalone: true, template: ``, }) export class TodosComponent { diff --git a/docs/framework/angular/overview.md b/docs/framework/angular/overview.md index e8bd94a4e7..8d97b60376 100644 --- a/docs/framework/angular/overview.md +++ b/docs/framework/angular/overview.md @@ -70,7 +70,6 @@ import { lastValueFrom } from 'rxjs' @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'simple-example', - standalone: true, template: ` @if (query.isPending()) { Loading... diff --git a/docs/framework/angular/quick-start.md b/docs/framework/angular/quick-start.md index 66d8c21396..4d868b59a1 100644 --- a/docs/framework/angular/quick-start.md +++ b/docs/framework/angular/quick-start.md @@ -55,7 +55,6 @@ import { } from '@tanstack/angular-query-experimental' @Component({ - standalone: true, template: `
diff --git a/examples/angular/auto-refetching/src/app/app.component.ts b/examples/angular/auto-refetching/src/app/app.component.ts index 180391550b..8b3b50bba9 100644 --- a/examples/angular/auto-refetching/src/app/app.component.ts +++ b/examples/angular/auto-refetching/src/app/app.component.ts @@ -4,7 +4,6 @@ import { AutoRefetchingExampleComponent } from './components/auto-refetching.com @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-root', - standalone: true, template: ``, imports: [AutoRefetchingExampleComponent], }) diff --git a/examples/angular/basic-persister/src/app/components/post.component.ts b/examples/angular/basic-persister/src/app/components/post.component.ts index d77e707e99..9eb32807db 100644 --- a/examples/angular/basic-persister/src/app/components/post.component.ts +++ b/examples/angular/basic-persister/src/app/components/post.component.ts @@ -13,7 +13,6 @@ import { PostsService } from '../services/posts-service' @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'post', - standalone: true, templateUrl: './post.component.html', }) export class PostComponent { diff --git a/examples/angular/basic-persister/src/app/components/posts.component.ts b/examples/angular/basic-persister/src/app/components/posts.component.ts index 3c8bf7c79d..2f04558e9d 100644 --- a/examples/angular/basic-persister/src/app/components/posts.component.ts +++ b/examples/angular/basic-persister/src/app/components/posts.component.ts @@ -12,7 +12,6 @@ import { PostsService } from '../services/posts-service' @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'posts', - standalone: true, templateUrl: './posts.component.html', }) export class PostsComponent { diff --git a/examples/angular/basic/src/app/components/post.component.ts b/examples/angular/basic/src/app/components/post.component.ts index 2e4bfa79e2..de80ffe6d3 100644 --- a/examples/angular/basic/src/app/components/post.component.ts +++ b/examples/angular/basic/src/app/components/post.component.ts @@ -12,7 +12,6 @@ import { PostsService } from '../services/posts-service' @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'post', - standalone: true, templateUrl: './post.component.html', }) export class PostComponent { diff --git a/examples/angular/optimistic-updates/src/app/app.component.ts b/examples/angular/optimistic-updates/src/app/app.component.ts index 5ac120775e..f2c799fc30 100644 --- a/examples/angular/optimistic-updates/src/app/app.component.ts +++ b/examples/angular/optimistic-updates/src/app/app.component.ts @@ -4,7 +4,6 @@ import { OptimisticUpdatesComponent } from './components/optimistic-updates.comp @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-root', - standalone: true, template: ``, imports: [OptimisticUpdatesComponent], }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts index 17469718a9..8b747f66f6 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation-state.test.ts @@ -145,7 +145,6 @@ describe('injectMutationState', () => { {{ mutation.status }} } `, - standalone: true, }) class FakeComponent { name = input.required() diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 1909682d01..120fd4fa5b 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -306,7 +306,6 @@ describe('injectMutation', () => { {{ mutation.data() }} `, - standalone: true, }) class FakeComponent { name = input.required() @@ -347,7 +346,6 @@ describe('injectMutation', () => { {{ mutation.data() }} `, - standalone: true, }) class FakeComponent { name = input.required() diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index a0ed6229d6..6197c73778 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -514,7 +514,6 @@ describe('injectQuery', () => { @Component({ selector: 'app-fake', template: `{{ query.data() }}`, - standalone: true, }) class FakeComponent { name = input.required() From 94ee0ebeff9b65c2ad381ea866389f925865113c Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Fri, 12 Sep 2025 17:11:19 +0200 Subject: [PATCH 403/432] docs(angular-query): improve mutationOptions jsdoc code example (#9648) --- .../src/mutation-options.ts | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/angular-query-experimental/src/mutation-options.ts b/packages/angular-query-experimental/src/mutation-options.ts index eaac0c5f85..61dfc242cb 100644 --- a/packages/angular-query-experimental/src/mutation-options.ts +++ b/packages/angular-query-experimental/src/mutation-options.ts @@ -16,17 +16,21 @@ import type { CreateMutationOptions } from './types' * mutationKey: ["updatePost", id], * onSuccess: (newPost) => { * // ^? newPost: Post - * this.queryClient.setQueryData(["posts", id], newPost); + * this.queryClient.setQueryData(["posts", id], newPost) * }, * }); * } * } * - * queries = inject(QueriesService) - * idSignal = new Signal(0); - * mutation = injectMutation(() => this.queries.updatePost(this.idSignal())) + * class ComponentOrService { + * queries = inject(QueriesService) + * id = signal(0) + * mutation = injectMutation(() => this.queries.updatePost(this.id())) + * } * - * mutation.mutate({ title: 'New Title' }) + * save() { + * this.mutation.mutate({ title: 'New Title' }) + * } * ``` * @param options - The mutation options. * @returns Mutation options. @@ -75,17 +79,21 @@ export function mutationOptions< * mutationKey: ["updatePost", id], * onSuccess: (newPost) => { * // ^? newPost: Post - * this.queryClient.setQueryData(["posts", id], newPost); + * this.queryClient.setQueryData(["posts", id], newPost) * }, * }); * } * } * - * queries = inject(QueriesService) - * idSignal = new Signal(0); - * mutation = injectMutation(() => this.queries.updatePost(this.idSignal())) + * class ComponentOrService { + * queries = inject(QueriesService) + * id = signal(0) + * mutation = injectMutation(() => this.queries.updatePost(this.id())) + * } * - * mutation.mutate({ title: 'New Title' }) + * save() { + * this.mutation.mutate({ title: 'New Title' }) + * } * ``` * @param options - The mutation options. * @returns Mutation options. From 6492aed7bec974c80b555d0438ed834f13134c65 Mon Sep 17 00:00:00 2001 From: Sarah Date: Sat, 13 Sep 2025 23:48:04 -0700 Subject: [PATCH 404/432] docs: Readme fix (#9652) * remove css and fix layout * fix readme and remove css * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- README.md | 99 ++++++++++++++++++++++-------------------- media/partner_logo.svg | 26 +++++++++++ 2 files changed, 78 insertions(+), 47 deletions(-) create mode 100644 media/partner_logo.svg diff --git a/README.md b/README.md index 47839f688e..101f974cbb 100644 --- a/README.md +++ b/README.md @@ -4,18 +4,8 @@ TanStack Query
-An async state management library built to simplify fetching, caching, synchronizing, and updating server state. - -- Protocolโ€‘agnostic fetching (REST, GraphQL, promises, etc.) -- Caching, refetching, pagination & infinite scroll -- Mutations, dependent queries & background updates -- Prefetching, cancellation & React Suspense support - -
Read the Query Docs โ†’
-
-
@@ -30,19 +20,28 @@ An async state management library built to simplify fetching, caching, synchroni -
+
-[Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) +### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)
-
+# TanStack Query + +An async state management library built to simplify fetching, caching, synchronizing, and updating server state. + +- Protocolโ€‘agnostic fetching (REST, GraphQL, promises, etc.) +- Caching, refetching, pagination & infinite scroll +- Mutations, dependent queries & background updates +- Prefetching, cancellation & React Suspense support + +### Read the docs โ†’
## Get Involved @@ -53,41 +52,47 @@ An async state management library built to simplify fetching, caching, synchroni ## Partners -
- - - - - - Speakeasy Logo - - + + + + + + +
+ + Code Rabbit + + + + Cloudflare + +
+ +
+Query & you? +

+We're looking for TanStack Query Partners to join our mission! Partner with us to push the boundaries of TanStack Query and build amazing things together. +

+LET'S CHAT +
+
## Explore the TanStack Ecosystem -
-TanStack Config โ€“ Tooling for JS/TS packages
- TanStack DB โ€“ Reactive sync client store
- TanStack DevTools โ€“ Unified devtools panel
- TanStack Form โ€“ Typeโ€‘safe form state
- TanStack Pacer โ€“ Debouncing, throttling, batching
- TanStack Ranger โ€“ Range & slider primitives
- TanStack Router โ€“ Typeโ€‘safe routing, caching & URL state
- TanStack Start โ€“ Fullโ€‘stack SSR & streaming
- TanStack Store โ€“ Reactive data store
- TanStack Table โ€“ Headless datagrids
- TanStack Virtual โ€“ Virtualized rendering
- โ€ฆ and more at TanStack.com ยป -
+- TanStack Config โ€“ Tooling for JS/TS packages +- TanStack DB โ€“ Reactive sync client store +- TanStack DevTools โ€“ Unified devtools panel +- TanStack Form โ€“ Typeโ€‘safe form state +- TanStack Pacer โ€“ Debouncing, throttling, batching
+- TanStack Query โ€“ Async state & caching +- TanStack Ranger โ€“ Range & slider primitives +- TanStack Router โ€“ Typeโ€‘safe routing, caching & URL state +- TanStack Start โ€“ Fullโ€‘stack SSR & streaming +- TanStack Store โ€“ Reactive data store +- TanStack Table โ€“ Headless datagrids +- TanStack Virtual โ€“ Virtualized rendering + +โ€ฆ and more at TanStack.com ยป diff --git a/media/partner_logo.svg b/media/partner_logo.svg new file mode 100644 index 0000000000..2a5ffd2034 --- /dev/null +++ b/media/partner_logo.svg @@ -0,0 +1,26 @@ + + + + + + QUERY + + + + + + + + + + + YOU? + + \ No newline at end of file From ca56514d393f1b60d2b4058b53129ab37d47cf69 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Mon, 15 Sep 2025 02:33:04 +0200 Subject: [PATCH 405/432] refactor(angular-query): move injectQueries to sub-path export (#9655) --- knip.json | 3 +++ packages/angular-query-experimental/package.json | 4 ++++ packages/angular-query-experimental/src/index.ts | 1 - .../src/inject-queries-experimental/index.ts | 1 + packages/angular-query-experimental/vite.config.ts | 2 +- 5 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 packages/angular-query-experimental/src/inject-queries-experimental/index.ts diff --git a/knip.json b/knip.json index 490e31c190..bf142253e8 100644 --- a/knip.json +++ b/knip.json @@ -15,6 +15,9 @@ ], "ignoreWorkspaces": ["examples/**", "integrations/**"], "workspaces": { + "packages/angular-query-experimental": { + "entry": ["src/index.ts", "src/inject-queries-experimental/index.ts"] + }, "packages/query-codemods": { "entry": ["src/v4/**/*.cjs", "src/v5/**/*.cjs"], "ignore": ["**/__testfixtures__/**"] diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index e9b4ad6cf7..47f5e2f57c 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -55,6 +55,10 @@ "types": "./dist/index.d.ts", "default": "./dist/index.mjs" }, + "./inject-queries-experimental": { + "types": "./dist/inject-queries-experimental/index.d.ts", + "default": "./dist/inject-queries-experimental/index.mjs" + }, "./package.json": "./package.json" }, "sideEffects": false, diff --git a/packages/angular-query-experimental/src/index.ts b/packages/angular-query-experimental/src/index.ts index 9c8a58724b..d50f2a6078 100644 --- a/packages/angular-query-experimental/src/index.ts +++ b/packages/angular-query-experimental/src/index.ts @@ -40,7 +40,6 @@ export type { InjectMutationStateOptions } from './inject-mutation-state' export { injectMutationState } from './inject-mutation-state' export type { QueriesOptions, QueriesResults } from './inject-queries' -export { injectQueries } from './inject-queries' export type { InjectQueryOptions } from './inject-query' export { injectQuery } from './inject-query' diff --git a/packages/angular-query-experimental/src/inject-queries-experimental/index.ts b/packages/angular-query-experimental/src/inject-queries-experimental/index.ts new file mode 100644 index 0000000000..d300d7d2a5 --- /dev/null +++ b/packages/angular-query-experimental/src/inject-queries-experimental/index.ts @@ -0,0 +1 @@ +export * from '../inject-queries' diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts index 5f05c82696..e977cbc0d0 100644 --- a/packages/angular-query-experimental/vite.config.ts +++ b/packages/angular-query-experimental/vite.config.ts @@ -111,7 +111,7 @@ export default mergeConfig( config, tanstackViteConfig({ cjs: false, - entry: ['./src/index.ts'], + entry: ['./src/index.ts', './src/inject-queries-experimental/index.ts'], exclude: ['./src/__tests__'], srcDir: './src', tsconfigPath: './tsconfig.prod.json', From 2b0d97abc629e692c576003e1f75780d746b23f0 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 15 Sep 2025 00:36:06 +0000 Subject: [PATCH 406/432] release: v5.87.5 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 4 ++-- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- packages/angular-query-devtools-experimental/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index e00e110fb4..407267eb71 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index a169d72b08..5dfc326857 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.87.4", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index b1f620dd39..5191271f2a 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 44390e5948..e92b689efc 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,8 +14,8 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-devtools-experimental": "^5.87.4", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-devtools-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 8a77b237ea..e398fa160a 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 644e498c31..b2d1466ccb 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 179102df23..034b00808a 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index d39abeb9a8..4053824e20 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 4bd73b26fd..b665016471 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index bbcd5f2243..88d8f835eb 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 3be97b6fbc..cac4a3a6de 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.4", + "@tanstack/angular-query-experimental": "^5.87.5", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json index 406a869a8e..55a0784528 100644 --- a/packages/angular-query-devtools-experimental/package.json +++ b/packages/angular-query-devtools-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.87.4", + "version": "5.87.5", "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 47f5e2f57c..2ebff1e4c4 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.87.4", + "version": "5.87.5", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", From e75a5f9d55db67188078b71e13dc79752d5a1285 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Tue, 16 Sep 2025 00:07:53 +0200 Subject: [PATCH 407/432] feat(angular-query): move devtools to conditional sub-paths (#9270) * feat(angular-query-devtools): move devtools to conditional sub-paths, improves tree shaking and dependency injection * Fix compatibility with moduleResolution node * ci: apply automated fixes * fix preview release for angular-query * Fix angular-query preview release * Revert some changes made obsolete by better Vite based alternative * Update export paths * Fix production exports and publishconfig * knip config * remove postpack * Generate API reference docs * type declarations in correct directory * Update documentation * knip config * Optional core devtools dependency * ci: apply automated fixes * regenerate api reference docs * ci: apply automated fixes * ci: apply automated fixes (attempt 2/3) * regenerate api reference docs * formatting * apply coderabbit suggestions * Improve unit tests * docs --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- codecov.yml | 4 - docs/framework/angular/devtools.md | 77 ++- .../angular/guides/query-cancellation.md | 2 +- .../functions/infinitequeryoptions.md | 48 +- .../functions/injectinfinitequery.md | 22 +- .../reference/functions/injectisfetching.md | 8 +- .../reference/functions/injectismutating.md | 8 +- .../reference/functions/injectisrestoring.md | 10 +- .../reference/functions/injectmutation.md | 8 +- .../functions/injectmutationstate.md | 8 +- .../reference/functions/injectqueries.md | 18 +- .../reference/functions/injectquery.md | 20 +- .../reference/functions/injectqueryclient.md | 8 +- .../reference/functions/mutationoptions.md | 150 ++++- .../functions/provideangularquery.md | 40 ++ .../reference/functions/provideisrestoring.md | 8 +- .../reference/functions/providequeryclient.md | 8 +- .../functions/providetanstackquery.md | 13 +- .../reference/functions/queryfeature.md | 10 +- .../reference/functions/queryoptions.md | 39 +- .../reference/functions/withdevtools.md | 49 -- docs/framework/angular/reference/index.md | 12 +- .../interfaces/basemutationnarrowing.md | 20 +- .../interfaces/basequerynarrowing.md | 28 +- .../interfaces/createbasequeryoptions.md | 4 + .../interfaces/createinfinitequeryoptions.md | 10 +- .../interfaces/createmutationoptions.md | 4 + .../interfaces/createqueryoptions.md | 4 + .../reference/interfaces/devtoolsoptions.md | 143 ----- .../interfaces/injectinfinitequeryoptions.md | 10 +- .../interfaces/injectisfetchingoptions.md | 10 +- .../interfaces/injectismutatingoptions.md | 10 +- .../interfaces/injectmutationoptions.md | 10 +- .../interfaces/injectmutationstateoptions.md | 10 +- .../interfaces/injectqueryoptions.md | 10 +- .../reference/interfaces/queryfeature.md | 14 +- .../type-aliases/createbasemutationresult.md | 8 +- .../type-aliases/createbasequeryresult.md | 8 +- .../type-aliases/createinfinitequeryresult.md | 8 +- .../type-aliases/createmutateasyncfunction.md | 8 +- .../type-aliases/createmutatefunction.md | 8 +- .../type-aliases/createmutationresult.md | 8 +- .../type-aliases/createqueryresult.md | 8 +- .../definedcreateinfinitequeryresult.md | 8 +- .../type-aliases/definedcreatequeryresult.md | 8 +- .../definedinitialdatainfiniteoptions.md | 9 +- .../type-aliases/definedinitialdataoptions.md | 8 +- .../type-aliases/developertoolsfeature.md | 12 +- .../type-aliases/persistqueryclientfeature.md | 8 +- .../reference/type-aliases/queriesoptions.md | 12 +- .../reference/type-aliases/queriesresults.md | 12 +- .../type-aliases/queryfeaturekind.md | 14 - .../reference/type-aliases/queryfeatures.md | 8 +- .../undefinedinitialdatainfiniteoptions.md | 9 +- .../undefinedinitialdataoptions.md | 8 +- .../unusedskiptokeninfiniteoptions.md | 11 +- .../type-aliases/unusedskiptokenoptions.md | 8 +- .../reference/variables/queryfeatures.md | 14 - .../auto-refetching/src/app/app.config.ts | 2 +- .../basic-persister/src/app/app.config.ts | 2 +- examples/angular/basic/src/app/app.config.ts | 2 +- examples/angular/devtools-panel/package.json | 1 - .../basic-devtools-panel-example.component.ts | 2 +- ...y-load-devtools-panel-example.component.ts | 4 +- .../src/app/app.config.ts | 2 +- .../optimistic-updates/src/app/app.config.ts | 2 +- .../angular/pagination/src/app/app.config.ts | 2 +- .../src/app/app.config.ts | 2 +- examples/angular/router/src/app/app.config.ts | 2 +- examples/angular/rxjs/src/app/app.config.ts | 2 +- examples/angular/simple/src/app/app.config.ts | 2 +- knip.json | 6 + package.json | 1 - .../.attw.json | 7 - .../eslint.config.js | 17 - .../package.json | 68 -- .../root.eslint.config.js | 1 - .../src/index.ts | 1 - .../src/inject-devtools-panel.ts | 150 ----- .../src/test-setup.ts | 7 - .../tsconfig.json | 17 - .../tsconfig.prod.json | 8 - .../tsup.config.ts | 13 - .../vite.config.ts | 28 - .../eslint.config.js | 8 +- .../angular-query-experimental/package.json | 26 +- .../__tests__/inject-devtools-panel.test.ts | 40 +- .../src/__tests__/providers.test.ts | 321 ---------- .../src/__tests__/with-devtools.test.ts | 603 ++++++++++++++++++ .../src/devtools-panel/index.ts | 8 + .../devtools-panel/inject-devtools-panel.ts | 110 ++++ .../src/devtools-panel/production/index.ts | 1 + .../src/devtools-panel/stub.ts | 7 + .../src/devtools-panel/types.ts | 57 ++ .../src/devtools/index.ts | 8 + .../src/devtools/production/index.ts | 1 + .../src/devtools/stub.ts | 7 + .../src/devtools/types.ts | 107 ++++ .../src/devtools/with-devtools.ts | 180 ++++++ .../angular-query-experimental/src/index.ts | 5 +- .../src/infinite-query-options.ts | 4 - .../src/inject-infinite-query.ts | 4 - .../src/inject-is-mutating.ts | 1 - .../src/inject-is-restoring.ts | 28 +- .../src/inject-mutation-state.ts | 4 - .../src/inject-mutation.ts | 1 - .../src/inject-queries.ts | 4 - .../src/inject-query-client.ts | 1 - .../src/inject-query.ts | 4 - .../src/mutation-options.ts | 22 +- .../src/providers.ts | 221 +------ .../src/query-options.ts | 4 - .../angular-query-experimental/src/types.ts | 48 -- .../src/util/is-dev-mode/is-dev-mode.ts | 3 - .../angular-query-experimental/vite.config.ts | 13 +- .../angular-query-persist-client/package.json | 4 +- pnpm-lock.yaml | 36 +- scripts/publish.ts | 4 - 118 files changed, 1741 insertions(+), 1567 deletions(-) create mode 100644 docs/framework/angular/reference/functions/provideangularquery.md delete mode 100644 docs/framework/angular/reference/functions/withdevtools.md delete mode 100644 docs/framework/angular/reference/interfaces/devtoolsoptions.md delete mode 100644 docs/framework/angular/reference/type-aliases/queryfeaturekind.md delete mode 100644 docs/framework/angular/reference/variables/queryfeatures.md delete mode 100644 packages/angular-query-devtools-experimental/.attw.json delete mode 100644 packages/angular-query-devtools-experimental/eslint.config.js delete mode 100644 packages/angular-query-devtools-experimental/package.json delete mode 120000 packages/angular-query-devtools-experimental/root.eslint.config.js delete mode 100644 packages/angular-query-devtools-experimental/src/index.ts delete mode 100644 packages/angular-query-devtools-experimental/src/inject-devtools-panel.ts delete mode 100644 packages/angular-query-devtools-experimental/src/test-setup.ts delete mode 100644 packages/angular-query-devtools-experimental/tsconfig.json delete mode 100644 packages/angular-query-devtools-experimental/tsconfig.prod.json delete mode 100644 packages/angular-query-devtools-experimental/tsup.config.ts delete mode 100644 packages/angular-query-devtools-experimental/vite.config.ts rename packages/{angular-query-devtools-experimental => angular-query-experimental}/src/__tests__/inject-devtools-panel.test.ts (80%) delete mode 100644 packages/angular-query-experimental/src/__tests__/providers.test.ts create mode 100644 packages/angular-query-experimental/src/__tests__/with-devtools.test.ts create mode 100644 packages/angular-query-experimental/src/devtools-panel/index.ts create mode 100644 packages/angular-query-experimental/src/devtools-panel/inject-devtools-panel.ts create mode 100644 packages/angular-query-experimental/src/devtools-panel/production/index.ts create mode 100644 packages/angular-query-experimental/src/devtools-panel/stub.ts create mode 100644 packages/angular-query-experimental/src/devtools-panel/types.ts create mode 100644 packages/angular-query-experimental/src/devtools/index.ts create mode 100644 packages/angular-query-experimental/src/devtools/production/index.ts create mode 100644 packages/angular-query-experimental/src/devtools/stub.ts create mode 100644 packages/angular-query-experimental/src/devtools/types.ts create mode 100644 packages/angular-query-experimental/src/devtools/with-devtools.ts delete mode 100644 packages/angular-query-experimental/src/util/is-dev-mode/is-dev-mode.ts diff --git a/codecov.yml b/codecov.yml index ef21589e00..da56c6458c 100644 --- a/codecov.yml +++ b/codecov.yml @@ -19,10 +19,6 @@ comment: component_management: individual_components: - - component_id: angular-query-devtools-experimental - name: '@tanstack/angular-query-devtools-experimental' - paths: - - packages/angular-query-devtools-experimental/** - component_id: angular-query-experimental name: '@tanstack/angular-query-experimental' paths: diff --git a/docs/framework/angular/devtools.md b/docs/framework/angular/devtools.md index 7b3ad785b6..c0cfb9141c 100644 --- a/docs/framework/angular/devtools.md +++ b/docs/framework/angular/devtools.md @@ -13,27 +13,38 @@ title: Devtools The devtools help you debug and inspect your queries and mutations. You can enable the devtools by adding `withDevtools` to `provideTanStackQuery`. -By default, the devtools are enabled when Angular [`isDevMode`](https://angular.dev/api/core/isDevMode) returns true. So you don't need to worry about excluding them during a production build. The core tools are lazily loaded and excluded from bundled code. In most cases, all you'll need to do is add `withDevtools()` to `provideTanStackQuery` without any additional configuration. +By default, Angular Query Devtools are only included in development mode bundles, so you don't need to worry about excluding them during a production build. ```ts import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' + export const appConfig: ApplicationConfig = { providers: [provideTanStackQuery(new QueryClient(), withDevtools())], } ``` -## Configuring if devtools are loaded +## Devtools in production -If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available. +Devtools are automatically excluded from production builds. However, it might be desirable to lazy load the devtools in production. -When not setting the option or setting it to 'auto', the devtools will be loaded when Angular is in development mode. +To use `withDevtools` in production builds, import using the `production` sub-path. The function exported from the production subpath is identical to the main one, but won't be excluded from production builds. ```ts +import { withDevtools } from '@tanstack/angular-query-experimental/devtools/production' +``` + +To control when devtools are loaded, you can use the `loadDevtools` option. + +When not setting the option or setting it to 'auto', the devtools will be loaded automatically only when Angular runs in development mode. + +```ts +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' + provideTanStackQuery(new QueryClient(), withDevtools()) // which is equivalent to @@ -45,10 +56,16 @@ provideTanStackQuery( When setting the option to true, the devtools will be loaded in both development and production mode. +This is useful if you want to load devtools based on [Angular environment configurations](https://angular.dev/tools/cli/environments). E.g. you could set this to true when the application is running on your production build staging environment. + ```ts +import { environment } from './environments/environment' +// Make sure to use the production sub-path to load devtools in production builds +import { withDevtools } from '@tanstack/angular-query-experimental/devtools/production' + provideTanStackQuery( new QueryClient(), - withDevtools(() => ({ loadDevtools: true })), + withDevtools(() => ({ loadDevtools: environment.loadDevtools })), ) ``` @@ -61,44 +78,66 @@ provideTanStackQuery( ) ``` -The `withDevtools` options are returned from a callback function to support reactivity through signals. In the following example -a signal is created from a RxJS observable that listens for a keyboard shortcut. When the event is triggered, the devtools are lazily loaded. -Using this technique allows you to support on-demand loading of the devtools even in production mode, without including the full tools in the bundled code. +## Derive options through reactivity + +Options are passed to `withDevtools` from a callback function to support reactivity through signals. In the following example +a signal is created from a RxJS observable that emits on a keyboard shortcut. When the derived signal is set to true, the devtools are lazily loaded. + +The example below always loads devtools in development mode and loads on-demand in production mode when a keyboard shortcut is pressed. ```ts +import { Injectable, isDevMode } from '@angular/core' +import { fromEvent, map, scan } from 'rxjs' +import { toSignal } from '@angular/core/rxjs-interop' + @Injectable({ providedIn: 'root' }) -class DevtoolsOptionsManager { +export class DevtoolsOptionsManager { loadDevtools = toSignal( fromEvent(document, 'keydown').pipe( map( (event): boolean => event.metaKey && event.ctrlKey && event.shiftKey && event.key === 'D', ), - scan((acc, curr) => acc || curr, false), + scan((acc, curr) => acc || curr, isDevMode()), ), { - initialValue: false, + initialValue: isDevMode(), }, ) } +``` + +If you want to use an injectable such as a service in the callback you can use `deps`. The injected value will be passed as parameter to the callback function. + +This is similar to `deps` in Angular's [`useFactory`](https://angular.dev/guide/di/dependency-injection-providers#factory-providers-usefactory) provider. + +```ts +// ... +// ๐Ÿ‘‡ Note we import from the production sub-path to enable devtools lazy loading in production builds +import { withDevtools } from '@tanstack/angular-query-experimental/devtools/production' export const appConfig: ApplicationConfig = { providers: [ provideHttpClient(), provideTanStackQuery( new QueryClient(), - withDevtools(() => ({ - initialIsOpen: true, - loadDevtools: inject(DevtoolsOptionsManager).loadDevtools(), - })), + withDevtools( + (devToolsOptionsManager: DevtoolsOptionsManager) => ({ + loadDevtools: devToolsOptionsManager.loadDevtools(), + }), + { + // `deps` is used to inject and pass `DevtoolsOptionsManager` to the `withDevtools` callback. + deps: [DevtoolsOptionsManager], + }, + ), ), ], } ``` -### Options +### Options returned from the callback -Of these options `client`, `position`, `errorTypes`, `buttonPosition`, and `initialIsOpen` support reactivity through signals. +Of these options `loadDevtools`, `client`, `position`, `errorTypes`, `buttonPosition`, and `initialIsOpen` support reactivity through signals. - `loadDevtools?: 'auto' | boolean` - Defaults to `auto`: lazily loads devtools when in development mode. Skips loading in production mode. @@ -121,3 +160,5 @@ Of these options `client`, `position`, `errorTypes`, `buttonPosition`, and `init - `shadowDOMTarget?: ShadowRoot` - Default behavior will apply the devtool's styles to the head tag within the DOM. - Use this to pass a shadow DOM target to the devtools so that the styles will be applied within the shadow DOM instead of within the head tag in the light DOM. +- `hideDisabledQueries?: boolean` + - Set this to true to hide disabled queries from the devtools panel. diff --git a/docs/framework/angular/guides/query-cancellation.md b/docs/framework/angular/guides/query-cancellation.md index 572e8b5dc3..554cb28d1d 100644 --- a/docs/framework/angular/guides/query-cancellation.md +++ b/docs/framework/angular/guides/query-cancellation.md @@ -60,7 +60,7 @@ query = injectQuery(() => ({ [//]: # 'Example3' -```tsx +```ts import axios from 'axios' const query = injectQuery(() => ({ diff --git a/docs/framework/angular/reference/functions/infinitequeryoptions.md b/docs/framework/angular/reference/functions/infinitequeryoptions.md index 92894f5bcd..4f7055f247 100644 --- a/docs/framework/angular/reference/functions/infinitequeryoptions.md +++ b/docs/framework/angular/reference/functions/infinitequeryoptions.md @@ -3,6 +3,8 @@ id: infiniteQueryOptions title: infiniteQueryOptions --- + + # Function: infiniteQueryOptions() Allows to share and re-use infinite query options in a type-safe way. @@ -24,16 +26,19 @@ function infiniteQueryOptions< TPageParam, >( options, -): DefinedInitialDataInfiniteOptions< +): CreateInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam > & + object & object ``` +Defined in: [infinite-query-options.ts:88](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L88) + Allows to share and re-use infinite query options in a type-safe way. The `queryKey` will be tagged with the type from `queryFn`. @@ -60,7 +65,7 @@ The infinite query options to tag with the type from `queryFn`. ### Returns -[`DefinedInitialDataInfiniteOptions`](../../type-aliases/definedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object` +[`CreateInfiniteQueryOptions`](../../interfaces/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object` & `object` The tagged infinite query options. @@ -70,10 +75,6 @@ The tagged infinite query options. The infinite query options to tag with the type from `queryFn`. -### Defined in - -[infinite-query-options.ts:94](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L94) - ## Call Signature ```ts @@ -85,16 +86,22 @@ function infiniteQueryOptions< TPageParam, >( options, -): UnusedSkipTokenInfiniteOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam +): OmitKeyof< + CreateInfiniteQueryOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + >, + 'queryFn' > & + object & object ``` +Defined in: [infinite-query-options.ts:119](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L119) + Allows to share and re-use infinite query options in a type-safe way. The `queryKey` will be tagged with the type from `queryFn`. @@ -121,7 +128,7 @@ The infinite query options to tag with the type from `queryFn`. ### Returns -[`UnusedSkipTokenInfiniteOptions`](../../type-aliases/unusedskiptokeninfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object` +`OmitKeyof`\<[`CreateInfiniteQueryOptions`](../../interfaces/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>, `"queryFn"`\> & `object` & `object` The tagged infinite query options. @@ -131,10 +138,6 @@ The tagged infinite query options. The infinite query options to tag with the type from `queryFn`. -### Defined in - -[infinite-query-options.ts:126](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L126) - ## Call Signature ```ts @@ -146,16 +149,19 @@ function infiniteQueryOptions< TPageParam, >( options, -): UndefinedInitialDataInfiniteOptions< +): CreateInfiniteQueryOptions< TQueryFnData, TError, TData, TQueryKey, TPageParam > & + object & object ``` +Defined in: [infinite-query-options.ts:150](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L150) + Allows to share and re-use infinite query options in a type-safe way. The `queryKey` will be tagged with the type from `queryFn`. @@ -182,7 +188,7 @@ The infinite query options to tag with the type from `queryFn`. ### Returns -[`UndefinedInitialDataInfiniteOptions`](../../type-aliases/undefinedinitialdatainfiniteoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object` +[`CreateInfiniteQueryOptions`](../../interfaces/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> & `object` & `object` The tagged infinite query options. @@ -191,7 +197,3 @@ The tagged infinite query options. ### Param The infinite query options to tag with the type from `queryFn`. - -### Defined in - -[infinite-query-options.ts:158](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L158) diff --git a/docs/framework/angular/reference/functions/injectinfinitequery.md b/docs/framework/angular/reference/functions/injectinfinitequery.md index 7cc9e202e5..a8dff3e877 100644 --- a/docs/framework/angular/reference/functions/injectinfinitequery.md +++ b/docs/framework/angular/reference/functions/injectinfinitequery.md @@ -3,6 +3,8 @@ id: injectInfiniteQuery title: injectInfiniteQuery --- + + # Function: injectInfiniteQuery() Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key. @@ -31,6 +33,8 @@ function injectInfiniteQuery< ): DefinedCreateInfiniteQueryResult ``` +Defined in: [inject-infinite-query.ts:41](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L41) + Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key. Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll" @@ -76,10 +80,6 @@ A function that returns infinite query options. Additional configuration. -### Defined in - -[inject-infinite-query.ts:42](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L42) - ## Call Signature ```ts @@ -92,6 +92,8 @@ function injectInfiniteQuery< >(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult ``` +Defined in: [inject-infinite-query.ts:65](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L65) + Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key. Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll" @@ -137,10 +139,6 @@ A function that returns infinite query options. Additional configuration. -### Defined in - -[inject-infinite-query.ts:67](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L67) - ## Call Signature ```ts @@ -153,6 +151,8 @@ function injectInfiniteQuery< >(injectInfiniteQueryFn, options?): CreateInfiniteQueryResult ``` +Defined in: [inject-infinite-query.ts:89](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L89) + Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a unique key. Infinite queries can additively "load more" data onto an existing set of data or "infinite scroll" @@ -172,7 +172,7 @@ Infinite queries can additively "load more" data onto an existing set of data or #### injectInfiniteQueryFn -() => [`CreateInfiniteQueryOptions`](../../interfaces/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`, `TPageParam`\> +() => [`CreateInfiniteQueryOptions`](../../interfaces/createinfinitequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\> A function that returns infinite query options. @@ -197,7 +197,3 @@ A function that returns infinite query options. ### Param Additional configuration. - -### Defined in - -[inject-infinite-query.ts:92](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L92) diff --git a/docs/framework/angular/reference/functions/injectisfetching.md b/docs/framework/angular/reference/functions/injectisfetching.md index acd90757c5..14555e20a0 100644 --- a/docs/framework/angular/reference/functions/injectisfetching.md +++ b/docs/framework/angular/reference/functions/injectisfetching.md @@ -3,12 +3,16 @@ id: injectIsFetching title: injectIsFetching --- + + # Function: injectIsFetching() ```ts function injectIsFetching(filters?, options?): Signal ``` +Defined in: [inject-is-fetching.ts:32](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L32) + Injects a signal that tracks the number of queries that your application is loading or fetching in the background. @@ -33,7 +37,3 @@ Additional configuration `Signal`\<`number`\> signal with number of loading or fetching queries. - -## Defined in - -[inject-is-fetching.ts:32](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L32) diff --git a/docs/framework/angular/reference/functions/injectismutating.md b/docs/framework/angular/reference/functions/injectismutating.md index 7ee99e51ab..74b6bc31a1 100644 --- a/docs/framework/angular/reference/functions/injectismutating.md +++ b/docs/framework/angular/reference/functions/injectismutating.md @@ -3,12 +3,16 @@ id: injectIsMutating title: injectIsMutating --- + + # Function: injectIsMutating() ```ts function injectIsMutating(filters?, options?): Signal ``` +Defined in: [inject-is-mutating.ts:30](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L30) + Injects a signal that tracks the number of mutations that your application is fetching. Can be used for app-wide loading indicators @@ -32,7 +36,3 @@ Additional configuration `Signal`\<`number`\> signal with number of fetching mutations. - -## Defined in - -[inject-is-mutating.ts:31](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L31) diff --git a/docs/framework/angular/reference/functions/injectisrestoring.md b/docs/framework/angular/reference/functions/injectisrestoring.md index abc69d04bd..dfae444b28 100644 --- a/docs/framework/angular/reference/functions/injectisrestoring.md +++ b/docs/framework/angular/reference/functions/injectisrestoring.md @@ -3,12 +3,16 @@ id: injectIsRestoring title: injectIsRestoring --- + + # Function: injectIsRestoring() ```ts function injectIsRestoring(options?): Signal ``` +Defined in: [inject-is-restoring.ts:32](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L32) + Injects a signal that tracks whether a restore is currently in progress. [injectQuery](../injectquery.md) and friends also check this internally to avoid race conditions between the restore and initializing queries. ## Parameters @@ -23,8 +27,4 @@ Options for injectIsRestoring. `Signal`\<`boolean`\> -signal with boolean that indicates whether a restore is in progress. - -## Defined in - -[inject-is-restoring.ts:35](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L35) +readonly signal with boolean that indicates whether a restore is in progress. diff --git a/docs/framework/angular/reference/functions/injectmutation.md b/docs/framework/angular/reference/functions/injectmutation.md index 6711e90c85..bb6abf188f 100644 --- a/docs/framework/angular/reference/functions/injectmutation.md +++ b/docs/framework/angular/reference/functions/injectmutation.md @@ -3,6 +3,8 @@ id: injectMutation title: injectMutation --- + + # Function: injectMutation() ```ts @@ -12,6 +14,8 @@ function injectMutation( ): CreateMutationResult ``` +Defined in: [inject-mutation.ts:44](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L44) + Injects a mutation: an imperative function that can be invoked which typically performs server side effects. Unlike queries, mutations are not run automatically. @@ -45,7 +49,3 @@ Additional configuration [`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\> The mutation. - -## Defined in - -[inject-mutation.ts:42](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L42) diff --git a/docs/framework/angular/reference/functions/injectmutationstate.md b/docs/framework/angular/reference/functions/injectmutationstate.md index 16e31386fc..67f5d3d1bf 100644 --- a/docs/framework/angular/reference/functions/injectmutationstate.md +++ b/docs/framework/angular/reference/functions/injectmutationstate.md @@ -3,6 +3,8 @@ id: injectMutationState title: injectMutationState --- + + # Function: injectMutationState() ```ts @@ -12,6 +14,8 @@ function injectMutationState( ): Signal ``` +Defined in: [inject-mutation-state.ts:60](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L60) + Injects a signal that tracks the state of all mutations. ## Type Parameters @@ -37,7 +41,3 @@ The Angular injector to use. `Signal`\<`TResult`[]\> The signal that tracks the state of all mutations. - -## Defined in - -[inject-mutation-state.ts:64](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L64) diff --git a/docs/framework/angular/reference/functions/injectqueries.md b/docs/framework/angular/reference/functions/injectqueries.md index 326e4faf2c..bc78ac6c4c 100644 --- a/docs/framework/angular/reference/functions/injectqueries.md +++ b/docs/framework/angular/reference/functions/injectqueries.md @@ -3,32 +3,36 @@ id: injectQueries title: injectQueries --- + + # Function: injectQueries() ```ts function injectQueries( - __namedParameters, + root0, injector?, ): Signal ``` +Defined in: [inject-queries.ts:202](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L202) + ## Type Parameters โ€ข **T** _extends_ `any`[] -โ€ข **TCombinedResult** = `T` _extends_ [] ? [] : `T` _extends_ [`Head`] ? [`GetResults`\<`Head`\>] : `T` _extends_ [`Head`, `...Tail[]`] ? [`...Tail[]`] _extends_ [] ? [] : [`...Tail[]`] _extends_ [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] _extends_ [`Head`, `...Tail[]`] ? [`...Tail[]`] _extends_ [] ? [] : [`...Tail[]`] _extends_ [`Head`] ? [`GetResults`\<`Head`\>, `GetResults`\<`Head`\>, `GetResults`\<`Head`\>] : [`...Tail[]`] _extends_ [`Head`, `...Tail[]`] ? [`...(...)[]`] _extends_ [] ? [] : ... _extends_ ... ? ... : ... : [`...(...)[]`] _extends_ ...[] ? ...[] : ...[] : [`...Tail[]`] _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] +โ€ข **TCombinedResult** = `T` _extends_ \[\] ? \[\] : `T` _extends_ \[`Head`\] ? \[`GetResults`\<`Head`\>\] : `T` _extends_ \[`Head`, `...Tail[]`\] ? \[`...Tail[]`\] _extends_ \[\] ? \[\] : \[`...Tail[]`\] _extends_ \[`Head`\] ? \[`GetResults`\<`Head`\>, `GetResults`\<`Head`\>\] : \[`...Tail[]`\] _extends_ \[`Head`, `...Tail[]`\] ? \[`...Tail[]`\] _extends_ \[\] ? \[\] : \[`...Tail[]`\] _extends_ \[`Head`\] ? \[`GetResults`\<`Head`\>, `GetResults`\<`Head`\>, `GetResults`\<`Head`\>\] : \[`...Tail[]`\] _extends_ \[`Head`, `...Tail[]`\] ? \[`...(...)[]`\] _extends_ \[\] ? \[\] : ... _extends_ ... ? ... : ... : \[`...(...)[]`\] _extends_ ...[] ? ...[] : ...[] : \[`...Tail[]`\] _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] : `T` _extends_ `QueryObserverOptionsForCreateQueries`\<`TQueryFnData`, `TError`, `TData`, `any`\>[] ? `QueryObserverResult`\<`unknown` _extends_ `TData` ? `TQueryFnData` : `TData`, `unknown` _extends_ `TError` ? `Error` : `TError`\>[] : `QueryObserverResult`[] ## Parameters -### \_\_namedParameters +### root0 -#### combine +#### combine? (`result`) => `TCombinedResult` #### queries -`Signal`\<[`...(T extends [] ? [] : T extends [Head] ? [GetOptions] : T extends [Head, ...Tail[]] ? [...Tail[]] extends [] ? [] : [...Tail[]] extends [Head] ? [GetOptions, GetOptions] : [...Tail[]] extends [Head, ...Tail[]] ? [...(...)[]] extends [] ? [] : (...) extends (...) ? (...) : (...) : readonly (...)[] extends [...(...)[]] ? [...(...)[]] : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverOptionsForCreateQueries[] : QueryObserverOptionsForCreateQueries[])[]`]\> +`Signal`\<\[`...(T extends [] ? [] : T extends [Head] ? [GetOptions] : T extends [Head, ...Tail[]] ? [...Tail[]] extends [] ? [] : [...Tail[]] extends [Head] ? [GetOptions, GetOptions] : [...Tail[]] extends [Head, ...Tail[]] ? [...(...)[]] extends [] ? [] : (...) extends (...) ? (...) : (...) : readonly (...)[] extends [...(...)[]] ? [...(...)[]] : (...) extends (...) ? (...) : (...) : readonly unknown[] extends T ? T : T extends QueryObserverOptionsForCreateQueries[] ? QueryObserverOptionsForCreateQueries[] : QueryObserverOptionsForCreateQueries[])[]`\]\> ### injector? @@ -37,7 +41,3 @@ function injectQueries( ## Returns `Signal`\<`TCombinedResult`\> - -## Defined in - -[inject-queries.ts:206](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L206) diff --git a/docs/framework/angular/reference/functions/injectquery.md b/docs/framework/angular/reference/functions/injectquery.md index 74a2c1ecf6..289eb21fc0 100644 --- a/docs/framework/angular/reference/functions/injectquery.md +++ b/docs/framework/angular/reference/functions/injectquery.md @@ -3,6 +3,8 @@ id: injectQuery title: injectQuery --- + + # Function: injectQuery() Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. @@ -59,6 +61,8 @@ function injectQuery( ): DefinedCreateQueryResult ``` +Defined in: [inject-query.ts:65](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L65) + Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. **Basic example** @@ -140,10 +144,6 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries https://tanstack.com/query/latest/docs/framework/angular/guides/queries -### Defined in - -[inject-query.ts:66](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L66) - ## Call Signature ```ts @@ -153,6 +153,8 @@ function injectQuery( ): CreateQueryResult ``` +Defined in: [inject-query.ts:116](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L116) + Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. **Basic example** @@ -234,10 +236,6 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries https://tanstack.com/query/latest/docs/framework/angular/guides/queries -### Defined in - -[inject-query.ts:118](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L118) - ## Call Signature ```ts @@ -247,6 +245,8 @@ function injectQuery( ): CreateQueryResult ``` +Defined in: [inject-query.ts:167](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L167) + Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key. **Basic example** @@ -327,7 +327,3 @@ https://tanstack.com/query/latest/docs/framework/angular/guides/queries ### See https://tanstack.com/query/latest/docs/framework/angular/guides/queries - -### Defined in - -[inject-query.ts:170](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L170) diff --git a/docs/framework/angular/reference/functions/injectqueryclient.md b/docs/framework/angular/reference/functions/injectqueryclient.md index fbe1a39573..a5450f4dcf 100644 --- a/docs/framework/angular/reference/functions/injectqueryclient.md +++ b/docs/framework/angular/reference/functions/injectqueryclient.md @@ -3,12 +3,16 @@ id: injectQueryClient title: injectQueryClient --- + + # Function: ~~injectQueryClient()~~ ```ts function injectQueryClient(injectOptions): QueryClient ``` +Defined in: [inject-query-client.ts:18](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query-client.ts#L18) + Injects a `QueryClient` instance and allows passing a custom injector. ## Parameters @@ -35,7 +39,3 @@ If you need to get a `QueryClient` from a custom injector, use `injector.get(Que ```ts const queryClient = injectQueryClient() ``` - -## Defined in - -[inject-query-client.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query-client.ts#L19) diff --git a/docs/framework/angular/reference/functions/mutationoptions.md b/docs/framework/angular/reference/functions/mutationoptions.md index ff7377df57..46e3844f40 100644 --- a/docs/framework/angular/reference/functions/mutationoptions.md +++ b/docs/framework/angular/reference/functions/mutationoptions.md @@ -3,14 +3,58 @@ id: mutationOptions title: mutationOptions --- + + # Function: mutationOptions() +Allows to share and re-use mutation options in a type-safe way. + +**Example** + +```ts +export class QueriesService { + private http = inject(HttpClient) + + updatePost(id: number) { + return mutationOptions({ + mutationFn: (post: Post) => Promise.resolve(post), + mutationKey: ['updatePost', id], + onSuccess: (newPost) => { + // ^? newPost: Post + this.queryClient.setQueryData(['posts', id], newPost) + }, + }) + } +} + +class ComponentOrService { + queries = inject(QueriesService) + id = signal(0) + mutation = injectMutation(() => this.queries.updatePost(this.id())) + + save() { + this.mutation.mutate({ title: 'New Title' }) + } +} +``` + +## Param + +The mutation options. + +## Call Signature + ```ts function mutationOptions( options, -): CreateMutationOptions +): WithRequired< + CreateMutationOptions, + 'mutationKey' +> ``` +Defined in: [mutation-options.ts:38](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/mutation-options.ts#L38) + Allows to share and re-use mutation options in a type-safe way. **Example** @@ -31,14 +75,18 @@ export class QueriesService { } } -queries = inject(QueriesService) -idSignal = new Signal(0) -mutation = injectMutation(() => this.queries.updatePost(this.idSignal())) +class ComponentOrService { + queries = inject(QueriesService) + id = signal(0) + mutation = injectMutation(() => this.queries.updatePost(this.id())) -mutation.mutate({ title: 'New Title' }) + save() { + this.mutation.mutate({ title: 'New Title' }) + } +} ``` -## Type Parameters +### Type Parameters โ€ข **TData** = `unknown` @@ -48,20 +96,96 @@ mutation.mutate({ title: 'New Title' }) โ€ข **TContext** = `unknown` -## Parameters +### Parameters -### options +#### options -`MutationObserverOptions`\<`TData`, `TError`, `TVariables`, `TContext`\> +`WithRequired`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> The mutation options. -## Returns +### Returns + +`WithRequired`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> -[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\> +Mutation options. Mutation options. -## Defined in +### Param + +The mutation options. + +## Call Signature + +```ts +function mutationOptions( + options, +): Omit< + CreateMutationOptions, + 'mutationKey' +> +``` + +Defined in: [mutation-options.ts:52](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/mutation-options.ts#L52) + +Allows to share and re-use mutation options in a type-safe way. -[mutation-options.ts:38](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/mutation-options.ts#L38) +**Example** + +```ts +export class QueriesService { + private http = inject(HttpClient) + + updatePost(id: number) { + return mutationOptions({ + mutationFn: (post: Post) => Promise.resolve(post), + mutationKey: ['updatePost', id], + onSuccess: (newPost) => { + // ^? newPost: Post + this.queryClient.setQueryData(['posts', id], newPost) + }, + }) + } +} + +class ComponentOrService { + queries = inject(QueriesService) + id = signal(0) + mutation = injectMutation(() => this.queries.updatePost(this.id())) + + save() { + this.mutation.mutate({ title: 'New Title' }) + } +} +``` + +### Type Parameters + +โ€ข **TData** = `unknown` + +โ€ข **TError** = `Error` + +โ€ข **TVariables** = `void` + +โ€ข **TContext** = `unknown` + +### Parameters + +#### options + +`Omit`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> + +The mutation options. + +### Returns + +`Omit`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> + +Mutation options. + +Mutation options. + +### Param + +The mutation options. diff --git a/docs/framework/angular/reference/functions/provideangularquery.md b/docs/framework/angular/reference/functions/provideangularquery.md new file mode 100644 index 0000000000..dbd57559fe --- /dev/null +++ b/docs/framework/angular/reference/functions/provideangularquery.md @@ -0,0 +1,40 @@ +--- +id: provideAngularQuery +title: provideAngularQuery +--- + + + +# Function: ~~provideAngularQuery()~~ + +```ts +function provideAngularQuery(queryClient): Provider[] +``` + +Defined in: [providers.ts:124](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L124) + +Sets up providers necessary to enable TanStack Query functionality for Angular applications. + +Allows to configure a `QueryClient`. + +## Parameters + +### queryClient + +`QueryClient` + +A `QueryClient` instance. + +## Returns + +`Provider`[] + +A set of providers to set up TanStack Query. + +## See + +https://tanstack.com/query/v5/docs/framework/angular/quick-start + +## Deprecated + +Use `provideTanStackQuery` instead. diff --git a/docs/framework/angular/reference/functions/provideisrestoring.md b/docs/framework/angular/reference/functions/provideisrestoring.md index a920e0b6a2..ef5610b384 100644 --- a/docs/framework/angular/reference/functions/provideisrestoring.md +++ b/docs/framework/angular/reference/functions/provideisrestoring.md @@ -3,12 +3,16 @@ id: provideIsRestoring title: provideIsRestoring --- + + # Function: provideIsRestoring() ```ts function provideIsRestoring(isRestoring): Provider ``` +Defined in: [inject-is-restoring.ts:43](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L43) + Used by TanStack Query Angular persist client plugin to provide the signal that tracks the restore state ## Parameters @@ -24,7 +28,3 @@ a readonly signal that returns a boolean `Provider` Provider for the `isRestoring` signal - -## Defined in - -[inject-is-restoring.ts:47](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-restoring.ts#L47) diff --git a/docs/framework/angular/reference/functions/providequeryclient.md b/docs/framework/angular/reference/functions/providequeryclient.md index 8c67ee34fa..69dab5d6e3 100644 --- a/docs/framework/angular/reference/functions/providequeryclient.md +++ b/docs/framework/angular/reference/functions/providequeryclient.md @@ -3,12 +3,16 @@ id: provideQueryClient title: provideQueryClient --- + + # Function: provideQueryClient() ```ts function provideQueryClient(queryClient): Provider ``` +Defined in: [providers.ts:14](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L14) + Usually [provideTanStackQuery](../providetanstackquery.md) is used once to set up TanStack Query and the [https://tanstack.com/query/latest/docs/reference/QueryClient\|QueryClient](https://tanstack.com/query/latest/docs/reference/QueryClient|QueryClient) for the entire application. Internally it calls `provideQueryClient`. @@ -28,7 +32,3 @@ A `QueryClient` instance, or an `InjectionToken` which provides a `QueryClient`. `Provider` a provider object that can be used to provide the `QueryClient` instance. - -## Defined in - -[providers.ts:31](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L31) diff --git a/docs/framework/angular/reference/functions/providetanstackquery.md b/docs/framework/angular/reference/functions/providetanstackquery.md index 3c83ce2bb6..b70abdf030 100644 --- a/docs/framework/angular/reference/functions/providetanstackquery.md +++ b/docs/framework/angular/reference/functions/providetanstackquery.md @@ -3,12 +3,16 @@ id: provideTanStackQuery title: provideTanStackQuery --- + + # Function: provideTanStackQuery() ```ts function provideTanStackQuery(queryClient, ...features): Provider[] ``` +Defined in: [providers.ts:105](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L105) + Sets up providers necessary to enable TanStack Query functionality for Angular applications. Allows to configure a `QueryClient` and optional features such as developer tools. @@ -73,6 +77,11 @@ export const MY_QUERY_CLIENT = new InjectionToken('', { providers: [provideTanStackQuery(MY_QUERY_CLIENT)] ``` +Using an InjectionToken for the QueryClient is an advanced optimization which allows TanStack Query to be absent from the main application bundle. +This can be beneficial if you want to include TanStack Query on lazy loaded routes only while still sharing a `QueryClient`. + +Note that this is a small optimization and for most applications it's preferable to provide the `QueryClient` in the main application config. + ## Parameters ### queryClient @@ -97,7 +106,3 @@ A set of providers to set up TanStack Query. - https://tanstack.com/query/v5/docs/framework/angular/quick-start - withDevtools - -## Defined in - -[providers.ts:118](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L118) diff --git a/docs/framework/angular/reference/functions/queryfeature.md b/docs/framework/angular/reference/functions/queryfeature.md index 78d71ca0aa..f749616ba4 100644 --- a/docs/framework/angular/reference/functions/queryfeature.md +++ b/docs/framework/angular/reference/functions/queryfeature.md @@ -3,17 +3,21 @@ id: queryFeature title: queryFeature --- + + # Function: queryFeature() ```ts function queryFeature(kind, providers): QueryFeature ``` +Defined in: [providers.ts:146](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L146) + Helper function to create an object that represents a Query feature. ## Type Parameters -โ€ข **TFeatureKind** _extends_ `"DeveloperTools"` \| `"PersistQueryClient"` +โ€ข **TFeatureKind** _extends_ `"Devtools"` \| `"PersistQueryClient"` ## Parameters @@ -30,7 +34,3 @@ Helper function to create an object that represents a Query feature. [`QueryFeature`](../../interfaces/queryfeature.md)\<`TFeatureKind`\> A Query feature. - -## Defined in - -[providers.ts:156](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L156) diff --git a/docs/framework/angular/reference/functions/queryoptions.md b/docs/framework/angular/reference/functions/queryoptions.md index 27627d7672..d492b5a880 100644 --- a/docs/framework/angular/reference/functions/queryoptions.md +++ b/docs/framework/angular/reference/functions/queryoptions.md @@ -3,6 +3,8 @@ id: queryOptions title: queryOptions --- + + # Function: queryOptions() Allows to share and re-use query options in a type-safe way. @@ -32,9 +34,13 @@ The query options to tag with the type from `queryFn`. ```ts function queryOptions( options, -): DefinedInitialDataOptions & object +): Omit, 'queryFn'> & + object & + object ``` +Defined in: [query-options.ts:76](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L76) + Allows to share and re-use query options in a type-safe way. The `queryKey` will be tagged with the type from `queryFn`. @@ -73,7 +79,7 @@ The query options to tag with the type from `queryFn`. ### Returns -[`DefinedInitialDataOptions`](../../type-aliases/definedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` +`Omit`\<[`CreateQueryOptions`](../../interfaces/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>, `"queryFn"`\> & `object` & `object` The tagged query options. @@ -83,18 +89,21 @@ The tagged query options. The query options to tag with the type from `queryFn`. -### Defined in - -[query-options.ts:78](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L78) - ## Call Signature ```ts function queryOptions( options, -): UnusedSkipTokenOptions & object +): OmitKeyof< + CreateQueryOptions, + 'queryFn' +> & + object & + object ``` +Defined in: [query-options.ts:108](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L108) + Allows to share and re-use query options in a type-safe way. The `queryKey` will be tagged with the type from `queryFn`. @@ -133,7 +142,7 @@ The query options to tag with the type from `queryFn`. ### Returns -[`UnusedSkipTokenOptions`](../../type-aliases/unusedskiptokenoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` +`OmitKeyof`\<[`CreateQueryOptions`](../../interfaces/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\>, `"queryFn"`\> & `object` & `object` The tagged query options. @@ -143,18 +152,16 @@ The tagged query options. The query options to tag with the type from `queryFn`. -### Defined in - -[query-options.ts:111](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L111) - ## Call Signature ```ts function queryOptions( options, -): UndefinedInitialDataOptions & object +): CreateQueryOptions & object & object ``` +Defined in: [query-options.ts:140](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L140) + Allows to share and re-use query options in a type-safe way. The `queryKey` will be tagged with the type from `queryFn`. @@ -193,7 +200,7 @@ The query options to tag with the type from `queryFn`. ### Returns -[`UndefinedInitialDataOptions`](../../type-aliases/undefinedinitialdataoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` +[`CreateQueryOptions`](../../interfaces/createqueryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`\> & `object` & `object` The tagged query options. @@ -202,7 +209,3 @@ The tagged query options. ### Param The query options to tag with the type from `queryFn`. - -### Defined in - -[query-options.ts:144](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L144) diff --git a/docs/framework/angular/reference/functions/withdevtools.md b/docs/framework/angular/reference/functions/withdevtools.md deleted file mode 100644 index 6dfdac2d77..0000000000 --- a/docs/framework/angular/reference/functions/withdevtools.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: withDevtools -title: withDevtools ---- - -# Function: withDevtools() - -```ts -function withDevtools(withDevtoolsFn?): DeveloperToolsFeature -``` - -Enables developer tools. - -**Example** - -```ts -export const appConfig: ApplicationConfig = { - providers: [provideTanStackQuery(new QueryClient(), withDevtools())], -} -``` - -By default the devtools will be loaded when Angular runs in development mode and rendered in ``. - -If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available. - -If you need more control over where devtools are rendered, consider `injectDevtoolsPanel`. This allows rendering devtools inside your own devtools for example. - -## Parameters - -### withDevtoolsFn? - -() => [`DevtoolsOptions`](../../interfaces/devtoolsoptions.md) - -A function that returns `DevtoolsOptions`. - -## Returns - -[`DeveloperToolsFeature`](../../type-aliases/developertoolsfeature.md) - -A set of providers for use with `provideTanStackQuery`. - -## See - -- [provideTanStackQuery](../providetanstackquery.md) -- [DevtoolsOptions](../../interfaces/devtoolsoptions.md) - -## Defined in - -[providers.ts:262](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L262) diff --git a/docs/framework/angular/reference/index.md b/docs/framework/angular/reference/index.md index c8b1690d3d..d9d29d1e6a 100644 --- a/docs/framework/angular/reference/index.md +++ b/docs/framework/angular/reference/index.md @@ -3,6 +3,8 @@ id: '@tanstack/angular-query-experimental' title: '@tanstack/angular-query-experimental' --- + + # @tanstack/angular-query-experimental ## Interfaces @@ -13,7 +15,6 @@ title: '@tanstack/angular-query-experimental' - [CreateInfiniteQueryOptions](../interfaces/createinfinitequeryoptions.md) - [CreateMutationOptions](../interfaces/createmutationoptions.md) - [CreateQueryOptions](../interfaces/createqueryoptions.md) -- [DevtoolsOptions](../interfaces/devtoolsoptions.md) - [InjectInfiniteQueryOptions](../interfaces/injectinfinitequeryoptions.md) - [InjectIsFetchingOptions](../interfaces/injectisfetchingoptions.md) - [InjectIsMutatingOptions](../interfaces/injectismutatingoptions.md) @@ -39,17 +40,12 @@ title: '@tanstack/angular-query-experimental' - [PersistQueryClientFeature](../type-aliases/persistqueryclientfeature.md) - [QueriesOptions](../type-aliases/queriesoptions.md) - [QueriesResults](../type-aliases/queriesresults.md) -- [QueryFeatureKind](../type-aliases/queryfeaturekind.md) - [QueryFeatures](../type-aliases/queryfeatures.md) - [UndefinedInitialDataInfiniteOptions](../type-aliases/undefinedinitialdatainfiniteoptions.md) - [UndefinedInitialDataOptions](../type-aliases/undefinedinitialdataoptions.md) - [UnusedSkipTokenInfiniteOptions](../type-aliases/unusedskiptokeninfiniteoptions.md) - [UnusedSkipTokenOptions](../type-aliases/unusedskiptokenoptions.md) -## Variables - -- [queryFeatures](../variables/queryfeatures.md) - ## Functions - [infiniteQueryOptions](../functions/infinitequeryoptions.md) @@ -61,11 +57,11 @@ title: '@tanstack/angular-query-experimental' - [injectMutationState](../functions/injectmutationstate.md) - [injectQueries](../functions/injectqueries.md) - [injectQuery](../functions/injectquery.md) -- [injectQueryClient](../functions/injectqueryclient.md) +- [~~injectQueryClient~~](../functions/injectqueryclient.md) - [mutationOptions](../functions/mutationoptions.md) +- [~~provideAngularQuery~~](../functions/provideangularquery.md) - [provideIsRestoring](../functions/provideisrestoring.md) - [provideQueryClient](../functions/providequeryclient.md) - [provideTanStackQuery](../functions/providetanstackquery.md) - [queryFeature](../functions/queryfeature.md) - [queryOptions](../functions/queryoptions.md) -- [withDevtools](../functions/withdevtools.md) diff --git a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md index b81171eaf6..8ea0f00f90 100644 --- a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md +++ b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md @@ -3,8 +3,12 @@ id: BaseMutationNarrowing title: BaseMutationNarrowing --- + + # Interface: BaseMutationNarrowing\ +Defined in: [types.ts:183](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L183) + ## Type Parameters โ€ข **TData** = `unknown` @@ -41,9 +45,7 @@ isError: SignalFunction< > ``` -#### Defined in - -[types.ts:242](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L242) +Defined in: [types.ts:206](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L206) --- @@ -71,9 +73,7 @@ isIdle: SignalFunction< > ``` -#### Defined in - -[types.ts:276](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L276) +Defined in: [types.ts:240](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L240) --- @@ -101,9 +101,7 @@ isPending: SignalFunction< > ``` -#### Defined in - -[types.ts:259](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L259) +Defined in: [types.ts:223](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L223) --- @@ -131,6 +129,4 @@ isSuccess: SignalFunction< > ``` -#### Defined in - -[types.ts:225](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L225) +Defined in: [types.ts:189](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L189) diff --git a/docs/framework/angular/reference/interfaces/basequerynarrowing.md b/docs/framework/angular/reference/interfaces/basequerynarrowing.md index bd1d7bee2a..3a8618c7ab 100644 --- a/docs/framework/angular/reference/interfaces/basequerynarrowing.md +++ b/docs/framework/angular/reference/interfaces/basequerynarrowing.md @@ -3,8 +3,12 @@ id: BaseQueryNarrowing title: BaseQueryNarrowing --- + + # Interface: BaseQueryNarrowing\ +Defined in: [types.ts:57](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L57) + ## Type Parameters โ€ข **TData** = `unknown` @@ -19,20 +23,18 @@ title: BaseQueryNarrowing isError: (this) => this is CreateBaseQueryResult>; ``` +Defined in: [types.ts:65](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L65) + #### Parameters ##### this -[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\> +[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`\> #### Returns `this is CreateBaseQueryResult>` -#### Defined in - -[types.ts:76](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L76) - --- ### isPending() @@ -41,20 +43,18 @@ isError: (this) => this is CreateBaseQueryResult this is CreateBaseQueryResult>; ``` +Defined in: [types.ts:72](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L72) + #### Parameters ##### this -[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\> +[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`\> #### Returns `this is CreateBaseQueryResult>` -#### Defined in - -[types.ts:83](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L83) - --- ### isSuccess() @@ -63,16 +63,14 @@ isPending: (this) => this is CreateBaseQueryResult this is CreateBaseQueryResult>; ``` +Defined in: [types.ts:58](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L58) + #### Parameters ##### this -[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`, `QueryObserverResult`\<`TData`, `TError`\>\> +[`CreateBaseQueryResult`](../../type-aliases/createbasequeryresult.md)\<`TData`, `TError`\> #### Returns `this is CreateBaseQueryResult>` - -#### Defined in - -[types.ts:69](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L69) diff --git a/docs/framework/angular/reference/interfaces/createbasequeryoptions.md b/docs/framework/angular/reference/interfaces/createbasequeryoptions.md index c371959980..e0d731d5b3 100644 --- a/docs/framework/angular/reference/interfaces/createbasequeryoptions.md +++ b/docs/framework/angular/reference/interfaces/createbasequeryoptions.md @@ -3,8 +3,12 @@ id: CreateBaseQueryOptions title: CreateBaseQueryOptions --- + + # Interface: CreateBaseQueryOptions\ +Defined in: [types.ts:21](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L21) + ## Extends - `QueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`\> diff --git a/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md b/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md index dade8e1e30..53ad6617ca 100644 --- a/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md +++ b/docs/framework/angular/reference/interfaces/createinfinitequeryoptions.md @@ -3,11 +3,15 @@ id: CreateInfiniteQueryOptions title: CreateInfiniteQueryOptions --- -# Interface: CreateInfiniteQueryOptions\ + + +# Interface: CreateInfiniteQueryOptions\ + +Defined in: [types.ts:81](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L81) ## Extends -- `OmitKeyof`\<`InfiniteQueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryData`, `TQueryKey`, `TPageParam`\>, `"suspense"`\> +- `OmitKeyof`\<`InfiniteQueryObserverOptions`\<`TQueryFnData`, `TError`, `TData`, `TQueryKey`, `TPageParam`\>, `"suspense"`\> ## Type Parameters @@ -17,8 +21,6 @@ title: CreateInfiniteQueryOptions โ€ข **TData** = `TQueryFnData` -โ€ข **TQueryData** = `TQueryFnData` - โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` diff --git a/docs/framework/angular/reference/interfaces/createmutationoptions.md b/docs/framework/angular/reference/interfaces/createmutationoptions.md index ffca256828..ebc47be190 100644 --- a/docs/framework/angular/reference/interfaces/createmutationoptions.md +++ b/docs/framework/angular/reference/interfaces/createmutationoptions.md @@ -3,8 +3,12 @@ id: CreateMutationOptions title: CreateMutationOptions --- + + # Interface: CreateMutationOptions\ +Defined in: [types.ts:132](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L132) + ## Extends - `OmitKeyof`\<`MutationObserverOptions`\<`TData`, `TError`, `TVariables`, `TContext`\>, `"_defaulted"`\> diff --git a/docs/framework/angular/reference/interfaces/createqueryoptions.md b/docs/framework/angular/reference/interfaces/createqueryoptions.md index 372319f6d4..61baca7951 100644 --- a/docs/framework/angular/reference/interfaces/createqueryoptions.md +++ b/docs/framework/angular/reference/interfaces/createqueryoptions.md @@ -3,8 +3,12 @@ id: CreateQueryOptions title: CreateQueryOptions --- + + # Interface: CreateQueryOptions\ +Defined in: [types.ts:35](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L35) + ## Extends - `OmitKeyof`\<[`CreateBaseQueryOptions`](../createbasequeryoptions.md)\<`TQueryFnData`, `TError`, `TData`, `TQueryFnData`, `TQueryKey`\>, `"suspense"`\> diff --git a/docs/framework/angular/reference/interfaces/devtoolsoptions.md b/docs/framework/angular/reference/interfaces/devtoolsoptions.md deleted file mode 100644 index 0eccac40a8..0000000000 --- a/docs/framework/angular/reference/interfaces/devtoolsoptions.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -id: DevtoolsOptions -title: DevtoolsOptions ---- - -# Interface: DevtoolsOptions - -Options for configuring the TanStack Query devtools. - -## Properties - -### buttonPosition? - -```ts -optional buttonPosition: DevtoolsButtonPosition; -``` - -The position of the TanStack logo to open and close the devtools panel. -`top-left` | `top-right` | `bottom-left` | `bottom-right` | `relative` -Defaults to `bottom-right`. - -#### Defined in - -[providers.ts:192](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L192) - ---- - -### client? - -```ts -optional client: QueryClient; -``` - -Custom instance of QueryClient - -#### Defined in - -[providers.ts:202](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L202) - ---- - -### errorTypes? - -```ts -optional errorTypes: DevtoolsErrorType[]; -``` - -Use this so you can define custom errors that can be shown in the devtools. - -#### Defined in - -[providers.ts:206](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L206) - ---- - -### initialIsOpen? - -```ts -optional initialIsOpen: boolean; -``` - -Set this true if you want the devtools to default to being open - -#### Defined in - -[providers.ts:186](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L186) - ---- - -### loadDevtools? - -```ts -optional loadDevtools: boolean | "auto"; -``` - -Whether the developer tools should load. - -- `auto`- (Default) Lazily loads devtools when in development mode. Skips loading in production mode. -- `true`- Always load the devtools, regardless of the environment. -- `false`- Never load the devtools, regardless of the environment. - -You can use `true` and `false` to override loading developer tools from an environment file. -For example, a test environment might run in production mode but you may want to load developer tools. - -Additionally, you can use a signal in the callback to dynamically load the devtools based on a condition. For example, -a signal created from a RxJS observable that listens for a keyboard shortcut. - -**Example** - -```ts -withDevtools(() => ({ - initialIsOpen: true, - loadDevtools: inject(ExampleService).loadDevtools(), -})) -``` - -#### Defined in - -[providers.ts:236](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L236) - ---- - -### position? - -```ts -optional position: DevtoolsPosition; -``` - -The position of the TanStack Query devtools panel. -`top` | `bottom` | `left` | `right` -Defaults to `bottom`. - -#### Defined in - -[providers.ts:198](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L198) - ---- - -### shadowDOMTarget? - -```ts -optional shadowDOMTarget: ShadowRoot; -``` - -Use this so you can attach the devtool's styles to a specific element in the DOM. - -#### Defined in - -[providers.ts:214](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L214) - ---- - -### styleNonce? - -```ts -optional styleNonce: string; -``` - -Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. - -#### Defined in - -[providers.ts:210](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L210) diff --git a/docs/framework/angular/reference/interfaces/injectinfinitequeryoptions.md b/docs/framework/angular/reference/interfaces/injectinfinitequeryoptions.md index a1783d1f97..954c705fde 100644 --- a/docs/framework/angular/reference/interfaces/injectinfinitequeryoptions.md +++ b/docs/framework/angular/reference/interfaces/injectinfinitequeryoptions.md @@ -3,8 +3,12 @@ id: InjectInfiniteQueryOptions title: InjectInfiniteQueryOptions --- + + # Interface: InjectInfiniteQueryOptions +Defined in: [inject-infinite-query.ts:25](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L25) + ## Properties ### injector? @@ -13,10 +17,8 @@ title: InjectInfiniteQueryOptions optional injector: Injector; ``` +Defined in: [inject-infinite-query.ts:31](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L31) + The `Injector` in which to create the infinite query. If this is not provided, the current injection context will be used instead (via `inject`). - -#### Defined in - -[inject-infinite-query.ts:31](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-infinite-query.ts#L31) diff --git a/docs/framework/angular/reference/interfaces/injectisfetchingoptions.md b/docs/framework/angular/reference/interfaces/injectisfetchingoptions.md index 55184b8053..d5de1f4ae3 100644 --- a/docs/framework/angular/reference/interfaces/injectisfetchingoptions.md +++ b/docs/framework/angular/reference/interfaces/injectisfetchingoptions.md @@ -3,8 +3,12 @@ id: InjectIsFetchingOptions title: InjectIsFetchingOptions --- + + # Interface: InjectIsFetchingOptions +Defined in: [inject-is-fetching.ts:13](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L13) + ## Properties ### injector? @@ -13,10 +17,8 @@ title: InjectIsFetchingOptions optional injector: Injector; ``` +Defined in: [inject-is-fetching.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L19) + The `Injector` in which to create the isFetching signal. If this is not provided, the current injection context will be used instead (via `inject`). - -#### Defined in - -[inject-is-fetching.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-fetching.ts#L19) diff --git a/docs/framework/angular/reference/interfaces/injectismutatingoptions.md b/docs/framework/angular/reference/interfaces/injectismutatingoptions.md index daf4f69b66..393dfd44a0 100644 --- a/docs/framework/angular/reference/interfaces/injectismutatingoptions.md +++ b/docs/framework/angular/reference/interfaces/injectismutatingoptions.md @@ -3,8 +3,12 @@ id: InjectIsMutatingOptions title: InjectIsMutatingOptions --- + + # Interface: InjectIsMutatingOptions +Defined in: [inject-is-mutating.ts:13](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L13) + ## Properties ### injector? @@ -13,10 +17,8 @@ title: InjectIsMutatingOptions optional injector: Injector; ``` +Defined in: [inject-is-mutating.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L19) + The `Injector` in which to create the isMutating signal. If this is not provided, the current injection context will be used instead (via `inject`). - -#### Defined in - -[inject-is-mutating.ts:19](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-is-mutating.ts#L19) diff --git a/docs/framework/angular/reference/interfaces/injectmutationoptions.md b/docs/framework/angular/reference/interfaces/injectmutationoptions.md index 88dc930a57..0de78ed031 100644 --- a/docs/framework/angular/reference/interfaces/injectmutationoptions.md +++ b/docs/framework/angular/reference/interfaces/injectmutationoptions.md @@ -3,8 +3,12 @@ id: InjectMutationOptions title: InjectMutationOptions --- + + # Interface: InjectMutationOptions +Defined in: [inject-mutation.ts:27](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L27) + ## Properties ### injector? @@ -13,10 +17,8 @@ title: InjectMutationOptions optional injector: Injector; ``` +Defined in: [inject-mutation.ts:33](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L33) + The `Injector` in which to create the mutation. If this is not provided, the current injection context will be used instead (via `inject`). - -#### Defined in - -[inject-mutation.ts:30](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L30) diff --git a/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md b/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md index 253f8cea32..022a878941 100644 --- a/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md +++ b/docs/framework/angular/reference/interfaces/injectmutationstateoptions.md @@ -3,8 +3,12 @@ id: InjectMutationStateOptions title: InjectMutationStateOptions --- + + # Interface: InjectMutationStateOptions +Defined in: [inject-mutation-state.ts:45](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L45) + ## Properties ### injector? @@ -13,10 +17,8 @@ title: InjectMutationStateOptions optional injector: Injector; ``` +Defined in: [inject-mutation-state.ts:51](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L51) + The `Injector` in which to create the mutation state signal. If this is not provided, the current injection context will be used instead (via `inject`). - -#### Defined in - -[inject-mutation-state.ts:54](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation-state.ts#L54) diff --git a/docs/framework/angular/reference/interfaces/injectqueryoptions.md b/docs/framework/angular/reference/interfaces/injectqueryoptions.md index 202354d583..680e49ed3f 100644 --- a/docs/framework/angular/reference/interfaces/injectqueryoptions.md +++ b/docs/framework/angular/reference/interfaces/injectqueryoptions.md @@ -3,8 +3,12 @@ id: InjectQueryOptions title: InjectQueryOptions --- + + # Interface: InjectQueryOptions +Defined in: [inject-query.ts:20](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L20) + ## Properties ### injector? @@ -13,10 +17,8 @@ title: InjectQueryOptions optional injector: Injector; ``` +Defined in: [inject-query.ts:26](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L26) + The `Injector` in which to create the query. If this is not provided, the current injection context will be used instead (via `inject`). - -#### Defined in - -[inject-query.ts:26](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-query.ts#L26) diff --git a/docs/framework/angular/reference/interfaces/queryfeature.md b/docs/framework/angular/reference/interfaces/queryfeature.md index c0c3e15028..70871d1f80 100644 --- a/docs/framework/angular/reference/interfaces/queryfeature.md +++ b/docs/framework/angular/reference/interfaces/queryfeature.md @@ -3,13 +3,17 @@ id: QueryFeature title: QueryFeature --- + + # Interface: QueryFeature\ +Defined in: [providers.ts:135](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L135) + Helper type to represent a Query feature. ## Type Parameters -โ€ข **TFeatureKind** _extends_ [`QueryFeatureKind`](../../type-aliases/queryfeaturekind.md) +โ€ข **TFeatureKind** _extends_ `QueryFeatureKind` ## Properties @@ -19,9 +23,7 @@ Helper type to represent a Query feature. ษตkind: TFeatureKind ``` -#### Defined in - -[providers.ts:146](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L146) +Defined in: [providers.ts:136](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L136) --- @@ -31,6 +33,4 @@ Helper type to represent a Query feature. ษตproviders: Provider[]; ``` -#### Defined in - -[providers.ts:147](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L147) +Defined in: [providers.ts:137](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L137) diff --git a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md index 5c05660689..39441b5f12 100644 --- a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md +++ b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md @@ -3,6 +3,8 @@ id: CreateBaseMutationResult title: CreateBaseMutationResult --- + + # Type Alias: CreateBaseMutationResult\ ```ts @@ -15,6 +17,8 @@ type CreateBaseMutationResult = Override< object ``` +Defined in: [types.ts:158](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L158) + ## Type declaration ### mutateAsync @@ -32,7 +36,3 @@ mutateAsync: CreateMutateAsyncFunction โ€ข **TVariables** = `unknown` โ€ข **TContext** = `unknown` - -## Defined in - -[types.ts:188](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L188) diff --git a/docs/framework/angular/reference/type-aliases/createbasequeryresult.md b/docs/framework/angular/reference/type-aliases/createbasequeryresult.md index f8b5b1d147..1dd27ac995 100644 --- a/docs/framework/angular/reference/type-aliases/createbasequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/createbasequeryresult.md @@ -3,6 +3,8 @@ id: CreateBaseQueryResult title: CreateBaseQueryResult --- + + # Type Alias: CreateBaseQueryResult\ ```ts @@ -13,6 +15,8 @@ type CreateBaseQueryResult = BaseQueryNarrowing< MapToSignals> ``` +Defined in: [types.ts:98](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L98) + ## Type Parameters โ€ข **TData** = `unknown` @@ -20,7 +24,3 @@ type CreateBaseQueryResult = BaseQueryNarrowing< โ€ข **TError** = `DefaultError` โ€ข **TState** = `QueryObserverResult`\<`TData`, `TError`\> - -## Defined in - -[types.ts:117](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L117) diff --git a/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md b/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md index 4f38c46f78..a2db0e64fd 100644 --- a/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/createinfinitequeryresult.md @@ -3,6 +3,8 @@ id: CreateInfiniteQueryResult title: CreateInfiniteQueryResult --- + + # Type Alias: CreateInfiniteQueryResult\ ```ts @@ -13,12 +15,10 @@ type CreateInfiniteQueryResult = BaseQueryNarrowing< MapToSignals> ``` +Defined in: [types.ts:117](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L117) + ## Type Parameters โ€ข **TData** = `unknown` โ€ข **TError** = `DefaultError` - -## Defined in - -[types.ts:145](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L145) diff --git a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md index 789f636025..abe1503a1d 100644 --- a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md +++ b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md @@ -3,6 +3,8 @@ id: CreateMutateAsyncFunction title: CreateMutateAsyncFunction --- + + # Type Alias: CreateMutateAsyncFunction\ ```ts @@ -10,6 +12,8 @@ type CreateMutateAsyncFunction = MutateFunction ``` +Defined in: [types.ts:151](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L151) + ## Type Parameters โ€ข **TData** = `unknown` @@ -19,7 +23,3 @@ type CreateMutateAsyncFunction = โ€ข **TVariables** = `void` โ€ข **TContext** = `unknown` - -## Defined in - -[types.ts:178](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L178) diff --git a/docs/framework/angular/reference/type-aliases/createmutatefunction.md b/docs/framework/angular/reference/type-aliases/createmutatefunction.md index 006ab2ae9a..dba0f7aa6e 100644 --- a/docs/framework/angular/reference/type-aliases/createmutatefunction.md +++ b/docs/framework/angular/reference/type-aliases/createmutatefunction.md @@ -3,6 +3,8 @@ id: CreateMutateFunction title: CreateMutateFunction --- + + # Type Alias: CreateMutateFunction()\ ```ts @@ -11,6 +13,8 @@ type CreateMutateFunction = ( ) => void ``` +Defined in: [types.ts:142](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L142) + ## Type Parameters โ€ข **TData** = `unknown` @@ -30,7 +34,3 @@ type CreateMutateFunction = ( ## Returns `void` - -## Defined in - -[types.ts:166](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L166) diff --git a/docs/framework/angular/reference/type-aliases/createmutationresult.md b/docs/framework/angular/reference/type-aliases/createmutationresult.md index 3306bbe436..0800010d05 100644 --- a/docs/framework/angular/reference/type-aliases/createmutationresult.md +++ b/docs/framework/angular/reference/type-aliases/createmutationresult.md @@ -3,6 +3,8 @@ id: CreateMutationResult title: CreateMutationResult --- + + # Type Alias: CreateMutationResult\ ```ts @@ -11,6 +13,8 @@ type CreateMutationResult = MapToSignals> ``` +Defined in: [types.ts:259](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L259) + ## Type Parameters โ€ข **TData** = `unknown` @@ -22,7 +26,3 @@ type CreateMutationResult = โ€ข **TContext** = `unknown` โ€ข **TState** = `CreateStatusBasedMutationResult`\<[`CreateBaseMutationResult`](../createbasemutationresult.md)\[`"status"`\], `TData`, `TError`, `TVariables`, `TContext`\> - -## Defined in - -[types.ts:298](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L298) diff --git a/docs/framework/angular/reference/type-aliases/createqueryresult.md b/docs/framework/angular/reference/type-aliases/createqueryresult.md index 78ada66abc..16c95c6798 100644 --- a/docs/framework/angular/reference/type-aliases/createqueryresult.md +++ b/docs/framework/angular/reference/type-aliases/createqueryresult.md @@ -3,18 +3,18 @@ id: CreateQueryResult title: CreateQueryResult --- + + # Type Alias: CreateQueryResult\ ```ts type CreateQueryResult = CreateBaseQueryResult ``` +Defined in: [types.ts:105](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L105) + ## Type Parameters โ€ข **TData** = `unknown` โ€ข **TError** = `DefaultError` - -## Defined in - -[types.ts:127](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L127) diff --git a/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md b/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md index 77ae3e35ec..3585ab5bf1 100644 --- a/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/definedcreateinfinitequeryresult.md @@ -3,6 +3,8 @@ id: DefinedCreateInfiniteQueryResult title: DefinedCreateInfiniteQueryResult --- + + # Type Alias: DefinedCreateInfiniteQueryResult\ ```ts @@ -13,6 +15,8 @@ type DefinedCreateInfiniteQueryResult< > = MapToSignals ``` +Defined in: [types.ts:123](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L123) + ## Type Parameters โ€ข **TData** = `unknown` @@ -20,7 +24,3 @@ type DefinedCreateInfiniteQueryResult< โ€ข **TError** = `DefaultError` โ€ข **TDefinedInfiniteQueryObserver** = `DefinedInfiniteQueryObserverResult`\<`TData`, `TError`\> - -## Defined in - -[types.ts:154](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L154) diff --git a/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md b/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md index abf57a2b9d..b3588c97c7 100644 --- a/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md +++ b/docs/framework/angular/reference/type-aliases/definedcreatequeryresult.md @@ -3,6 +3,8 @@ id: DefinedCreateQueryResult title: DefinedCreateQueryResult --- + + # Type Alias: DefinedCreateQueryResult\ ```ts @@ -13,6 +15,8 @@ type DefinedCreateQueryResult = BaseQueryNarrowing< MapToSignals> ``` +Defined in: [types.ts:110](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L110) + ## Type Parameters โ€ข **TData** = `unknown` @@ -20,7 +24,3 @@ type DefinedCreateQueryResult = BaseQueryNarrowing< โ€ข **TError** = `DefaultError` โ€ข **TState** = `DefinedQueryObserverResult`\<`TData`, `TError`\> - -## Defined in - -[types.ts:135](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L135) diff --git a/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md b/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md index 83ec9cc092..16025e3fc7 100644 --- a/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md +++ b/docs/framework/angular/reference/type-aliases/definedinitialdatainfiniteoptions.md @@ -3,6 +3,8 @@ id: DefinedInitialDataInfiniteOptions title: DefinedInitialDataInfiniteOptions --- + + # Type Alias: DefinedInitialDataInfiniteOptions\ ```ts @@ -16,13 +18,14 @@ type DefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & object ``` +Defined in: [infinite-query-options.ts:62](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L62) + ## Type declaration ### initialData @@ -45,7 +48,3 @@ initialData: โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` - -## Defined in - -[infinite-query-options.ts:66](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L66) diff --git a/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md b/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md index 742efded7e..a54c79c787 100644 --- a/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md +++ b/docs/framework/angular/reference/type-aliases/definedinitialdataoptions.md @@ -3,6 +3,8 @@ id: DefinedInitialDataOptions title: DefinedInitialDataOptions --- + + # Type Alias: DefinedInitialDataOptions\ ```ts @@ -13,6 +15,8 @@ type DefinedInitialDataOptions = Omit< object ``` +Defined in: [query-options.ts:40](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L40) + ## Type declaration ### initialData @@ -38,7 +42,3 @@ optional queryFn: QueryFunction; โ€ข **TData** = `TQueryFnData` โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` - -## Defined in - -[query-options.ts:41](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L41) diff --git a/docs/framework/angular/reference/type-aliases/developertoolsfeature.md b/docs/framework/angular/reference/type-aliases/developertoolsfeature.md index ad4c952ff7..b1278a3d2e 100644 --- a/docs/framework/angular/reference/type-aliases/developertoolsfeature.md +++ b/docs/framework/angular/reference/type-aliases/developertoolsfeature.md @@ -3,19 +3,19 @@ id: DeveloperToolsFeature title: DeveloperToolsFeature --- + + # Type Alias: DeveloperToolsFeature ```ts -type DeveloperToolsFeature = QueryFeature<'DeveloperTools'> +type DeveloperToolsFeature = QueryFeature<'Devtools'> ``` +Defined in: [providers.ts:158](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L158) + A type alias that represents a feature which enables developer tools. The type is used to describe the return value of the `withDevtools` function. ## See -[withDevtools](../../functions/withdevtools.md) - -## Defined in - -[providers.ts:169](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L169) +withDevtools diff --git a/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md b/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md index 18682f7f48..2e923a3c6a 100644 --- a/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md +++ b/docs/framework/angular/reference/type-aliases/persistqueryclientfeature.md @@ -3,15 +3,15 @@ id: PersistQueryClientFeature title: PersistQueryClientFeature --- + + # Type Alias: PersistQueryClientFeature ```ts type PersistQueryClientFeature = QueryFeature<'PersistQueryClient'> ``` +Defined in: [providers.ts:164](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L164) + A type alias that represents a feature which enables persistence. The type is used to describe the return value of the `withPersistQueryClient` function. - -## Defined in - -[providers.ts:176](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L176) diff --git a/docs/framework/angular/reference/type-aliases/queriesoptions.md b/docs/framework/angular/reference/type-aliases/queriesoptions.md index a9b1e1645c..88e9502ce3 100644 --- a/docs/framework/angular/reference/type-aliases/queriesoptions.md +++ b/docs/framework/angular/reference/type-aliases/queriesoptions.md @@ -3,6 +3,8 @@ id: QueriesOptions title: QueriesOptions --- + + # Type Alias: QueriesOptions\ ```ts @@ -35,16 +37,14 @@ type QueriesOptions = TDepth['length'] extends MAXIMUM_DEPTH : QueryObserverOptionsForCreateQueries[] ``` +Defined in: [inject-queries.ts:120](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L120) + QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param ## Type Parameters โ€ข **T** _extends_ `any`[] -โ€ข **TResult** _extends_ `any`[] = [] - -โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] - -## Defined in +โ€ข **TResult** _extends_ `any`[] = \[\] -[inject-queries.ts:121](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L121) +โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = \[\] diff --git a/docs/framework/angular/reference/type-aliases/queriesresults.md b/docs/framework/angular/reference/type-aliases/queriesresults.md index 687bbb8d2b..b977f67923 100644 --- a/docs/framework/angular/reference/type-aliases/queriesresults.md +++ b/docs/framework/angular/reference/type-aliases/queriesresults.md @@ -3,6 +3,8 @@ id: QueriesResults title: QueriesResults --- + + # Type Alias: QueriesResults\ ```ts @@ -31,16 +33,14 @@ type QueriesResults = TDepth['length'] extends MAXIMUM_DEPTH : QueryObserverResult[] ``` +Defined in: [inject-queries.ts:162](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L162) + QueriesResults reducer recursively maps type param to results ## Type Parameters โ€ข **T** _extends_ `any`[] -โ€ข **TResult** _extends_ `any`[] = [] - -โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = [] - -## Defined in +โ€ข **TResult** _extends_ `any`[] = \[\] -[inject-queries.ts:164](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-queries.ts#L164) +โ€ข **TDepth** _extends_ `ReadonlyArray`\<`number`\> = \[\] diff --git a/docs/framework/angular/reference/type-aliases/queryfeaturekind.md b/docs/framework/angular/reference/type-aliases/queryfeaturekind.md deleted file mode 100644 index 6b45969712..0000000000 --- a/docs/framework/angular/reference/type-aliases/queryfeaturekind.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: QueryFeatureKind -title: QueryFeatureKind ---- - -# Type Alias: QueryFeatureKind - -```ts -type QueryFeatureKind = (typeof queryFeatures)[number] -``` - -## Defined in - -[providers.ts:369](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L369) diff --git a/docs/framework/angular/reference/type-aliases/queryfeatures.md b/docs/framework/angular/reference/type-aliases/queryfeatures.md index cb6a2eb82d..8167e22cf3 100644 --- a/docs/framework/angular/reference/type-aliases/queryfeatures.md +++ b/docs/framework/angular/reference/type-aliases/queryfeatures.md @@ -3,12 +3,16 @@ id: QueryFeatures title: QueryFeatures --- + + # Type Alias: QueryFeatures ```ts type QueryFeatures = DeveloperToolsFeature | PersistQueryClientFeature ``` +Defined in: [providers.ts:173](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L173) + A type alias that represents all Query features available for use with `provideTanStackQuery`. Features can be enabled by adding special functions to the `provideTanStackQuery` call. See documentation for each symbol to find corresponding function name. See also `provideTanStackQuery` @@ -17,7 +21,3 @@ documentation on how to use those functions. ## See [provideTanStackQuery](../../functions/providetanstackquery.md) - -## Defined in - -[providers.ts:365](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/providers.ts#L365) diff --git a/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md b/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md index 88c03a01ff..0d33355981 100644 --- a/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md +++ b/docs/framework/angular/reference/type-aliases/undefinedinitialdatainfiniteoptions.md @@ -3,6 +3,8 @@ id: UndefinedInitialDataInfiniteOptions title: UndefinedInitialDataInfiniteOptions --- + + # Type Alias: UndefinedInitialDataInfiniteOptions\ ```ts @@ -16,13 +18,14 @@ type UndefinedInitialDataInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam > & object ``` +Defined in: [infinite-query-options.ts:13](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L13) + ## Type declaration ### initialData? @@ -44,7 +47,3 @@ optional initialData: โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` โ€ข **TPageParam** = `unknown` - -## Defined in - -[infinite-query-options.ts:12](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L12) diff --git a/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md b/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md index ec360cc9bd..3f5a06db66 100644 --- a/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md +++ b/docs/framework/angular/reference/type-aliases/undefinedinitialdataoptions.md @@ -3,6 +3,8 @@ id: UndefinedInitialDataOptions title: UndefinedInitialDataOptions --- + + # Type Alias: UndefinedInitialDataOptions\ ```ts @@ -10,6 +12,8 @@ type UndefinedInitialDataOptions = CreateQueryOptions & object ``` +Defined in: [query-options.ts:13](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L13) + ## Type declaration ### initialData? @@ -29,7 +33,3 @@ optional initialData: โ€ข **TData** = `TQueryFnData` โ€ข **TQueryKey** _extends_ `QueryKey` = `QueryKey` - -## Defined in - -[query-options.ts:12](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L12) diff --git a/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md b/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md index c03412d5cb..9634febe87 100644 --- a/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md +++ b/docs/framework/angular/reference/type-aliases/unusedskiptokeninfiniteoptions.md @@ -3,6 +3,8 @@ id: UnusedSkipTokenInfiniteOptions title: UnusedSkipTokenInfiniteOptions --- + + # Type Alias: UnusedSkipTokenInfiniteOptions\ ```ts @@ -17,7 +19,6 @@ type UnusedSkipTokenInfiniteOptions< TQueryFnData, TError, TData, - TQueryFnData, TQueryKey, TPageParam >, @@ -26,12 +27,14 @@ type UnusedSkipTokenInfiniteOptions< object ``` +Defined in: [infinite-query-options.ts:34](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/infinite-query-options.ts#L34) + ## Type declaration ### queryFn? ```ts -optional queryFn: Exclude["queryFn"], SkipToken | undefined>; +optional queryFn: Exclude["queryFn"], SkipToken | undefined>; ``` ## Type Parameters @@ -45,7 +48,3 @@ optional queryFn: Exclude + # Type Alias: UnusedSkipTokenOptions\ ```ts @@ -13,6 +15,8 @@ type UnusedSkipTokenOptions = OmitKeyof< object ``` +Defined in: [query-options.ts:25](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/query-options.ts#L25) + ## Type declaration ### queryFn? @@ -30,7 +34,3 @@ optional queryFn: Exclude injectDevtoolsPanel(this.devToolsOptions, { injector: this.injector, diff --git a/examples/angular/infinite-query-with-max-pages/src/app/app.config.ts b/examples/angular/infinite-query-with-max-pages/src/app/app.config.ts index bd9b7a03d1..06854c4a7d 100644 --- a/examples/angular/infinite-query-with-max-pages/src/app/app.config.ts +++ b/examples/angular/infinite-query-with-max-pages/src/app/app.config.ts @@ -6,8 +6,8 @@ import { import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' import { projectsMockInterceptor } from './api/projects-mock.interceptor' import type { ApplicationConfig } from '@angular/core' diff --git a/examples/angular/optimistic-updates/src/app/app.config.ts b/examples/angular/optimistic-updates/src/app/app.config.ts index 65a84a0c25..b9b2b6c36f 100644 --- a/examples/angular/optimistic-updates/src/app/app.config.ts +++ b/examples/angular/optimistic-updates/src/app/app.config.ts @@ -6,8 +6,8 @@ import { import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' import { mockInterceptor } from './interceptor/mock-api.interceptor' import type { ApplicationConfig } from '@angular/core' diff --git a/examples/angular/pagination/src/app/app.config.ts b/examples/angular/pagination/src/app/app.config.ts index 919a81f92c..dc3189ba84 100644 --- a/examples/angular/pagination/src/app/app.config.ts +++ b/examples/angular/pagination/src/app/app.config.ts @@ -6,8 +6,8 @@ import { import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' import { projectsMockInterceptor } from './api/projects-mock.interceptor' import type { ApplicationConfig } from '@angular/core' diff --git a/examples/angular/query-options-from-a-service/src/app/app.config.ts b/examples/angular/query-options-from-a-service/src/app/app.config.ts index 7dd1d37236..dd6675f997 100644 --- a/examples/angular/query-options-from-a-service/src/app/app.config.ts +++ b/examples/angular/query-options-from-a-service/src/app/app.config.ts @@ -3,9 +3,9 @@ import { provideRouter, withComponentInputBinding } from '@angular/router' import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' import { routes } from './app.routes' import type { ApplicationConfig } from '@angular/core' diff --git a/examples/angular/router/src/app/app.config.ts b/examples/angular/router/src/app/app.config.ts index de3234392a..3fbec800b1 100644 --- a/examples/angular/router/src/app/app.config.ts +++ b/examples/angular/router/src/app/app.config.ts @@ -3,9 +3,9 @@ import { provideRouter, withComponentInputBinding } from '@angular/router' import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' import { routes } from './app.routes' import type { ApplicationConfig } from '@angular/core' diff --git a/examples/angular/rxjs/src/app/app.config.ts b/examples/angular/rxjs/src/app/app.config.ts index 36f8212a03..27eb15a53b 100644 --- a/examples/angular/rxjs/src/app/app.config.ts +++ b/examples/angular/rxjs/src/app/app.config.ts @@ -6,8 +6,8 @@ import { import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' import { autocompleteMockInterceptor } from './api/autocomplete-mock.interceptor' import type { ApplicationConfig } from '@angular/core' diff --git a/examples/angular/simple/src/app/app.config.ts b/examples/angular/simple/src/app/app.config.ts index c4b9ca045e..9c7eda2597 100644 --- a/examples/angular/simple/src/app/app.config.ts +++ b/examples/angular/simple/src/app/app.config.ts @@ -2,8 +2,8 @@ import { provideHttpClient, withFetch } from '@angular/common/http' import { QueryClient, provideTanStackQuery, - withDevtools, } from '@tanstack/angular-query-experimental' +import { withDevtools } from '@tanstack/angular-query-experimental/devtools' import type { ApplicationConfig } from '@angular/core' export const appConfig: ApplicationConfig = { diff --git a/knip.json b/knip.json index bf142253e8..963a8a723d 100644 --- a/knip.json +++ b/knip.json @@ -25,6 +25,12 @@ "packages/vue-query": { "ignore": ["**/__mocks__/**"], "ignoreDependencies": ["vue2", "vue2.7"] + }, + "packages/angular-query-experimental": { + "entry": [ + "src/devtools/production/index.ts", + "src/devtools-panel/production/index.ts" + ] } } } diff --git a/package.json b/package.json index acce0acc68..de25e5c151 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,6 @@ }, "pnpm": { "overrides": { - "@tanstack/angular-query-devtools-experimental": "workspace:*", "@tanstack/angular-query-experimental": "workspace:*", "@tanstack/eslint-plugin-query": "workspace:*", "@tanstack/query-async-storage-persister": "workspace:*", diff --git a/packages/angular-query-devtools-experimental/.attw.json b/packages/angular-query-devtools-experimental/.attw.json deleted file mode 100644 index 864f618c22..0000000000 --- a/packages/angular-query-devtools-experimental/.attw.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ignoreRules": [ - "cjs-resolves-to-esm", - "internal-resolution-error", - "no-resolution" - ] -} diff --git a/packages/angular-query-devtools-experimental/eslint.config.js b/packages/angular-query-devtools-experimental/eslint.config.js deleted file mode 100644 index 131737bfa0..0000000000 --- a/packages/angular-query-devtools-experimental/eslint.config.js +++ /dev/null @@ -1,17 +0,0 @@ -// @ts-check - -import pluginJsdoc from 'eslint-plugin-jsdoc' -import rootConfig from './root.eslint.config.js' - -export default [ - ...rootConfig, - pluginJsdoc.configs['flat/recommended-typescript'], - { - rules: { - 'jsdoc/require-hyphen-before-param-description': 1, - 'jsdoc/sort-tags': 1, - 'jsdoc/require-throws': 1, - 'jsdoc/check-tag-names': ['warn'], - }, - }, -] diff --git a/packages/angular-query-devtools-experimental/package.json b/packages/angular-query-devtools-experimental/package.json deleted file mode 100644 index 55a0784528..0000000000 --- a/packages/angular-query-devtools-experimental/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "@tanstack/angular-query-devtools-experimental", - "version": "5.87.5", - "description": "Developer tools to interact with and visualize the TanStack/angular-query cache", - "author": "Arnoud de Vries", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/TanStack/query.git", - "directory": "packages/angular-query-devtools-experimental" - }, - "homepage": "https://tanstack.com/query", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "scripts": { - "clean": "premove ./build ./coverage ./dist-ts", - "compile": "tsc --build", - "test:eslint": "eslint ./src", - "test:types": "npm-run-all --serial test:types:*", - "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", - "test:types:ts52": "node ../../node_modules/typescript52/lib/tsc.js --build", - "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js --build", - "test:types:ts54": "node ../../node_modules/typescript54/lib/tsc.js --build", - "test:types:ts55": "node ../../node_modules/typescript55/lib/tsc.js --build", - "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js --build", - "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js --build", - "test:types:tscurrent": "tsc --build", - "test:build": "publint --strict && attw --pack", - "build": "pnpm build:tsup", - "build:tsup": "tsup --tsconfig tsconfig.prod.json" - }, - "type": "module", - "types": "build/index.d.ts", - "module": "build/index.mjs", - "exports": { - ".": { - "@tanstack/custom-condition": "./src/index.ts", - "types": "./build/index.d.ts", - "default": "./build/index.mjs" - }, - "./package.json": { - "default": "./package.json" - } - }, - "sideEffects": false, - "files": [ - "build", - "src", - "!src/__tests__" - ], - "dependencies": { - "@tanstack/query-devtools": "workspace:*" - }, - "devDependencies": { - "@angular/core": "^20.0.0", - "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "workspace:*", - "eslint-plugin-jsdoc": "^50.5.0", - "npm-run-all2": "^5.0.0" - }, - "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0", - "@tanstack/angular-query-experimental": "workspace:^" - } -} diff --git a/packages/angular-query-devtools-experimental/root.eslint.config.js b/packages/angular-query-devtools-experimental/root.eslint.config.js deleted file mode 120000 index 35dedbe5a4..0000000000 --- a/packages/angular-query-devtools-experimental/root.eslint.config.js +++ /dev/null @@ -1 +0,0 @@ -../../eslint.config.js \ No newline at end of file diff --git a/packages/angular-query-devtools-experimental/src/index.ts b/packages/angular-query-devtools-experimental/src/index.ts deleted file mode 100644 index 82c19d6916..0000000000 --- a/packages/angular-query-devtools-experimental/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './inject-devtools-panel' diff --git a/packages/angular-query-devtools-experimental/src/inject-devtools-panel.ts b/packages/angular-query-devtools-experimental/src/inject-devtools-panel.ts deleted file mode 100644 index 0fdff618fc..0000000000 --- a/packages/angular-query-devtools-experimental/src/inject-devtools-panel.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { - DestroyRef, - Injector, - PLATFORM_ID, - assertInInjectionContext, - computed, - effect, - inject, - runInInjectionContext, - untracked, -} from '@angular/core' -import { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools' -import { - QueryClient, - onlineManager, -} from '@tanstack/angular-query-experimental' -import { isPlatformBrowser } from '@angular/common' -import type { ElementRef } from '@angular/core' -import type { DevtoolsErrorType } from '@tanstack/query-devtools' - -export interface InjectDevtoolsPanelOptions { - /** - * The `Injector` in which to create the devtools panel. - * - * If this is not provided, the current injection context will be used instead (via `inject`). - */ - injector?: Injector -} - -/** - * Inject a TanStack Query devtools panel and render it in the DOM. - * - * Devtools panel allows programmatic control over the devtools, for example if you want to render - * the devtools as part of your own devtools. - * - * Consider `withDevtools` instead if you don't need this. - * @param injectDevtoolsPanelFn - A function that returns devtools panel options. - * @param options - Additional configuration - * @returns DevtoolsPanelRef - * @see https://tanstack.com/query/v5/docs/framework/angular/devtools - */ -export function injectDevtoolsPanel( - injectDevtoolsPanelFn: () => DevtoolsPanelOptions, - options?: InjectDevtoolsPanelOptions, -): DevtoolsPanelRef { - !options?.injector && assertInInjectionContext(injectDevtoolsPanel) - const currentInjector = options?.injector ?? inject(Injector) - - return runInInjectionContext(currentInjector, () => { - const destroyRef = inject(DestroyRef) - const isBrowser = isPlatformBrowser(inject(PLATFORM_ID)) - const injectedClient = inject(QueryClient, { optional: true }) - - const queryOptions = computed(injectDevtoolsPanelFn) - let devtools: TanstackQueryDevtoolsPanel | null = null - - const destroy = () => { - devtools?.unmount() - devtools = null - } - - if (!isBrowser) - return { - destroy, - } - - effect(() => { - const { - client = injectedClient, - errorTypes = [], - styleNonce, - shadowDOMTarget, - onClose, - hostElement, - } = queryOptions() - - untracked(() => { - if (!client) throw new Error('No QueryClient found') - if (!devtools && hostElement) { - devtools = new TanstackQueryDevtoolsPanel({ - client, - queryFlavor: 'Angular Query', - version: '5', - buttonPosition: 'bottom-left', - position: 'bottom', - initialIsOpen: true, - errorTypes, - styleNonce, - shadowDOMTarget, - onClose, - onlineManager, - }) - devtools.mount(hostElement.nativeElement) - } else if (devtools && hostElement) { - devtools.setClient(client) - devtools.setErrorTypes(errorTypes) - onClose && devtools.setOnClose(onClose) - } else if (devtools && !hostElement) { - destroy() - } - }) - }) - - destroyRef.onDestroy(destroy) - - return { - destroy, - } - }) -} - -/** - * A devtools panel, which can be manually destroyed. - */ -export interface DevtoolsPanelRef { - /** - * Destroy the panel, removing it from the DOM and stops listening to signal changes. - */ - destroy: () => void -} - -export interface DevtoolsPanelOptions { - /** - * Custom instance of QueryClient - */ - client?: QueryClient - /** - * Use this so you can define custom errors that can be shown in the devtools. - */ - errorTypes?: Array - /** - * Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. - */ - styleNonce?: string - /** - * Use this so you can attach the devtool's styles to specific element in the DOM. - */ - shadowDOMTarget?: ShadowRoot - - /** - * Callback function that is called when the devtools panel is closed - */ - onClose?: () => unknown - - /** - * Element where to render the devtools panel. When set to undefined or null, the devtools panel will not be created, or destroyed if existing. - * If changed from undefined to a ElementRef, the devtools panel will be created. - */ - hostElement?: ElementRef -} diff --git a/packages/angular-query-devtools-experimental/src/test-setup.ts b/packages/angular-query-devtools-experimental/src/test-setup.ts deleted file mode 100644 index ef53141bdc..0000000000 --- a/packages/angular-query-devtools-experimental/src/test-setup.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { getTestBed } from '@angular/core/testing' -import { - BrowserTestingModule, - platformBrowserTesting, -} from '@angular/platform-browser/testing' - -getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting()) diff --git a/packages/angular-query-devtools-experimental/tsconfig.json b/packages/angular-query-devtools-experimental/tsconfig.json deleted file mode 100644 index 59bdb26584..0000000000 --- a/packages/angular-query-devtools-experimental/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist-ts", - "rootDir": ".", - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noFallthroughCasesInSwitch": true, - "useDefineForClassFields": false, - "target": "ES2022" - }, - "include": ["src", "*.config.*", "package.json"], - "references": [ - { "path": "../query-devtools" }, - { "path": "../angular-query-experimental" } - ] -} diff --git a/packages/angular-query-devtools-experimental/tsconfig.prod.json b/packages/angular-query-devtools-experimental/tsconfig.prod.json deleted file mode 100644 index 0f4c92da06..0000000000 --- a/packages/angular-query-devtools-experimental/tsconfig.prod.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "incremental": false, - "composite": false, - "rootDir": "../../" - } -} diff --git a/packages/angular-query-devtools-experimental/tsup.config.ts b/packages/angular-query-devtools-experimental/tsup.config.ts deleted file mode 100644 index a1e9d23c1c..0000000000 --- a/packages/angular-query-devtools-experimental/tsup.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig } from 'tsup' - -export default defineConfig({ - entry: ['src/index.ts'], - sourcemap: true, - clean: true, - format: ['esm'], - dts: true, - outDir: 'build', - outExtension({ format }) { - return format === 'esm' ? { js: '.mjs' } : { js: '.js' } - }, -}) diff --git a/packages/angular-query-devtools-experimental/vite.config.ts b/packages/angular-query-devtools-experimental/vite.config.ts deleted file mode 100644 index 25fdba1056..0000000000 --- a/packages/angular-query-devtools-experimental/vite.config.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { defineConfig } from 'vitest/config' - -import packageJson from './package.json' - -export default defineConfig({ - // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 - resolve: { - conditions: ['@tanstack/custom-condition'], - }, - environments: { - ssr: { - resolve: { - conditions: ['@tanstack/custom-condition'], - }, - }, - }, - test: { - name: packageJson.name, - dir: './src', - watch: false, - environment: 'jsdom', - setupFiles: ['src/test-setup.ts'], - coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, - typecheck: { enabled: true }, - globals: true, - restoreMocks: true, - }, -}) diff --git a/packages/angular-query-experimental/eslint.config.js b/packages/angular-query-experimental/eslint.config.js index f3b2546b02..425162bf51 100644 --- a/packages/angular-query-experimental/eslint.config.js +++ b/packages/angular-query-experimental/eslint.config.js @@ -20,13 +20,7 @@ export default [ 'jsdoc/require-hyphen-before-param-description': 1, 'jsdoc/sort-tags': 1, 'jsdoc/require-throws': 1, - 'jsdoc/check-tag-names': [ - 'warn', - { - // Not compatible with Api Extractor @public - typed: false, - }, - ], + 'jsdoc/check-tag-names': ['warn'], }, }, { diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 2ebff1e4c4..066abd0b3b 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -55,11 +55,29 @@ "types": "./dist/index.d.ts", "default": "./dist/index.mjs" }, + "./package.json": "./package.json", "./inject-queries-experimental": { "types": "./dist/inject-queries-experimental/index.d.ts", "default": "./dist/inject-queries-experimental/index.mjs" }, - "./package.json": "./package.json" + "./devtools": { + "types": "./dist/devtools/index.d.ts", + "development": "./dist/devtools/index.mjs", + "default": "./dist/devtools/stub.mjs" + }, + "./devtools/production": { + "types": "./dist/devtools/production/index.d.ts", + "default": "./dist/devtools/index.mjs" + }, + "./devtools-panel": { + "types": "./dist/devtools-panel/index.d.ts", + "development": "./dist/devtools-panel/index.mjs", + "default": "./dist/devtools-panel/stub.mjs" + }, + "./devtools-panel/production": { + "types": "./dist/devtools-panel/production/index.d.ts", + "default": "./dist/devtools-panel/index.mjs" + } }, "sideEffects": false, "files": [ @@ -68,8 +86,7 @@ "**/*.mjs.map" ], "dependencies": { - "@tanstack/query-core": "workspace:*", - "@tanstack/query-devtools": "workspace:*" + "@tanstack/query-core": "workspace:*" }, "devDependencies": { "@angular/common": "^20.0.0", @@ -83,6 +100,9 @@ "vite-plugin-externalize-deps": "^0.9.0", "vite-tsconfig-paths": "^5.1.4" }, + "optionalDependencies": { + "@tanstack/query-devtools": "workspace:*" + }, "peerDependencies": { "@angular/common": ">=16.0.0", "@angular/core": ">=16.0.0" diff --git a/packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts b/packages/angular-query-experimental/src/__tests__/inject-devtools-panel.test.ts similarity index 80% rename from packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts rename to packages/angular-query-experimental/src/__tests__/inject-devtools-panel.test.ts index 367bb708f5..7368deb32e 100644 --- a/packages/angular-query-devtools-experimental/src/__tests__/inject-devtools-panel.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-devtools-panel.test.ts @@ -4,12 +4,10 @@ import { signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' -import { - QueryClient, - provideTanStackQuery, -} from '@tanstack/angular-query-experimental' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { injectDevtoolsPanel } from '../inject-devtools-panel' +import { QueryClient } from '@tanstack/query-core' +import { provideTanStackQuery } from '../providers' +import { injectDevtoolsPanel } from '../devtools-panel' const mockDevtoolsPanelInstance = { mount: vi.fn(), @@ -33,6 +31,12 @@ describe('injectDevtoolsPanel', () => { let queryClient: QueryClient let mockElementRef: ElementRef + const waitForDevtoolsToBeCreated = async () => { + await vi.waitFor(() => { + expect(mocks.mockTanstackQueryDevtoolsPanel).toHaveBeenCalledTimes(1) + }) + } + beforeEach(() => { queryClient = new QueryClient() mockElementRef = new ElementRef(document.createElement('div')) @@ -61,7 +65,7 @@ describe('injectDevtoolsPanel', () => { }) }) - it('should initialize TanstackQueryDevtoolsPanel', () => { + it('should initialize TanstackQueryDevtoolsPanel', async () => { TestBed.runInInjectionContext(() => { injectDevtoolsPanel(() => ({ hostElement: TestBed.inject(ElementRef), @@ -70,10 +74,12 @@ describe('injectDevtoolsPanel', () => { TestBed.tick() - expect(mocks.mockTanstackQueryDevtoolsPanel).toHaveBeenCalledTimes(1) + await waitForDevtoolsToBeCreated() + + expect(mockDevtoolsPanelInstance.mount).toHaveBeenCalledTimes(1) }) - it('should destroy TanstackQueryDevtoolsPanel', () => { + it('should destroy TanstackQueryDevtoolsPanel', async () => { const result = TestBed.runInInjectionContext(() => { return injectDevtoolsPanel(() => ({ hostElement: TestBed.inject(ElementRef), @@ -82,12 +88,14 @@ describe('injectDevtoolsPanel', () => { TestBed.tick() + await waitForDevtoolsToBeCreated() + result.destroy() expect(mockDevtoolsPanelInstance.unmount).toHaveBeenCalledTimes(1) }) - it('should destroy TanstackQueryDevtoolsPanel when hostElement is removed', () => { + it('should destroy TanstackQueryDevtoolsPanel when hostElement is removed', async () => { const hostElement = signal(mockElementRef) TestBed.runInInjectionContext(() => { @@ -98,6 +106,8 @@ describe('injectDevtoolsPanel', () => { TestBed.tick() + await waitForDevtoolsToBeCreated() + expect(mockDevtoolsPanelInstance.unmount).toHaveBeenCalledTimes(0) hostElement.set(null as unknown as ElementRef) @@ -107,7 +117,7 @@ describe('injectDevtoolsPanel', () => { expect(mockDevtoolsPanelInstance.unmount).toHaveBeenCalledTimes(1) }) - it('should update client', () => { + it('should update client', async () => { const client = signal(new QueryClient()) TestBed.runInInjectionContext(() => { @@ -119,6 +129,8 @@ describe('injectDevtoolsPanel', () => { TestBed.tick() + await waitForDevtoolsToBeCreated() + expect(mockDevtoolsPanelInstance.setClient).toHaveBeenCalledTimes(0) client.set(new QueryClient()) @@ -128,7 +140,7 @@ describe('injectDevtoolsPanel', () => { expect(mockDevtoolsPanelInstance.setClient).toHaveBeenCalledTimes(1) }) - it('should update error types', () => { + it('should update error types', async () => { const errorTypes = signal([]) TestBed.runInInjectionContext(() => { @@ -140,6 +152,8 @@ describe('injectDevtoolsPanel', () => { TestBed.tick() + await waitForDevtoolsToBeCreated() + expect(mockDevtoolsPanelInstance.setErrorTypes).toHaveBeenCalledTimes(0) errorTypes.set([]) @@ -149,7 +163,7 @@ describe('injectDevtoolsPanel', () => { expect(mockDevtoolsPanelInstance.setErrorTypes).toHaveBeenCalledTimes(1) }) - it('should update onclose', () => { + it('should update onclose', async () => { const functionA = () => {} const functionB = () => {} @@ -164,6 +178,8 @@ describe('injectDevtoolsPanel', () => { TestBed.tick() + await waitForDevtoolsToBeCreated() + expect(mockDevtoolsPanelInstance.setOnClose).toHaveBeenCalledTimes(0) onClose.set(functionB) diff --git a/packages/angular-query-experimental/src/__tests__/providers.test.ts b/packages/angular-query-experimental/src/__tests__/providers.test.ts deleted file mode 100644 index 3a41f03fc2..0000000000 --- a/packages/angular-query-experimental/src/__tests__/providers.test.ts +++ /dev/null @@ -1,321 +0,0 @@ -import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' -import { QueryClient } from '@tanstack/query-core' -import { TestBed } from '@angular/core/testing' -import { - ENVIRONMENT_INITIALIZER, - provideZonelessChangeDetection, - signal, -} from '@angular/core' -import { isDevMode } from '../util/is-dev-mode/is-dev-mode' -import { provideTanStackQuery, withDevtools } from '../providers' -import type { DevtoolsOptions } from '../providers' -import type { Mock } from 'vitest' -import type { - DevtoolsButtonPosition, - DevtoolsErrorType, - DevtoolsPosition, -} from '@tanstack/query-devtools' - -vi.mock('../util/is-dev-mode/is-dev-mode', () => ({ - isDevMode: vi.fn(), -})) - -const mockDevtoolsInstance = { - mount: vi.fn(), - unmount: vi.fn(), - setClient: vi.fn(), - setPosition: vi.fn(), - setErrorTypes: vi.fn(), - setButtonPosition: vi.fn(), - setInitialIsOpen: vi.fn(), -} - -const mockTanstackQueryDevtools = vi.fn(() => mockDevtoolsInstance) - -vi.mock('@tanstack/query-devtools', () => ({ - TanstackQueryDevtools: mockTanstackQueryDevtools, -})) - -describe('withDevtools feature', () => { - let isDevModeMock: Mock - - beforeEach(() => { - vi.useFakeTimers() - isDevModeMock = isDevMode as Mock - }) - - afterEach(() => { - vi.restoreAllMocks() - }) - - test.each([ - { - description: - 'should provide developer tools in development mode by default', - isDevModeValue: true, - expectedCalled: true, - }, - { - description: - 'should not provide developer tools in production mode by default', - isDevModeValue: false, - expectedCalled: false, - }, - { - description: `should provide developer tools in development mode when 'loadDeveloperTools' is set to 'auto'`, - isDevModeValue: true, - loadDevtools: 'auto', - expectedCalled: true, - }, - { - description: `should not provide developer tools in production mode when 'loadDeveloperTools' is set to 'auto'`, - isDevModeValue: false, - loadDevtools: 'auto', - expectedCalled: false, - }, - { - description: - "should provide developer tools in development mode when 'loadDevtools' is set to true", - isDevModeValue: true, - loadDevtools: true, - expectedCalled: true, - }, - { - description: - "should provide developer tools in production mode when 'loadDevtools' is set to true", - isDevModeValue: false, - loadDevtools: true, - expectedCalled: true, - }, - { - description: - "should not provide developer tools in development mode when 'loadDevtools' is set to false", - isDevModeValue: true, - loadDevtools: false, - expectedCalled: false, - }, - { - description: - "should not provide developer tools in production mode when 'loadDevtools' is set to false", - isDevModeValue: false, - loadDevtools: false, - expectedCalled: false, - }, - ])( - '$description', - async ({ isDevModeValue, loadDevtools, expectedCalled }) => { - isDevModeMock.mockReturnValue(isDevModeValue) - - const providers = [ - provideZonelessChangeDetection(), - provideTanStackQuery( - new QueryClient(), - loadDevtools !== undefined - ? withDevtools( - () => - ({ - loadDevtools, - }) as DevtoolsOptions, - ) - : withDevtools(), - ), - ] - - TestBed.configureTestingModule({ - providers, - }) - - TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.advanceTimersByTimeAsync(0) - - if (expectedCalled) { - expect(mockTanstackQueryDevtools).toHaveBeenCalled() - } else { - expect(mockTanstackQueryDevtools).not.toHaveBeenCalled() - } - }, - ) - - it('should update error types', async () => { - const errorTypes = signal([] as Array) - - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery( - new QueryClient(), - withDevtools(() => ({ - loadDevtools: true, - errorTypes: errorTypes(), - })), - ), - ], - }) - - TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.advanceTimersByTimeAsync(0) - - TestBed.tick() - - expect(mockDevtoolsInstance.setErrorTypes).toHaveBeenCalledTimes(0) - - errorTypes.set([ - { - name: '', - initializer: () => new Error(), - }, - ]) - - TestBed.tick() - - expect(mockDevtoolsInstance.setErrorTypes).toHaveBeenCalledTimes(1) - }) - - it('should update client', async () => { - const client = signal(new QueryClient()) - - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery( - new QueryClient(), - withDevtools(() => ({ - loadDevtools: true, - client: client(), - })), - ), - ], - }) - - TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.advanceTimersByTimeAsync(0) - - TestBed.tick() - - expect(mockDevtoolsInstance.setClient).toHaveBeenCalledTimes(0) - - client.set(new QueryClient()) - - TestBed.tick() - - expect(mockDevtoolsInstance.setClient).toHaveBeenCalledTimes(1) - }) - - it('should update position', async () => { - const position = signal('top') - - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery( - new QueryClient(), - withDevtools(() => ({ - loadDevtools: true, - position: position(), - })), - ), - ], - }) - - TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.advanceTimersByTimeAsync(0) - - TestBed.tick() - - expect(mockDevtoolsInstance.setPosition).toHaveBeenCalledTimes(0) - - position.set('left') - - TestBed.tick() - - expect(mockDevtoolsInstance.setPosition).toHaveBeenCalledTimes(1) - }) - - it('should update button position', async () => { - const buttonPosition = signal('bottom-left') - - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery( - new QueryClient(), - withDevtools(() => ({ - loadDevtools: true, - buttonPosition: buttonPosition(), - })), - ), - ], - }) - - TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.advanceTimersByTimeAsync(0) - - TestBed.tick() - - expect(mockDevtoolsInstance.setButtonPosition).toHaveBeenCalledTimes(0) - - buttonPosition.set('bottom-right') - - TestBed.tick() - - expect(mockDevtoolsInstance.setButtonPosition).toHaveBeenCalledTimes(1) - }) - - it('should update initialIsOpen', async () => { - const initialIsOpen = signal(false) - - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery( - new QueryClient(), - withDevtools(() => ({ - loadDevtools: true, - initialIsOpen: initialIsOpen(), - })), - ), - ], - }) - - TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.advanceTimersByTimeAsync(0) - - TestBed.tick() - - expect(mockDevtoolsInstance.setInitialIsOpen).toHaveBeenCalledTimes(0) - - initialIsOpen.set(true) - - TestBed.tick() - - expect(mockDevtoolsInstance.setInitialIsOpen).toHaveBeenCalledTimes(1) - }) - - it('should destroy devtools', async () => { - const loadDevtools = signal(true) - - TestBed.configureTestingModule({ - providers: [ - provideZonelessChangeDetection(), - provideTanStackQuery( - new QueryClient(), - withDevtools(() => ({ - loadDevtools: loadDevtools(), - })), - ), - ], - }) - - TestBed.inject(ENVIRONMENT_INITIALIZER) - await vi.advanceTimersByTimeAsync(0) - - expect(mockDevtoolsInstance.mount).toHaveBeenCalledTimes(1) - expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(0) - - loadDevtools.set(false) - - TestBed.tick() - - expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(1) - }) -}) diff --git a/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts b/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts new file mode 100644 index 0000000000..7091f5a0c2 --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/with-devtools.test.ts @@ -0,0 +1,603 @@ +import { afterEach, beforeEach, describe, expect, it, test, vi } from 'vitest' +import { QueryClient } from '@tanstack/query-core' +import { TestBed } from '@angular/core/testing' +import { + ENVIRONMENT_INITIALIZER, + EnvironmentInjector, + InjectionToken, + PLATFORM_ID, + createEnvironmentInjector, + isDevMode, + provideZonelessChangeDetection, + signal, +} from '@angular/core' +import { provideTanStackQuery } from '../providers' +import { withDevtools } from '../devtools' +import type { + DevtoolsButtonPosition, + DevtoolsErrorType, + DevtoolsPosition, +} from '@tanstack/query-devtools' +import type { DevtoolsOptions } from '../devtools' + +const mockDevtoolsInstance = { + mount: vi.fn(), + unmount: vi.fn(), + setClient: vi.fn(), + setPosition: vi.fn(), + setErrorTypes: vi.fn(), + setButtonPosition: vi.fn(), + setInitialIsOpen: vi.fn(), +} + +const mockTanstackQueryDevtools = vi.fn(() => mockDevtoolsInstance) + +vi.mock('@tanstack/query-devtools', () => ({ + TanstackQueryDevtools: mockTanstackQueryDevtools, +})) + +vi.mock('@angular/core', async () => { + const actual = await vi.importActual('@angular/core') + return { + ...actual, + isDevMode: vi.fn(), + } +}) + +const mockIsDevMode = vi.mocked(isDevMode) + +describe('withDevtools feature', () => { + beforeEach(() => { + vi.clearAllMocks() + vi.useFakeTimers() + }) + + afterEach(() => { + vi.restoreAllMocks() + vi.useRealTimers() + TestBed.resetTestingModule() + }) + + test.each([ + { + description: 'should load devtools in development mode', + isDevMode: true, + expectedCalled: true, + }, + { + description: 'should not load devtools in production mode', + isDevMode: false, + expectedCalled: false, + }, + { + description: `should load devtools in development mode when 'loadDevtools' is set to 'auto'`, + isDevMode: true, + loadDevtools: 'auto', + expectedCalled: true, + }, + { + description: `should not load devtools in production mode when 'loadDevtools' is set to 'auto'`, + isDevMode: false, + loadDevtools: 'auto', + expectedCalled: false, + }, + { + description: + "should load devtools in development mode when 'loadDevtools' is set to true", + isDevMode: true, + loadDevtools: true, + expectedCalled: true, + }, + { + description: + "should load devtools in production mode when 'loadDevtools' is set to true", + isDevMode: false, + loadDevtools: true, + expectedCalled: true, + }, + { + description: + "should not load devtools in development mode when 'loadDevtools' is set to false", + isDevMode: true, + loadDevtools: false, + expectedCalled: false, + }, + { + description: + "should not load devtools in production mode when 'loadDevtools' is set to false", + isDevMode: false, + loadDevtools: false, + expectedCalled: false, + }, + ])( + '$description', + async ({ isDevMode: isDevModeValue, loadDevtools, expectedCalled }) => { + mockIsDevMode.mockReturnValue(isDevModeValue) + + const providers = [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + loadDevtools !== undefined + ? withDevtools( + () => + ({ + loadDevtools, + }) as DevtoolsOptions, + ) + : withDevtools(), + ), + ] + + TestBed.configureTestingModule({ + providers, + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + TestBed.tick() + await vi.dynamicImportSettled() + TestBed.tick() + await vi.dynamicImportSettled() + + if (expectedCalled) { + expect(mockTanstackQueryDevtools).toHaveBeenCalled() + expect(mockDevtoolsInstance.mount).toHaveBeenCalled() + } else { + expect(mockTanstackQueryDevtools).not.toHaveBeenCalled() + expect(mockDevtoolsInstance.mount).not.toHaveBeenCalled() + } + }, + ) + + it('should not continue loading devtools after injector is destroyed', async () => { + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + // Destroys injector + TestBed.resetTestingModule() + await vi.advanceTimersByTimeAsync(0) + await vi.dynamicImportSettled() + + expect(mockTanstackQueryDevtools).not.toHaveBeenCalled() + }) + + it('should not create devtools again when already provided', async () => { + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + expect(mockTanstackQueryDevtools).toHaveBeenCalledTimes(1) + + const injector = TestBed.inject(EnvironmentInjector) + + createEnvironmentInjector( + [ + withDevtools(() => ({ + loadDevtools: true, + })).ษตproviders, + ], + injector, + ) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + expect(mockTanstackQueryDevtools).toHaveBeenCalledTimes(1) + }) + + it('should not load devtools if platform is not browser', async () => { + TestBed.configureTestingModule({ + providers: [ + { + provide: PLATFORM_ID, + useValue: 'server', + }, + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.runAllTimersAsync() + + expect(mockTanstackQueryDevtools).not.toHaveBeenCalled() + }) + + it('should update error types', async () => { + const errorTypes = signal([] as Array) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + errorTypes: errorTypes(), + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + TestBed.tick() + + expect(mockDevtoolsInstance.setErrorTypes).toHaveBeenCalledTimes(0) + + const newErrorTypes = [ + { + name: '', + initializer: () => new Error(), + }, + ] + + errorTypes.set(newErrorTypes) + + TestBed.tick() + + expect(mockDevtoolsInstance.setErrorTypes).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.setErrorTypes).toHaveBeenCalledWith( + newErrorTypes, + ) + }) + + it('should update client', async () => { + const client = signal(new QueryClient()) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + client: client(), + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + TestBed.tick() + + expect(mockDevtoolsInstance.setClient).toHaveBeenCalledTimes(0) + + const newClient = new QueryClient() + client.set(newClient) + + TestBed.tick() + + expect(mockDevtoolsInstance.setClient).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.setClient).toHaveBeenCalledWith(newClient) + }) + + it('should update position', async () => { + const position = signal('top') + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + position: position(), + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + TestBed.tick() + + expect(mockDevtoolsInstance.setPosition).toHaveBeenCalledTimes(0) + + position.set('left') + + TestBed.tick() + + expect(mockDevtoolsInstance.setPosition).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.setPosition).toHaveBeenCalledWith('left') + }) + + it('should update button position', async () => { + const buttonPosition = signal('bottom-left') + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + buttonPosition: buttonPosition(), + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + TestBed.tick() + + expect(mockDevtoolsInstance.setButtonPosition).toHaveBeenCalledTimes(0) + + buttonPosition.set('bottom-right') + + TestBed.tick() + + expect(mockDevtoolsInstance.setButtonPosition).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.setButtonPosition).toHaveBeenCalledWith( + 'bottom-right', + ) + }) + + it('should update initialIsOpen', async () => { + const initialIsOpen = signal(false) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + initialIsOpen: initialIsOpen(), + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + TestBed.tick() + + expect(mockDevtoolsInstance.setInitialIsOpen).toHaveBeenCalledTimes(0) + + initialIsOpen.set(true) + + TestBed.tick() + + expect(mockDevtoolsInstance.setInitialIsOpen).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.setInitialIsOpen).toHaveBeenCalledWith(true) + }) + + it('should destroy devtools', async () => { + const loadDevtools = signal(true) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: loadDevtools(), + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + expect(mockDevtoolsInstance.mount).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(0) + + loadDevtools.set(false) + + TestBed.tick() + + expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(1) + }) + + it('should unmount devtools when injector is destroyed', async () => { + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: true, + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + TestBed.tick() + await vi.dynamicImportSettled() + + expect(mockTanstackQueryDevtools).toHaveBeenCalled() + expect(mockDevtoolsInstance.mount).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(0) + + // Destroy the injector + TestBed.resetTestingModule() + + expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(1) + }) + + it('should remount devtools when toggled from false to true', async () => { + const loadDevtools = signal(false) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(() => ({ + loadDevtools: loadDevtools(), + })), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + expect(mockTanstackQueryDevtools).not.toHaveBeenCalled() + expect(mockDevtoolsInstance.mount).not.toHaveBeenCalled() + + loadDevtools.set(true) + TestBed.tick() + await vi.dynamicImportSettled() + + expect(mockTanstackQueryDevtools).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.mount).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.unmount).not.toHaveBeenCalled() + + loadDevtools.set(false) + TestBed.tick() + + expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(1) + expect(mockDevtoolsInstance.mount).toHaveBeenCalledTimes(1) + + loadDevtools.set(true) + TestBed.tick() + await vi.dynamicImportSettled() + + // Should remount (mount called twice now) + expect(mockDevtoolsInstance.mount).toHaveBeenCalledTimes(2) + expect(mockDevtoolsInstance.unmount).toHaveBeenCalledTimes(1) + }) + + describe('deps parameter', () => { + it('should inject dependencies and pass them to withDevtoolsFn in correct order', async () => { + const mockService1 = { value: 'service1' } + const mockService2 = { value: 'service2' } + const mockService1Token = new InjectionToken('MockService1') + const mockService2Token = new InjectionToken('MockService2') + const withDevtoolsFn = vi.fn().mockReturnValue({ loadDevtools: true }) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + { + provide: mockService1Token, + useValue: mockService1, + }, + { + provide: mockService2Token, + useValue: mockService2, + }, + provideTanStackQuery( + new QueryClient(), + withDevtools(withDevtoolsFn, { + deps: [mockService1Token, mockService2Token], + }), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + expect(withDevtoolsFn).toHaveBeenCalledWith(mockService1, mockService2) + }) + + it('should work with empty deps array', async () => { + const withDevtoolsFn = vi.fn().mockReturnValue({ loadDevtools: true }) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery( + new QueryClient(), + withDevtools(withDevtoolsFn, { + deps: [], + }), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + expect(withDevtoolsFn).toHaveBeenCalledWith() + }) + + it('should reactively update when injected services change', async () => { + class ReactiveService { + enabled = signal(false) + position = signal('bottom') + } + + const withDevtoolsFn = (service: ReactiveService) => ({ + loadDevtools: service.enabled(), + position: service.position(), + }) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + ReactiveService, + provideTanStackQuery( + new QueryClient(), + withDevtools(withDevtoolsFn, { + deps: [ReactiveService], + }), + ), + ], + }) + + TestBed.inject(ENVIRONMENT_INITIALIZER) + await vi.advanceTimersByTimeAsync(0) + + const service = TestBed.inject(ReactiveService) + + expect(mockTanstackQueryDevtools).not.toHaveBeenCalled() + + service.enabled.set(true) + TestBed.tick() + await vi.dynamicImportSettled() + + expect(mockTanstackQueryDevtools).toHaveBeenCalledTimes(1) + expect(mockTanstackQueryDevtools).toHaveBeenCalledWith( + expect.objectContaining({ + position: 'bottom', + }), + ) + + service.position.set('top') + TestBed.tick() + + expect(mockDevtoolsInstance.setPosition).toHaveBeenCalledWith('top') + }) + }) +}) diff --git a/packages/angular-query-experimental/src/devtools-panel/index.ts b/packages/angular-query-experimental/src/devtools-panel/index.ts new file mode 100644 index 0000000000..2742a15469 --- /dev/null +++ b/packages/angular-query-experimental/src/devtools-panel/index.ts @@ -0,0 +1,8 @@ +export type { + InjectDevtoolsPanel, + DevtoolsPanelOptions, + InjectDevtoolsPanelOptions, + DevtoolsPanelRef, +} from './types' + +export { injectDevtoolsPanel } from './inject-devtools-panel' diff --git a/packages/angular-query-experimental/src/devtools-panel/inject-devtools-panel.ts b/packages/angular-query-experimental/src/devtools-panel/inject-devtools-panel.ts new file mode 100644 index 0000000000..94aaa185ca --- /dev/null +++ b/packages/angular-query-experimental/src/devtools-panel/inject-devtools-panel.ts @@ -0,0 +1,110 @@ +import { + DestroyRef, + Injector, + PLATFORM_ID, + assertInInjectionContext, + computed, + effect, + inject, + runInInjectionContext, + untracked, +} from '@angular/core' +import { QueryClient, onlineManager } from '@tanstack/query-core' +import { isPlatformBrowser } from '@angular/common' +import type { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools' +import type { + DevtoolsPanelOptions, + InjectDevtoolsPanel, + InjectDevtoolsPanelOptions, +} from './types' + +/** + * Inject a TanStack Query devtools panel and render it in the DOM. + * + * Devtools panel allows programmatic control over the devtools, for example if you want to render + * the devtools as part of your own devtools. + * + * Consider `withDevtools` instead if you don't need this. + * @param injectDevtoolsPanelFn - A function that returns devtools panel options. + * @param options - Additional configuration + * @returns DevtoolsPanelRef + * @see https://tanstack.com/query/v5/docs/framework/angular/devtools + */ +export const injectDevtoolsPanel: InjectDevtoolsPanel = ( + injectDevtoolsPanelFn: () => DevtoolsPanelOptions, + options?: InjectDevtoolsPanelOptions, +) => { + !options?.injector && assertInInjectionContext(injectDevtoolsPanel) + const currentInjector = options?.injector ?? inject(Injector) + + return runInInjectionContext(currentInjector, () => { + const destroyRef = inject(DestroyRef) + const isBrowser = isPlatformBrowser(inject(PLATFORM_ID)) + const injectedClient = inject(QueryClient, { optional: true }) + + const queryOptions = computed(injectDevtoolsPanelFn) + let devtools: TanstackQueryDevtoolsPanel | null = null + + const destroy = () => { + devtools?.unmount() + devtools = null + } + + if (!isBrowser) + return { + destroy, + } + + effect(() => { + const { + client = injectedClient, + errorTypes = [], + styleNonce, + shadowDOMTarget, + onClose, + hostElement, + } = queryOptions() + + untracked(() => { + if (!client) throw new Error('No QueryClient found') + if (!devtools && hostElement) { + import('@tanstack/query-devtools') + .then((queryDevtools) => { + devtools = new queryDevtools.TanstackQueryDevtoolsPanel({ + client, + queryFlavor: 'Angular Query', + version: '5', + buttonPosition: 'bottom-left', + position: 'bottom', + initialIsOpen: true, + errorTypes, + styleNonce, + shadowDOMTarget, + onClose, + onlineManager, + }) + devtools.mount(hostElement.nativeElement) + }) + .catch((error) => { + console.error( + 'Install @tanstack/query-devtools or reinstall without --omit=optional.', + error, + ) + }) + } else if (devtools && hostElement) { + devtools.setClient(client) + devtools.setErrorTypes(errorTypes) + onClose && devtools.setOnClose(onClose) + } else if (devtools && !hostElement) { + destroy() + } + }) + }) + + destroyRef.onDestroy(destroy) + + return { + destroy, + } + }) +} diff --git a/packages/angular-query-experimental/src/devtools-panel/production/index.ts b/packages/angular-query-experimental/src/devtools-panel/production/index.ts new file mode 100644 index 0000000000..546becea7f --- /dev/null +++ b/packages/angular-query-experimental/src/devtools-panel/production/index.ts @@ -0,0 +1 @@ +export * from '..' diff --git a/packages/angular-query-experimental/src/devtools-panel/stub.ts b/packages/angular-query-experimental/src/devtools-panel/stub.ts new file mode 100644 index 0000000000..63e836eb5c --- /dev/null +++ b/packages/angular-query-experimental/src/devtools-panel/stub.ts @@ -0,0 +1,7 @@ +import { noop } from '@tanstack/query-core' +import type { InjectDevtoolsPanel } from './types' + +// Stub which replaces `injectDevtoolsPanel` in production builds +export const injectDevtoolsPanel: InjectDevtoolsPanel = () => ({ + destroy: noop, +}) diff --git a/packages/angular-query-experimental/src/devtools-panel/types.ts b/packages/angular-query-experimental/src/devtools-panel/types.ts new file mode 100644 index 0000000000..b87373ad95 --- /dev/null +++ b/packages/angular-query-experimental/src/devtools-panel/types.ts @@ -0,0 +1,57 @@ +import type { DevtoolsErrorType } from '@tanstack/query-devtools' +import type { ElementRef, Injector } from '@angular/core' +import type { QueryClient } from '@tanstack/query-core' + +export interface InjectDevtoolsPanelOptions { + /** + * The `Injector` in which to create the devtools panel. + * + * If this is not provided, the current injection context will be used instead (via `inject`). + */ + injector?: Injector +} + +/** + * A devtools panel, which can be manually destroyed. + */ +export interface DevtoolsPanelRef { + /** + * Destroy the panel, removing it from the DOM and stops listening to signal changes. + */ + destroy: () => void +} + +export interface DevtoolsPanelOptions { + /** + * Custom instance of QueryClient + */ + client?: QueryClient + /** + * Use this so you can define custom errors that can be shown in the devtools. + */ + errorTypes?: Array + /** + * Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. + */ + styleNonce?: string + /** + * Use this so you can attach the devtool's styles to specific element in the DOM. + */ + shadowDOMTarget?: ShadowRoot + + /** + * Callback function that is called when the devtools panel is closed + */ + onClose?: () => unknown + + /** + * Element where to render the devtools panel. When set to undefined or null, the devtools panel will not be created, or destroyed if existing. + * If changed from undefined to a ElementRef, the devtools panel will be created. + */ + hostElement?: ElementRef +} + +export type InjectDevtoolsPanel = ( + injectDevtoolsPanelFn: () => DevtoolsPanelOptions, + options?: InjectDevtoolsPanelOptions, +) => DevtoolsPanelRef diff --git a/packages/angular-query-experimental/src/devtools/index.ts b/packages/angular-query-experimental/src/devtools/index.ts new file mode 100644 index 0000000000..d4f7e9238f --- /dev/null +++ b/packages/angular-query-experimental/src/devtools/index.ts @@ -0,0 +1,8 @@ +export type { + DevtoolsOptions, + WithDevtools, + WithDevtoolsFn, + WithDevtoolsOptions, +} from './types' + +export { withDevtools } from './with-devtools' diff --git a/packages/angular-query-experimental/src/devtools/production/index.ts b/packages/angular-query-experimental/src/devtools/production/index.ts new file mode 100644 index 0000000000..546becea7f --- /dev/null +++ b/packages/angular-query-experimental/src/devtools/production/index.ts @@ -0,0 +1 @@ +export * from '..' diff --git a/packages/angular-query-experimental/src/devtools/stub.ts b/packages/angular-query-experimental/src/devtools/stub.ts new file mode 100644 index 0000000000..d8090a4b28 --- /dev/null +++ b/packages/angular-query-experimental/src/devtools/stub.ts @@ -0,0 +1,7 @@ +import type { WithDevtools } from './types' + +// Stub which replaces `withDevtools` in production builds +export const withDevtools: WithDevtools = () => ({ + ษตkind: 'Devtools', + ษตproviders: [], +}) diff --git a/packages/angular-query-experimental/src/devtools/types.ts b/packages/angular-query-experimental/src/devtools/types.ts new file mode 100644 index 0000000000..8ab243b97a --- /dev/null +++ b/packages/angular-query-experimental/src/devtools/types.ts @@ -0,0 +1,107 @@ +import type { QueryClient } from '@tanstack/query-core' +import type { + DevtoolsButtonPosition, + DevtoolsErrorType, + DevtoolsPosition, +} from '@tanstack/query-devtools' +import type { DeveloperToolsFeature } from '../providers' + +/** + * Options for configuring withDevtools. + */ +export interface WithDevtoolsOptions { + /** + * An array of dependencies to be injected and passed to the `withDevtoolsFn` function. + * + * **Example** + * ```ts + * export const appConfig: ApplicationConfig = { + * providers: [ + * provideTanStackQuery( + * new QueryClient(), + * withDevtools( + * (devToolsOptionsManager: DevtoolsOptionsManager) => ({ + * loadDevtools: devToolsOptionsManager.loadDevtools(), + * }), + * { + * deps: [DevtoolsOptionsManager], + * }, + * ), + * ), + * ], + * } + * ``` + */ + deps?: Array +} + +/** + * Options for configuring the TanStack Query devtools. + */ +export interface DevtoolsOptions { + /** + * Set this true if you want the devtools to default to being open + */ + initialIsOpen?: boolean + /** + * The position of the TanStack logo to open and close the devtools panel. + * `top-left` | `top-right` | `bottom-left` | `bottom-right` | `relative` + * Defaults to `bottom-right`. + */ + buttonPosition?: DevtoolsButtonPosition + /** + * The position of the TanStack Query devtools panel. + * `top` | `bottom` | `left` | `right` + * Defaults to `bottom`. + */ + position?: DevtoolsPosition + /** + * Custom instance of QueryClient + */ + client?: QueryClient + /** + * Use this so you can define custom errors that can be shown in the devtools. + */ + errorTypes?: Array + /** + * Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. + */ + styleNonce?: string + /** + * Use this so you can attach the devtool's styles to a specific element in the DOM. + */ + shadowDOMTarget?: ShadowRoot + /** + * Set this to true to hide disabled queries from the devtools panel. + */ + hideDisabledQueries?: boolean + + /** + * Whether the developer tools should load. + * - `auto`- (Default) Lazily loads devtools when in development mode. Skips loading in production mode. + * - `true`- Always load the devtools, regardless of the environment. + * - `false`- Never load the devtools, regardless of the environment. + * + * You can use `true` and `false` to override loading developer tools from an environment file. + * For example, a test environment might run in production mode but you may want to load developer tools. + * + * Additionally, you can use a signal in the callback to dynamically load the devtools based on a condition. For example, + * a signal created from a RxJS observable that listens for a keyboard shortcut. + * + * **Example** + * ```ts + * withDevtools(() => ({ + * initialIsOpen: true, + * loadDevtools: inject(ExampleService).loadDevtools() + * })) + * ``` + */ + loadDevtools?: 'auto' | boolean +} + +export type WithDevtoolsFn = (...deps: Array) => DevtoolsOptions + +export type WithDevtools = ( + withDevtoolsFn?: WithDevtoolsFn, + options?: WithDevtoolsOptions, +) => DeveloperToolsFeature diff --git a/packages/angular-query-experimental/src/devtools/with-devtools.ts b/packages/angular-query-experimental/src/devtools/with-devtools.ts new file mode 100644 index 0000000000..22ee80c1ca --- /dev/null +++ b/packages/angular-query-experimental/src/devtools/with-devtools.ts @@ -0,0 +1,180 @@ +import { isPlatformBrowser } from '@angular/common' +import { + DestroyRef, + ENVIRONMENT_INITIALIZER, + InjectionToken, + Injector, + PLATFORM_ID, + computed, + effect, + inject, + isDevMode, +} from '@angular/core' +import { QueryClient, noop, onlineManager } from '@tanstack/query-core' +import { queryFeature } from '../providers' +import type { Signal } from '@angular/core' +import type { + DevtoolsOptions, + WithDevtools, + WithDevtoolsFn, + WithDevtoolsOptions, +} from './types' +import type { TanstackQueryDevtools } from '@tanstack/query-devtools' + +/** + * Internal token used to prevent double providing of devtools in child injectors + */ +const DEVTOOLS_PROVIDED = new InjectionToken('', { + factory: () => ({ + isProvided: false, + }), +}) + +/** + * Internal token for providing devtools options + */ +const DEVTOOLS_OPTIONS_SIGNAL = new InjectionToken>('') + +/** + * Enables developer tools in Angular development builds. + * + * **Example** + * + * ```ts + * export const appConfig: ApplicationConfig = { + * providers: [ + * provideTanStackQuery(new QueryClient(), withDevtools()) + * ] + * } + * ``` + * The devtools will be rendered in ``. + * + * If you need more control over when devtools are loaded, you can use the `loadDevtools` option. + * + * If you need more control over where devtools are rendered, consider `injectDevtoolsPanel`. This allows rendering devtools inside your own devtools for example. + * @param withDevtoolsFn - A function that returns `DevtoolsOptions`. + * @param options - Additional options for configuring `withDevtools`. + * @returns A set of providers for use with `provideTanStackQuery`. + * @see {@link provideTanStackQuery} + * @see {@link DevtoolsOptions} + */ +export const withDevtools: WithDevtools = ( + withDevtoolsFn?: WithDevtoolsFn, + options: WithDevtoolsOptions = {}, +) => + queryFeature('Devtools', [ + { + provide: DEVTOOLS_OPTIONS_SIGNAL, + useFactory: (...deps: Array) => + computed(() => withDevtoolsFn?.(...deps) ?? {}), + deps: options.deps || [], + }, + { + // Do not use provideEnvironmentInitializer while Angular < v19 is supported + provide: ENVIRONMENT_INITIALIZER, + multi: true, + useFactory: () => { + const devtoolsProvided = inject(DEVTOOLS_PROVIDED) + if ( + !isPlatformBrowser(inject(PLATFORM_ID)) || + devtoolsProvided.isProvided + ) + return noop + + devtoolsProvided.isProvided = true + let injectorIsDestroyed = false + inject(DestroyRef).onDestroy(() => (injectorIsDestroyed = true)) + + return () => { + const injectedClient = inject(QueryClient, { + optional: true, + }) + const destroyRef = inject(DestroyRef) + const devtoolsOptions = inject(DEVTOOLS_OPTIONS_SIGNAL) + const injector = inject(Injector) + + let devtools: TanstackQueryDevtools | null = null + let el: HTMLElement | null = null + + const shouldLoadToolsSignal = computed(() => { + const { loadDevtools } = devtoolsOptions() + return typeof loadDevtools === 'boolean' + ? loadDevtools + : isDevMode() + }) + + const getResolvedQueryClient = () => { + const client = devtoolsOptions().client ?? injectedClient + if (!client) { + throw new Error('No QueryClient found') + } + return client + } + + const destroyDevtools = () => { + devtools?.unmount() + el?.remove() + devtools = null + } + + effect( + () => { + const shouldLoadTools = shouldLoadToolsSignal() + const { + client, + position, + errorTypes, + buttonPosition, + initialIsOpen, + } = devtoolsOptions() + + if (!shouldLoadTools) { + // Destroy or do nothing + devtools && destroyDevtools() + return + } + + if (devtools) { + // Update existing devtools config + client && devtools.setClient(client) + position && devtools.setPosition(position) + errorTypes && devtools.setErrorTypes(errorTypes) + buttonPosition && devtools.setButtonPosition(buttonPosition) + typeof initialIsOpen === 'boolean' && + devtools.setInitialIsOpen(initialIsOpen) + return + } + + // Create devtools + import('@tanstack/query-devtools') + .then((queryDevtools) => { + // As this code runs async, the injector could have been destroyed + if (injectorIsDestroyed) return + + devtools = new queryDevtools.TanstackQueryDevtools({ + ...devtoolsOptions(), + client: getResolvedQueryClient(), + queryFlavor: 'Angular Query', + version: '5', + onlineManager, + }) + + el = document.body.appendChild(document.createElement('div')) + el.classList.add('tsqd-parent-container') + devtools.mount(el) + + destroyRef.onDestroy(destroyDevtools) + }) + .catch((error) => { + console.error( + 'Install @tanstack/query-devtools or reinstall without --omit=optional.', + error, + ) + }) + }, + { injector }, + ) + } + }, + }, + ]) diff --git a/packages/angular-query-experimental/src/index.ts b/packages/angular-query-experimental/src/index.ts index d50f2a6078..bad24075cc 100644 --- a/packages/angular-query-experimental/src/index.ts +++ b/packages/angular-query-experimental/src/index.ts @@ -48,16 +48,13 @@ export { injectQueryClient } from './inject-query-client' export type { DeveloperToolsFeature, - DevtoolsOptions, PersistQueryClientFeature, QueryFeature, - QueryFeatureKind, QueryFeatures, } from './providers' export { + provideAngularQuery, provideQueryClient, provideTanStackQuery, queryFeature, - queryFeatures, - withDevtools, } from './providers' diff --git a/packages/angular-query-experimental/src/infinite-query-options.ts b/packages/angular-query-experimental/src/infinite-query-options.ts index fdc7396c99..fc18c0e94d 100644 --- a/packages/angular-query-experimental/src/infinite-query-options.ts +++ b/packages/angular-query-experimental/src/infinite-query-options.ts @@ -84,7 +84,6 @@ export type DefinedInitialDataInfiniteOptions< * The `queryKey` will be tagged with the type from `queryFn`. * @param options - The infinite query options to tag with the type from `queryFn`. * @returns The tagged infinite query options. - * @public */ export function infiniteQueryOptions< TQueryFnData, @@ -116,7 +115,6 @@ export function infiniteQueryOptions< * The `queryKey` will be tagged with the type from `queryFn`. * @param options - The infinite query options to tag with the type from `queryFn`. * @returns The tagged infinite query options. - * @public */ export function infiniteQueryOptions< TQueryFnData, @@ -148,7 +146,6 @@ export function infiniteQueryOptions< * The `queryKey` will be tagged with the type from `queryFn`. * @param options - The infinite query options to tag with the type from `queryFn`. * @returns The tagged infinite query options. - * @public */ export function infiniteQueryOptions< TQueryFnData, @@ -180,7 +177,6 @@ export function infiniteQueryOptions< * The `queryKey` will be tagged with the type from `queryFn`. * @param options - The infinite query options to tag with the type from `queryFn`. * @returns The tagged infinite query options. - * @public */ export function infiniteQueryOptions(options: unknown) { return options diff --git a/packages/angular-query-experimental/src/inject-infinite-query.ts b/packages/angular-query-experimental/src/inject-infinite-query.ts index 6df26a0bb5..ee6de03240 100644 --- a/packages/angular-query-experimental/src/inject-infinite-query.ts +++ b/packages/angular-query-experimental/src/inject-infinite-query.ts @@ -37,7 +37,6 @@ export interface InjectInfiniteQueryOptions { * @param injectInfiniteQueryFn - A function that returns infinite query options. * @param options - Additional configuration. * @returns The infinite query result. - * @public */ export function injectInfiniteQuery< TQueryFnData, @@ -62,7 +61,6 @@ export function injectInfiniteQuery< * @param injectInfiniteQueryFn - A function that returns infinite query options. * @param options - Additional configuration. * @returns The infinite query result. - * @public */ export function injectInfiniteQuery< TQueryFnData, @@ -87,7 +85,6 @@ export function injectInfiniteQuery< * @param injectInfiniteQueryFn - A function that returns infinite query options. * @param options - Additional configuration. * @returns The infinite query result. - * @public */ export function injectInfiniteQuery< TQueryFnData, @@ -112,7 +109,6 @@ export function injectInfiniteQuery< * @param injectInfiniteQueryFn - A function that returns infinite query options. * @param options - Additional configuration. * @returns The infinite query result. - * @public */ export function injectInfiniteQuery( injectInfiniteQueryFn: () => CreateInfiniteQueryOptions, diff --git a/packages/angular-query-experimental/src/inject-is-mutating.ts b/packages/angular-query-experimental/src/inject-is-mutating.ts index 21de13b90e..8f11291b0e 100644 --- a/packages/angular-query-experimental/src/inject-is-mutating.ts +++ b/packages/angular-query-experimental/src/inject-is-mutating.ts @@ -26,7 +26,6 @@ export interface InjectIsMutatingOptions { * @param filters - The filters to apply to the query. * @param options - Additional configuration * @returns signal with number of fetching mutations. - * @public */ export function injectIsMutating( filters?: MutationFilters, diff --git a/packages/angular-query-experimental/src/inject-is-restoring.ts b/packages/angular-query-experimental/src/inject-is-restoring.ts index 92e50d4342..2c7fb3ae68 100644 --- a/packages/angular-query-experimental/src/inject-is-restoring.ts +++ b/packages/angular-query-experimental/src/inject-is-restoring.ts @@ -7,30 +7,27 @@ import { } from '@angular/core' import type { Provider, Signal } from '@angular/core' -const IS_RESTORING = new InjectionToken( - typeof ngDevMode === 'undefined' || ngDevMode - ? 'TANSTACK_QUERY_IS_RESTORING' - : '', - { - // Default value when not provided - factory: () => signal(false).asReadonly(), - }, -) - /** - * The `Injector` in which to create the isRestoring signal. - * - * If this is not provided, the current injection context will be used instead (via `inject`). + * Internal token used to track isRestoring state, accessible in public API through `injectIsRestoring` and set via `provideIsRestoring` */ +const IS_RESTORING = new InjectionToken('', { + // Default value when not provided + factory: () => signal(false).asReadonly(), +}) + interface InjectIsRestoringOptions { + /** + * The `Injector` to use to get the isRestoring signal. + * + * If this is not provided, the current injection context will be used instead (via `inject`). + */ injector?: Injector } /** * Injects a signal that tracks whether a restore is currently in progress. {@link injectQuery} and friends also check this internally to avoid race conditions between the restore and initializing queries. * @param options - Options for injectIsRestoring. - * @returns signal with boolean that indicates whether a restore is in progress. - * @public + * @returns readonly signal with boolean that indicates whether a restore is in progress. */ export function injectIsRestoring(options?: InjectIsRestoringOptions) { !options?.injector && assertInInjectionContext(injectIsRestoring) @@ -42,7 +39,6 @@ export function injectIsRestoring(options?: InjectIsRestoringOptions) { * Used by TanStack Query Angular persist client plugin to provide the signal that tracks the restore state * @param isRestoring - a readonly signal that returns a boolean * @returns Provider for the `isRestoring` signal - * @public */ export function provideIsRestoring(isRestoring: Signal): Provider { return { diff --git a/packages/angular-query-experimental/src/inject-mutation-state.ts b/packages/angular-query-experimental/src/inject-mutation-state.ts index 89419f1037..5f8996b2b1 100644 --- a/packages/angular-query-experimental/src/inject-mutation-state.ts +++ b/packages/angular-query-experimental/src/inject-mutation-state.ts @@ -42,9 +42,6 @@ function getResult( ) } -/** - * @public - */ export interface InjectMutationStateOptions { /** * The `Injector` in which to create the mutation state signal. @@ -59,7 +56,6 @@ export interface InjectMutationStateOptions { * @param injectMutationStateFn - A function that returns mutation state options. * @param options - The Angular injector to use. * @returns The signal that tracks the state of all mutations. - * @public */ export function injectMutationState( injectMutationStateFn: () => MutationStateOptions = () => ({}), diff --git a/packages/angular-query-experimental/src/inject-mutation.ts b/packages/angular-query-experimental/src/inject-mutation.ts index af4ebbd93b..21ddf5ff85 100644 --- a/packages/angular-query-experimental/src/inject-mutation.ts +++ b/packages/angular-query-experimental/src/inject-mutation.ts @@ -40,7 +40,6 @@ export interface InjectMutationOptions { * @param injectMutationFn - A function that returns mutation options. * @param options - Additional configuration * @returns The mutation. - * @public */ export function injectMutation< TData = unknown, diff --git a/packages/angular-query-experimental/src/inject-queries.ts b/packages/angular-query-experimental/src/inject-queries.ts index 1889e9560c..0cbcf3fb6a 100644 --- a/packages/angular-query-experimental/src/inject-queries.ts +++ b/packages/angular-query-experimental/src/inject-queries.ts @@ -116,7 +116,6 @@ type GetResults = /** * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param - * @public */ export type QueriesOptions< T extends Array, @@ -159,7 +158,6 @@ export type QueriesOptions< /** * QueriesResults reducer recursively maps type param to results - * @public */ export type QueriesResults< T extends Array, @@ -200,8 +198,6 @@ export type QueriesResults< * @param root0.queries * @param root0.combine * @param injector - * @param injector - * @public */ export function injectQueries< T extends Array, diff --git a/packages/angular-query-experimental/src/inject-query-client.ts b/packages/angular-query-experimental/src/inject-query-client.ts index 3ac28e4d5e..7cd29e3850 100644 --- a/packages/angular-query-experimental/src/inject-query-client.ts +++ b/packages/angular-query-experimental/src/inject-query-client.ts @@ -6,7 +6,6 @@ import type { InjectOptions } from '@angular/core' * Injects a `QueryClient` instance and allows passing a custom injector. * @param injectOptions - Type of the options argument to inject and optionally a custom injector. * @returns The `QueryClient` instance. - * @public * @deprecated Use `inject(QueryClient)` instead. * If you need to get a `QueryClient` from a custom injector, use `injector.get(QueryClient)`. * diff --git a/packages/angular-query-experimental/src/inject-query.ts b/packages/angular-query-experimental/src/inject-query.ts index 0defdf18e9..1dac0ab694 100644 --- a/packages/angular-query-experimental/src/inject-query.ts +++ b/packages/angular-query-experimental/src/inject-query.ts @@ -60,7 +60,6 @@ export interface InjectQueryOptions { * @param injectQueryFn - A function that returns query options. * @param options - Additional configuration * @returns The query result. - * @public * @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries */ export function injectQuery< @@ -112,7 +111,6 @@ export function injectQuery< * @param injectQueryFn - A function that returns query options. * @param options - Additional configuration * @returns The query result. - * @public * @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries */ export function injectQuery< @@ -164,7 +162,6 @@ export function injectQuery< * @param injectQueryFn - A function that returns query options. * @param options - Additional configuration * @returns The query result. - * @public * @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries */ export function injectQuery< @@ -216,7 +213,6 @@ export function injectQuery< * @param injectQueryFn - A function that returns query options. * @param options - Additional configuration * @returns The query result. - * @public * @see https://tanstack.com/query/latest/docs/framework/angular/guides/queries */ export function injectQuery( diff --git a/packages/angular-query-experimental/src/mutation-options.ts b/packages/angular-query-experimental/src/mutation-options.ts index 61dfc242cb..ec702cb45c 100644 --- a/packages/angular-query-experimental/src/mutation-options.ts +++ b/packages/angular-query-experimental/src/mutation-options.ts @@ -8,7 +8,8 @@ import type { CreateMutationOptions } from './types' * * ```ts * export class QueriesService { - * private http = inject(HttpClient); + * private http = inject(HttpClient) + * private queryClient = inject(QueryClient) * * updatePost(id: number) { * return mutationOptions({ @@ -26,10 +27,10 @@ import type { CreateMutationOptions } from './types' * queries = inject(QueriesService) * id = signal(0) * mutation = injectMutation(() => this.queries.updatePost(this.id())) - * } * - * save() { - * this.mutation.mutate({ title: 'New Title' }) + * save() { + * this.mutation.mutate({ title: 'New Title' }) + * } * } * ``` * @param options - The mutation options. @@ -71,7 +72,8 @@ export function mutationOptions< * * ```ts * export class QueriesService { - * private http = inject(HttpClient); + * private http = inject(HttpClient) + * private queryClient = inject(QueryClient) * * updatePost(id: number) { * return mutationOptions({ @@ -86,13 +88,13 @@ export function mutationOptions< * } * * class ComponentOrService { - * queries = inject(QueriesService) - * id = signal(0) + * queries = inject(QueriesService) + * id = signal(0) * mutation = injectMutation(() => this.queries.updatePost(this.id())) - * } * - * save() { - * this.mutation.mutate({ title: 'New Title' }) + * save() { + * this.mutation.mutate({ title: 'New Title' }) + * } * } * ``` * @param options - The mutation options. diff --git a/packages/angular-query-experimental/src/providers.ts b/packages/angular-query-experimental/src/providers.ts index d8c2806c10..3473c2affb 100644 --- a/packages/angular-query-experimental/src/providers.ts +++ b/packages/angular-query-experimental/src/providers.ts @@ -1,22 +1,6 @@ -import { - DestroyRef, - ENVIRONMENT_INITIALIZER, - InjectionToken, - PLATFORM_ID, - computed, - effect, - inject, -} from '@angular/core' -import { QueryClient, noop, onlineManager } from '@tanstack/query-core' -import { isPlatformBrowser } from '@angular/common' -import { isDevMode } from './util/is-dev-mode/is-dev-mode' +import { DestroyRef, InjectionToken, inject } from '@angular/core' +import { QueryClient } from '@tanstack/query-core' import type { Provider } from '@angular/core' -import type { - DevtoolsButtonPosition, - DevtoolsErrorType, - DevtoolsPosition, - TanstackQueryDevtools, -} from '@tanstack/query-devtools' /** * Usually {@link provideTanStackQuery} is used once to set up TanStack Query and the @@ -108,6 +92,10 @@ export function provideQueryClient( * // In a lazy loaded route or lazy loaded component's providers array: * providers: [provideTanStackQuery(MY_QUERY_CLIENT)] * ``` + * Using an InjectionToken for the QueryClient is an advanced optimization which allows TanStack Query to be absent from the main application bundle. + * This can be beneficial if you want to include TanStack Query on lazy loaded routes only while still sharing a `QueryClient`. + * + * Note that this is a small optimization and for most applications it's preferable to provide the `QueryClient` in the main application config. * @param queryClient - A `QueryClient` instance, or an `InjectionToken` which provides a `QueryClient`. * @param features - Optional features to configure additional Query functionality. * @returns A set of providers to set up TanStack Query. @@ -130,7 +118,6 @@ export function provideTanStackQuery( * Allows to configure a `QueryClient`. * @param queryClient - A `QueryClient` instance. * @returns A set of providers to set up TanStack Query. - * @public * @see https://tanstack.com/query/v5/docs/framework/angular/quick-start * @deprecated Use `provideTanStackQuery` instead. */ @@ -138,6 +125,10 @@ export function provideAngularQuery(queryClient: QueryClient): Array { return provideTanStackQuery(queryClient) } +const queryFeatures = ['Devtools', 'PersistQueryClient'] as const + +type QueryFeatureKind = (typeof queryFeatures)[number] + /** * Helper type to represent a Query feature. */ @@ -162,211 +153,21 @@ export function queryFeature( /** * A type alias that represents a feature which enables developer tools. * The type is used to describe the return value of the `withDevtools` function. - * @public * @see {@link withDevtools} */ -export type DeveloperToolsFeature = QueryFeature<'DeveloperTools'> +export type DeveloperToolsFeature = QueryFeature<'Devtools'> /** * A type alias that represents a feature which enables persistence. * The type is used to describe the return value of the `withPersistQueryClient` function. - * @public */ export type PersistQueryClientFeature = QueryFeature<'PersistQueryClient'> -/** - * Options for configuring the TanStack Query devtools. - * @public - */ -export interface DevtoolsOptions { - /** - * Set this true if you want the devtools to default to being open - */ - initialIsOpen?: boolean - /** - * The position of the TanStack logo to open and close the devtools panel. - * `top-left` | `top-right` | `bottom-left` | `bottom-right` | `relative` - * Defaults to `bottom-right`. - */ - buttonPosition?: DevtoolsButtonPosition - /** - * The position of the TanStack Query devtools panel. - * `top` | `bottom` | `left` | `right` - * Defaults to `bottom`. - */ - position?: DevtoolsPosition - /** - * Custom instance of QueryClient - */ - client?: QueryClient - /** - * Use this so you can define custom errors that can be shown in the devtools. - */ - errorTypes?: Array - /** - * Use this to pass a nonce to the style tag that is added to the document head. This is useful if you are using a Content Security Policy (CSP) nonce to allow inline styles. - */ - styleNonce?: string - /** - * Use this so you can attach the devtool's styles to a specific element in the DOM. - */ - shadowDOMTarget?: ShadowRoot - /** - * Set this to true to hide disabled queries from the devtools panel. - */ - hideDisabledQueries?: boolean - - /** - * Whether the developer tools should load. - * - `auto`- (Default) Lazily loads devtools when in development mode. Skips loading in production mode. - * - `true`- Always load the devtools, regardless of the environment. - * - `false`- Never load the devtools, regardless of the environment. - * - * You can use `true` and `false` to override loading developer tools from an environment file. - * For example, a test environment might run in production mode but you may want to load developer tools. - * - * Additionally, you can use a signal in the callback to dynamically load the devtools based on a condition. For example, - * a signal created from a RxJS observable that listens for a keyboard shortcut. - * - * **Example** - * ```ts - * withDevtools(() => ({ - * initialIsOpen: true, - * loadDevtools: inject(ExampleService).loadDevtools() - * })) - * ``` - */ - loadDevtools?: 'auto' | boolean -} - -/** - * Enables developer tools. - * - * **Example** - * - * ```ts - * export const appConfig: ApplicationConfig = { - * providers: [ - * provideTanStackQuery(new QueryClient(), withDevtools()) - * ] - * } - * ``` - * By default the devtools will be loaded when Angular runs in development mode and rendered in ``. - * - * If you need more control over when devtools are loaded, you can use the `loadDevtools` option. This is particularly useful if you want to load devtools based on environment configurations. For instance, you might have a test environment running in production mode but still require devtools to be available. - * - * If you need more control over where devtools are rendered, consider `injectDevtoolsPanel`. This allows rendering devtools inside your own devtools for example. - * @param withDevtoolsFn - A function that returns `DevtoolsOptions`. - * @returns A set of providers for use with `provideTanStackQuery`. - * @public - * @see {@link provideTanStackQuery} - * @see {@link DevtoolsOptions} - */ -export function withDevtools( - withDevtoolsFn?: () => DevtoolsOptions, -): DeveloperToolsFeature { - let providers: Array = [] - if (!isDevMode() && !withDevtoolsFn) { - providers = [] - } else { - providers = [ - { - // Do not use provideEnvironmentInitializer while Angular < v19 is supported - provide: ENVIRONMENT_INITIALIZER, - multi: true, - useFactory: () => { - if (!isPlatformBrowser(inject(PLATFORM_ID))) return noop - const injectedClient = inject(QueryClient, { - optional: true, - }) - const destroyRef = inject(DestroyRef) - - const options = computed(() => withDevtoolsFn?.() ?? {}) - - let devtools: TanstackQueryDevtools | null = null - let el: HTMLElement | null = null - - const shouldLoadToolsSignal = computed(() => { - const { loadDevtools } = options() - return typeof loadDevtools === 'boolean' - ? loadDevtools - : isDevMode() - }) - - const getResolvedQueryClient = () => { - const client = options().client ?? injectedClient - if (!client) { - throw new Error('No QueryClient found') - } - return client - } - - const destroyDevtools = () => { - devtools?.unmount() - el?.remove() - devtools = null - } - - return () => - effect(() => { - const shouldLoadTools = shouldLoadToolsSignal() - const { - client, - position, - errorTypes, - buttonPosition, - initialIsOpen, - } = options() - - if (devtools && !shouldLoadTools) { - destroyDevtools() - return - } else if (devtools && shouldLoadTools) { - client && devtools.setClient(client) - position && devtools.setPosition(position) - errorTypes && devtools.setErrorTypes(errorTypes) - buttonPosition && devtools.setButtonPosition(buttonPosition) - initialIsOpen && devtools.setInitialIsOpen(initialIsOpen) - return - } else if (!shouldLoadTools) { - return - } - - el = document.body.appendChild(document.createElement('div')) - el.classList.add('tsqd-parent-container') - - import('@tanstack/query-devtools').then((queryDevtools) => { - devtools = new queryDevtools.TanstackQueryDevtools({ - ...options(), - client: getResolvedQueryClient(), - queryFlavor: 'Angular Query', - version: '5', - onlineManager, - }) - - el && devtools.mount(el) - - // Unmount the devtools on application destroy - destroyRef.onDestroy(destroyDevtools) - }) - }) - }, - }, - ] - } - return queryFeature('DeveloperTools', providers) -} - /** * A type alias that represents all Query features available for use with `provideTanStackQuery`. * Features can be enabled by adding special functions to the `provideTanStackQuery` call. * See documentation for each symbol to find corresponding function name. See also `provideTanStackQuery` * documentation on how to use those functions. - * @public * @see {@link provideTanStackQuery} */ export type QueryFeatures = DeveloperToolsFeature | PersistQueryClientFeature - -export const queryFeatures = ['DeveloperTools', 'PersistQueryClient'] as const - -export type QueryFeatureKind = (typeof queryFeatures)[number] diff --git a/packages/angular-query-experimental/src/query-options.ts b/packages/angular-query-experimental/src/query-options.ts index e82540bee5..069472b903 100644 --- a/packages/angular-query-experimental/src/query-options.ts +++ b/packages/angular-query-experimental/src/query-options.ts @@ -72,7 +72,6 @@ export type DefinedInitialDataOptions< * ``` * @param options - The query options to tag with the type from `queryFn`. * @returns The tagged query options. - * @public */ export function queryOptions< TQueryFnData = unknown, @@ -105,7 +104,6 @@ export function queryOptions< * ``` * @param options - The query options to tag with the type from `queryFn`. * @returns The tagged query options. - * @public */ export function queryOptions< TQueryFnData = unknown, @@ -138,7 +136,6 @@ export function queryOptions< * ``` * @param options - The query options to tag with the type from `queryFn`. * @returns The tagged query options. - * @public */ export function queryOptions< TQueryFnData = unknown, @@ -171,7 +168,6 @@ export function queryOptions< * ``` * @param options - The query options to tag with the type from `queryFn`. * @returns The tagged query options. - * @public */ export function queryOptions(options: unknown) { return options diff --git a/packages/angular-query-experimental/src/types.ts b/packages/angular-query-experimental/src/types.ts index 7c5e3638c3..caee16822e 100644 --- a/packages/angular-query-experimental/src/types.ts +++ b/packages/angular-query-experimental/src/types.ts @@ -18,9 +18,6 @@ import type { import type { Signal } from '@angular/core' import type { MapToSignals } from './signal-proxy' -/** - * @public - */ export interface CreateBaseQueryOptions< TQueryFnData = unknown, TError = DefaultError, @@ -35,9 +32,6 @@ export interface CreateBaseQueryOptions< TQueryKey > {} -/** - * @public - */ export interface CreateQueryOptions< TQueryFnData = unknown, TError = DefaultError, @@ -54,18 +48,12 @@ export interface CreateQueryOptions< 'suspense' > {} -/** - * @public - */ type CreateStatusBasedQueryResult< TStatus extends QueryObserverResult['status'], TData = unknown, TError = DefaultError, > = Extract, { status: TStatus }> -/** - * @public - */ export interface BaseQueryNarrowing { isSuccess: ( this: CreateBaseQueryResult, @@ -90,9 +78,6 @@ export interface BaseQueryNarrowing { > } -/** - * @public - */ export interface CreateInfiniteQueryOptions< TQueryFnData = unknown, TError = DefaultError, @@ -110,9 +95,6 @@ export interface CreateInfiniteQueryOptions< 'suspense' > {} -/** - * @public - */ export type CreateBaseQueryResult< TData = unknown, TError = DefaultError, @@ -120,17 +102,11 @@ export type CreateBaseQueryResult< > = BaseQueryNarrowing & MapToSignals> -/** - * @public - */ export type CreateQueryResult< TData = unknown, TError = DefaultError, > = CreateBaseQueryResult -/** - * @public - */ export type DefinedCreateQueryResult< TData = unknown, TError = DefaultError, @@ -138,18 +114,12 @@ export type DefinedCreateQueryResult< > = BaseQueryNarrowing & MapToSignals> -/** - * @public - */ export type CreateInfiniteQueryResult< TData = unknown, TError = DefaultError, > = BaseQueryNarrowing & MapToSignals> -/** - * @public - */ export type DefinedCreateInfiniteQueryResult< TData = unknown, TError = DefaultError, @@ -169,9 +139,6 @@ export interface CreateMutationOptions< '_defaulted' > {} -/** - * @public - */ export type CreateMutateFunction< TData = unknown, TError = DefaultError, @@ -181,9 +148,6 @@ export type CreateMutateFunction< ...args: Parameters> ) => void -/** - * @public - */ export type CreateMutateAsyncFunction< TData = unknown, TError = DefaultError, @@ -191,9 +155,6 @@ export type CreateMutateAsyncFunction< TContext = unknown, > = MutateFunction -/** - * @public - */ export type CreateBaseMutationResult< TData = unknown, TError = DefaultError, @@ -206,9 +167,6 @@ export type CreateBaseMutationResult< mutateAsync: CreateMutateAsyncFunction } -/** - * @public - */ type CreateStatusBasedMutationResult< TStatus extends CreateBaseMutationResult['status'], TData = unknown, @@ -222,9 +180,6 @@ type CreateStatusBasedMutationResult< type SignalFunction any> = T & Signal> -/** - * @public - */ export interface BaseMutationNarrowing< TData = unknown, TError = DefaultError, @@ -301,9 +256,6 @@ export interface BaseMutationNarrowing< > } -/** - * @public - */ export type CreateMutationResult< TData = unknown, TError = DefaultError, diff --git a/packages/angular-query-experimental/src/util/is-dev-mode/is-dev-mode.ts b/packages/angular-query-experimental/src/util/is-dev-mode/is-dev-mode.ts deleted file mode 100644 index 5c18cfcf51..0000000000 --- a/packages/angular-query-experimental/src/util/is-dev-mode/is-dev-mode.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Re-export for mocking in tests - -export { isDevMode } from '@angular/core' diff --git a/packages/angular-query-experimental/vite.config.ts b/packages/angular-query-experimental/vite.config.ts index e977cbc0d0..aae5cde9af 100644 --- a/packages/angular-query-experimental/vite.config.ts +++ b/packages/angular-query-experimental/vite.config.ts @@ -111,9 +111,16 @@ export default mergeConfig( config, tanstackViteConfig({ cjs: false, - entry: ['./src/index.ts', './src/inject-queries-experimental/index.ts'], - exclude: ['./src/__tests__'], + entry: [ + './src/index.ts', + './src/inject-queries-experimental/index.ts', + './src/devtools-panel/index.ts', + './src/devtools-panel/stub.ts', + './src/devtools/index.ts', + './src/devtools/stub.ts', + ], + exclude: ['src/__tests__'], srcDir: './src', - tsconfigPath: './tsconfig.prod.json', + tsconfigPath: 'tsconfig.prod.json', }), ) diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 69650e4f90..3f455949cf 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -26,8 +26,8 @@ "test:types:ts53": "node ../../node_modules/typescript53/lib/tsc.js --build", "test:types:ts54": "node ../../node_modules/typescript54/lib/tsc.js --build", "test:types:ts55": "node ../../node_modules/typescript55/lib/tsc.js --build", - "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js --build", - "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js --build", + "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js --build", + "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js --build", "test:types:tscurrent": "tsc --build", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3939ea1d6b..17e4257268 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,6 @@ settings: excludeLinksFromLockfile: false overrides: - '@tanstack/angular-query-devtools-experimental': workspace:* '@tanstack/angular-query-experimental': workspace:* '@tanstack/eslint-plugin-query': workspace:* '@tanstack/query-async-storage-persister': workspace:* @@ -293,9 +292,6 @@ importers: '@angular/router': specifier: ^20.0.0 version: 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) - '@tanstack/angular-query-devtools-experimental': - specifier: workspace:* - version: link:../../../packages/angular-query-devtools-experimental '@tanstack/angular-query-experimental': specifier: workspace:* version: link:../../../packages/angular-query-experimental @@ -2243,39 +2239,11 @@ importers: specifier: ^2.2.8 version: 2.2.8(typescript@5.8.3) - packages/angular-query-devtools-experimental: - dependencies: - '@angular/common': - specifier: '>=16.0.0' - version: 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@tanstack/query-devtools': - specifier: workspace:* - version: link:../query-devtools - devDependencies: - '@angular/core': - specifier: ^20.0.0 - version: 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': - specifier: ^20.0.0 - version: 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) - '@tanstack/angular-query-experimental': - specifier: workspace:* - version: link:../angular-query-experimental - eslint-plugin-jsdoc: - specifier: ^50.5.0 - version: 50.5.0(eslint@9.29.0(jiti@2.4.2)) - npm-run-all2: - specifier: ^5.0.0 - version: 5.0.2 - packages/angular-query-experimental: dependencies: '@tanstack/query-core': specifier: workspace:* version: link:../query-core - '@tanstack/query-devtools': - specifier: workspace:* - version: link:../query-devtools devDependencies: '@angular/common': specifier: ^20.0.0 @@ -2307,6 +2275,10 @@ importers: vite-tsconfig-paths: specifier: ^5.1.4 version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + optionalDependencies: + '@tanstack/query-devtools': + specifier: workspace:* + version: link:../query-devtools publishDirectory: dist packages/angular-query-persist-client: diff --git a/scripts/publish.ts b/scripts/publish.ts index a643bdf266..4b0d1e176d 100644 --- a/scripts/publish.ts +++ b/scripts/publish.ts @@ -82,10 +82,6 @@ await publish({ name: '@tanstack/vue-query-devtools', packageDir: 'packages/vue-query-devtools', }, - { - name: '@tanstack/angular-query-devtools-experimental', - packageDir: 'packages/angular-query-devtools-experimental', - }, { name: '@tanstack/angular-query-experimental', packageDir: 'packages/angular-query-experimental', From 66df21102f9a17823e7c383b80c729d03b68bb7b Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 15 Sep 2025 22:12:11 +0000 Subject: [PATCH 408/432] release: v5.88.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 407267eb71..af145ab59d 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 5dfc326857..ee09dca976 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.87.4", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 5191271f2a..c27838937f 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 9aaf49880f..5e067de33a 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index e398fa160a..9bdf3fffb8 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index b2d1466ccb..093e317bd3 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 034b00808a..c01b4dcd4b 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 4053824e20..635af40e72 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index b665016471..7a96c7897d 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 88d8f835eb..18278b9648 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index cac4a3a6de..0ba49720e9 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.87.5", + "@tanstack/angular-query-experimental": "^5.88.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 066abd0b3b..642547ed4b 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.87.5", + "version": "5.88.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", From 0e99327e15e9c7a2c0a0c38c0a2e24f84c32d271 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Sep 2025 10:13:05 +0200 Subject: [PATCH 409/432] chore(deps): update marocchino/sticky-pull-request-comment digest to a071bc9 (#9627) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 93c879bcca..611a6b7d93 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -65,7 +65,7 @@ jobs: run: | echo "COMMIT_SHA=${{ github.event.pull_request.head.sha || github.sha }}" >> $GITHUB_ENV - name: Preview Bundle Size - uses: marocchino/sticky-pull-request-comment@9c40848920de7cd32a71773ba792d8b04f03bf7a + uses: marocchino/sticky-pull-request-comment@a071bc9e79df3f13d7cd94d06ab2ef1ec959e9fa with: message: | Sizes for commit ${{ env.COMMIT_SHA }}: From a2151d28e1cc2a484634b93841d08d24ab683886 Mon Sep 17 00:00:00 2001 From: Josh <37798644+joshuaellis@users.noreply.github.com> Date: Tue, 16 Sep 2025 09:22:43 +0100 Subject: [PATCH 410/432] feat(query-core): add context to mutationfn & mutation callbacks (#9615) * feat(query-core): add context to mutationfn Co-Authored-By: travikk <627275+travikk@users.noreply.github.com> * fix(query-core): mutation onSuccess scope param should also be undefined Co-Authored-By: travikk <627275+travikk@users.noreply.github.com> * feat: add scope deprecate context on mutation state * feat(query-core): add mutation context to all mutation callbacks * chore: pr amends Co-Authored-By: Dominik Dorfmeister <1021430+TkDodo@users.noreply.github.com> * test(unit): update to handle context in mutation callbacks * chore: rename to onMutateResult * chore: revert context deprecation on MutationState --------- Co-authored-by: travikk <627275+travikk@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister <1021430+TkDodo@users.noreply.github.com> Co-authored-by: Dominik Dorfmeister --- docs/framework/angular/guides/mutations.md | 48 +++++----- .../angular/guides/optimistic-updates.md | 46 ++++----- .../reference/functions/injectmutation.md | 10 +- .../reference/functions/mutationoptions.md | 20 ++-- .../interfaces/basemutationnarrowing.md | 44 +++++---- .../interfaces/createmutationoptions.md | 6 +- .../type-aliases/createbasemutationresult.md | 26 +++-- .../type-aliases/createmutateasyncfunction.md | 8 +- .../type-aliases/createmutatefunction.md | 8 +- .../type-aliases/createmutationresult.md | 10 +- docs/framework/react/guides/mutations.md | 48 +++++----- .../react/guides/optimistic-updates.md | 45 ++++----- docs/framework/react/reference/useMutation.md | 17 ++-- .../reference/functions/createmutation.md | 10 +- .../type-aliases/createbasemutationresult.md | 26 +++-- .../type-aliases/createmutateasyncfunction.md | 8 +- .../type-aliases/createmutatefunction.md | 8 +- .../type-aliases/createmutationoptions.md | 13 +-- .../type-aliases/createmutationresult.md | 9 +- docs/reference/MutationCache.md | 10 +- .../src/pages/index.tsx | 24 +++-- .../src/__tests__/mutation-options.test-d.ts | 33 ++++++- .../src/inject-mutation.ts | 20 ++-- .../src/mutation-options.ts | 18 ++-- .../angular-query-experimental/src/types.ts | 63 ++++++------ .../mutation-property-order.rule.test.ts | 12 +-- .../src/__tests__/hydration.test.tsx | 1 + .../src/__tests__/mutationCache.test.tsx | 40 ++++++-- .../src/__tests__/mutationObserver.test.tsx | 29 +++++- .../src/__tests__/mutations.test.tsx | 18 ++-- .../query-core/src/__tests__/utils.test.tsx | 1 + packages/query-core/src/mutation.ts | 85 +++++++++++----- packages/query-core/src/mutationCache.ts | 32 ++++--- packages/query-core/src/mutationObserver.ts | 84 +++++++++++----- packages/query-core/src/queryClient.ts | 4 +- packages/query-core/src/types.ts | 96 +++++++++++++------ packages/query-core/src/utils.ts | 4 +- .../src/__tests__/mutationOptions.test-d.tsx | 33 ++++++- .../src/__tests__/useMutation.test.tsx | 38 +++++++- packages/react-query/src/mutationOptions.ts | 21 ++-- packages/react-query/src/types.ts | 33 ++++--- packages/react-query/src/useMutation.ts | 10 +- .../src/__tests__/useMutation.test.tsx | 29 +++++- packages/solid-query/src/types.ts | 35 ++++--- packages/solid-query/src/useMutation.ts | 28 +++--- packages/svelte-query/src/createMutation.ts | 18 ++-- packages/svelte-query/src/types.ts | 33 ++++--- packages/vue-query/src/mutationCache.ts | 4 +- packages/vue-query/src/queryClient.ts | 4 +- packages/vue-query/src/useMutation.ts | 51 ++++++---- 50 files changed, 843 insertions(+), 478 deletions(-) diff --git a/docs/framework/angular/guides/mutations.md b/docs/framework/angular/guides/mutations.md index 93405979ba..f511808231 100644 --- a/docs/framework/angular/guides/mutations.md +++ b/docs/framework/angular/guides/mutations.md @@ -89,20 +89,20 @@ export class TodosComponent { ```ts mutation = injectMutation(() => ({ mutationFn: addTodo, - onMutate: (variables) => { + onMutate: (variables, context) => { // A mutation is about to happen! - // Optionally return a context containing data to use when for example rolling back + // Optionally return a result containing data to use when for example rolling back return { id: 1 } }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // An error happened! - console.log(`rolling back optimistic update with id ${context.id}`) + console.log(`rolling back optimistic update with id ${onMutateResult.id}`) }, - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // Boom baby! }, - onSettled: (data, error, variables, context) => { + onSettled: (data, error, variables, onMutateResult, context) => { // Error or success... doesn't matter! }, })) @@ -129,25 +129,25 @@ mutation = injectMutation(() => ({ ```ts mutation = injectMutation(() => ({ mutationFn: addTodo, - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // I will fire first }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // I will fire first }, - onSettled: (data, error, variables, context) => { + onSettled: (data, error, variables, onMutateResult, context) => { // I will fire first }, })) mutation.mutate(todo, { - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // I will fire second! }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // I will fire second! }, - onSettled: (data, error, variables, context) => { + onSettled: (data, error, variables, onMutateResult, context) => { // I will fire second! }, }) @@ -160,7 +160,7 @@ mutation.mutate(todo, { export class Example { mutation = injectMutation(() => ({ mutationFn: addTodo, - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // Will be called 3 times }, })) @@ -168,7 +168,7 @@ export class Example { doMutations() { ;['Todo 1', 'Todo 2', 'Todo 3'].forEach((todo) => { this.mutation.mutate(todo, { - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // Will execute only once, for the last mutation (Todo 3), // regardless which mutation resolves first }, @@ -213,31 +213,31 @@ const queryClient = new QueryClient() // Define the "addTodo" mutation queryClient.setMutationDefaults(['addTodo'], { mutationFn: addTodo, - onMutate: async (variables) => { + onMutate: async (variables, context) => { // Cancel current queries for the todos list - await queryClient.cancelQueries({ queryKey: ['todos'] }) + await context.client.cancelQueries({ queryKey: ['todos'] }) // Create optimistic todo const optimisticTodo = { id: uuid(), title: variables.title } // Add optimistic todo to todos list - queryClient.setQueryData(['todos'], (old) => [...old, optimisticTodo]) + context.client.setQueryData(['todos'], (old) => [...old, optimisticTodo]) - // Return context with the optimistic todo + // Return result with the optimistic todo return { optimisticTodo } }, - onSuccess: (result, variables, context) => { + onSuccess: (result, variables, onMutateResult, context) => { // Replace optimistic todo in the todos list with the result - queryClient.setQueryData(['todos'], (old) => + context.client.setQueryData(['todos'], (old) => old.map((todo) => - todo.id === context.optimisticTodo.id ? result : todo, + todo.id === onMutateResult.optimisticTodo.id ? result : todo, ), ) }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // Remove optimistic todo from the todos list - queryClient.setQueryData(['todos'], (old) => - old.filter((todo) => todo.id !== context.optimisticTodo.id), + context.client.setQueryData(['todos'], (old) => + old.filter((todo) => todo.id !== onMutateResult.optimisticTodo.id), ) }, retry: 3, diff --git a/docs/framework/angular/guides/optimistic-updates.md b/docs/framework/angular/guides/optimistic-updates.md index a28bdf8fff..d87a6c28b7 100644 --- a/docs/framework/angular/guides/optimistic-updates.md +++ b/docs/framework/angular/guides/optimistic-updates.md @@ -87,28 +87,28 @@ queryClient = inject(QueryClient) updateTodo = injectMutation(() => ({ mutationFn: updateTodo, // When mutate is called: - onMutate: async (newTodo) => { + onMutate: async (newTodo, context) => { // Cancel any outgoing refetches // (so they don't overwrite our optimistic update) - await this.queryClient.cancelQueries({ queryKey: ['todos'] }) + await context.client.cancelQueries({ queryKey: ['todos'] }) // Snapshot the previous value - const previousTodos = client.getQueryData(['todos']) + const previousTodos = context.client.getQueryData(['todos']) // Optimistically update to the new value - this.queryClient.setQueryData(['todos'], (old) => [...old, newTodo]) + context.client.setQueryData(['todos'], (old) => [...old, newTodo]) - // Return a context object with the snapshotted value + // Return a result object with the snapshotted value return { previousTodos } }, // If the mutation fails, - // use the context returned from onMutate to roll back - onError: (err, newTodo, context) => { - client.setQueryData(['todos'], context.previousTodos) + // use the result returned from onMutate to roll back + onError: (err, newTodo, onMutateResult, context) => { + context.client.setQueryData(['todos'], onMutateResult.previousTodos) }, // Always refetch after error or success: - onSettled: () => { - this.queryClient.invalidateQueries({ queryKey: ['todos'] }) + onSettled: (data, error, variables, onMutateResult, context) => { + context.client.invalidateQueries({ queryKey: ['todos'] }) }, })) ``` @@ -122,30 +122,30 @@ queryClient = inject(QueryClient) updateTodo = injectMutation(() => ({ mutationFn: updateTodo, // When mutate is called: - onMutate: async (newTodo) => { + onMutate: async (newTodo, context) => { // Cancel any outgoing refetches // (so they don't overwrite our optimistic update) - await this.queryClient.cancelQueries({ queryKey: ['todos', newTodo.id] }) + await context.client.cancelQueries({ queryKey: ['todos', newTodo.id] }) // Snapshot the previous value - const previousTodo = this.queryClient.getQueryData(['todos', newTodo.id]) + const previousTodo = context.client.getQueryData(['todos', newTodo.id]) // Optimistically update to the new value - this.queryClient.setQueryData(['todos', newTodo.id], newTodo) + context.client.setQueryData(['todos', newTodo.id], newTodo) - // Return a context with the previous and new todo + // Return a result with the previous and new todo return { previousTodo, newTodo } }, - // If the mutation fails, use the context we returned above - onError: (err, newTodo, context) => { - this.queryClient.setQueryData( - ['todos', context.newTodo.id], - context.previousTodo, + // If the mutation fails, use the result we returned above + onError: (err, newTodo, onMutateResult, context) => { + context.client.setQueryData( + ['todos', onMutateResult.newTodo.id], + onMutateResult.previousTodo, ) }, // Always refetch after error or success: - onSettled: (newTodo) => { - this.queryClient.invalidateQueries({ queryKey: ['todos', newTodo.id] }) + onSettled: (newTodo, error, variables, onMutateResult, context) => { + context.client.invalidateQueries({ queryKey: ['todos', newTodo.id] }) }, })) ``` @@ -157,7 +157,7 @@ updateTodo = injectMutation(() => ({ injectMutation({ mutationFn: updateTodo, // ... - onSettled: (newTodo, error, variables, context) => { + onSettled: (newTodo, error, variables, onMutateResult, context) => { if (error) { // do something } diff --git a/docs/framework/angular/reference/functions/injectmutation.md b/docs/framework/angular/reference/functions/injectmutation.md index bb6abf188f..8a18f6d36c 100644 --- a/docs/framework/angular/reference/functions/injectmutation.md +++ b/docs/framework/angular/reference/functions/injectmutation.md @@ -8,10 +8,10 @@ title: injectMutation # Function: injectMutation() ```ts -function injectMutation( +function injectMutation( injectMutationFn, options?, -): CreateMutationResult +): CreateMutationResult ``` Defined in: [inject-mutation.ts:44](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/inject-mutation.ts#L44) @@ -28,13 +28,13 @@ Unlike queries, mutations are not run automatically. โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Parameters ### injectMutationFn -() => [`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\> +() => [`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\> A function that returns mutation options. @@ -46,6 +46,6 @@ Additional configuration ## Returns -[`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\> +[`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\> The mutation. diff --git a/docs/framework/angular/reference/functions/mutationoptions.md b/docs/framework/angular/reference/functions/mutationoptions.md index 46e3844f40..0284da3771 100644 --- a/docs/framework/angular/reference/functions/mutationoptions.md +++ b/docs/framework/angular/reference/functions/mutationoptions.md @@ -45,10 +45,10 @@ The mutation options. ## Call Signature ```ts -function mutationOptions( +function mutationOptions( options, ): WithRequired< - CreateMutationOptions, + CreateMutationOptions, 'mutationKey' > ``` @@ -94,19 +94,19 @@ class ComponentOrService { โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ### Parameters #### options -`WithRequired`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> +`WithRequired`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\> The mutation options. ### Returns -`WithRequired`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> +`WithRequired`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\> Mutation options. @@ -119,10 +119,10 @@ The mutation options. ## Call Signature ```ts -function mutationOptions( +function mutationOptions( options, ): Omit< - CreateMutationOptions, + CreateMutationOptions, 'mutationKey' > ``` @@ -168,19 +168,19 @@ class ComponentOrService { โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ### Parameters #### options -`Omit`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> +`Omit`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\> The mutation options. ### Returns -`Omit`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>, `"mutationKey"`\> +`Omit`\<[`CreateMutationOptions`](../../interfaces/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"mutationKey"`\> Mutation options. diff --git a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md index 8ea0f00f90..157ed2d305 100644 --- a/docs/framework/angular/reference/interfaces/basemutationnarrowing.md +++ b/docs/framework/angular/reference/interfaces/basemutationnarrowing.md @@ -5,7 +5,7 @@ title: BaseMutationNarrowing -# Interface: BaseMutationNarrowing\ +# Interface: BaseMutationNarrowing\ Defined in: [types.ts:183](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L183) @@ -17,7 +17,7 @@ Defined in: [types.ts:183](https://github.com/TanStack/query/blob/main/packages/ โ€ข **TVariables** = `unknown` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Properties @@ -29,16 +29,18 @@ isError: SignalFunction< TData, TError, TVariables, - TContext, + TOnMutateResult, Override< - MutationObserverErrorResult, - { mutate: CreateMutateFunction } + MutationObserverErrorResult, + { + mutate: CreateMutateFunction + } > & { mutateAsync: CreateMutateAsyncFunction< TData, TError, TVariables, - TContext + TOnMutateResult > } > @@ -57,16 +59,18 @@ isIdle: SignalFunction< TData, TError, TVariables, - TContext, + TOnMutateResult, Override< - MutationObserverIdleResult, - { mutate: CreateMutateFunction } + MutationObserverIdleResult, + { + mutate: CreateMutateFunction + } > & { mutateAsync: CreateMutateAsyncFunction< TData, TError, TVariables, - TContext + TOnMutateResult > } > @@ -85,16 +89,18 @@ isPending: SignalFunction< TData, TError, TVariables, - TContext, + TOnMutateResult, Override< - MutationObserverLoadingResult, - { mutate: CreateMutateFunction } + MutationObserverLoadingResult, + { + mutate: CreateMutateFunction + } > & { mutateAsync: CreateMutateAsyncFunction< TData, TError, TVariables, - TContext + TOnMutateResult > } > @@ -113,16 +119,18 @@ isSuccess: SignalFunction< TData, TError, TVariables, - TContext, + TOnMutateResult, Override< - MutationObserverSuccessResult, - { mutate: CreateMutateFunction } + MutationObserverSuccessResult, + { + mutate: CreateMutateFunction + } > & { mutateAsync: CreateMutateAsyncFunction< TData, TError, TVariables, - TContext + TOnMutateResult > } > diff --git a/docs/framework/angular/reference/interfaces/createmutationoptions.md b/docs/framework/angular/reference/interfaces/createmutationoptions.md index ebc47be190..372be3a305 100644 --- a/docs/framework/angular/reference/interfaces/createmutationoptions.md +++ b/docs/framework/angular/reference/interfaces/createmutationoptions.md @@ -5,13 +5,13 @@ title: CreateMutationOptions -# Interface: CreateMutationOptions\ +# Interface: CreateMutationOptions\ Defined in: [types.ts:132](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L132) ## Extends -- `OmitKeyof`\<`MutationObserverOptions`\<`TData`, `TError`, `TVariables`, `TContext`\>, `"_defaulted"`\> +- `OmitKeyof`\<`MutationObserverOptions`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>, `"_defaulted"`\> ## Type Parameters @@ -21,4 +21,4 @@ Defined in: [types.ts:132](https://github.com/TanStack/query/blob/main/packages/ โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` diff --git a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md index 39441b5f12..4c33f30311 100644 --- a/docs/framework/angular/reference/type-aliases/createbasemutationresult.md +++ b/docs/framework/angular/reference/type-aliases/createbasemutationresult.md @@ -5,16 +5,17 @@ title: CreateBaseMutationResult -# Type Alias: CreateBaseMutationResult\ +# Type Alias: CreateBaseMutationResult\ ```ts -type CreateBaseMutationResult = Override< - MutationObserverResult, - { - mutate: CreateMutateFunction - } -> & - object +type CreateBaseMutationResult = + Override< + MutationObserverResult, + { + mutate: CreateMutateFunction + } + > & + object ``` Defined in: [types.ts:158](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L158) @@ -24,7 +25,12 @@ Defined in: [types.ts:158](https://github.com/TanStack/query/blob/main/packages/ ### mutateAsync ```ts -mutateAsync: CreateMutateAsyncFunction +mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TOnMutateResult +> ``` ## Type Parameters @@ -35,4 +41,4 @@ mutateAsync: CreateMutateAsyncFunction โ€ข **TVariables** = `unknown` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` diff --git a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md index abe1503a1d..d99ecc82d3 100644 --- a/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md +++ b/docs/framework/angular/reference/type-aliases/createmutateasyncfunction.md @@ -5,11 +5,11 @@ title: CreateMutateAsyncFunction -# Type Alias: CreateMutateAsyncFunction\ +# Type Alias: CreateMutateAsyncFunction\ ```ts -type CreateMutateAsyncFunction = - MutateFunction +type CreateMutateAsyncFunction = + MutateFunction ``` Defined in: [types.ts:151](https://github.com/TanStack/query/blob/main/packages/angular-query-experimental/src/types.ts#L151) @@ -22,4 +22,4 @@ Defined in: [types.ts:151](https://github.com/TanStack/query/blob/main/packages/ โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` diff --git a/docs/framework/angular/reference/type-aliases/createmutatefunction.md b/docs/framework/angular/reference/type-aliases/createmutatefunction.md index dba0f7aa6e..424686ed75 100644 --- a/docs/framework/angular/reference/type-aliases/createmutatefunction.md +++ b/docs/framework/angular/reference/type-aliases/createmutatefunction.md @@ -5,10 +5,10 @@ title: CreateMutateFunction -# Type Alias: CreateMutateFunction()\ +# Type Alias: CreateMutateFunction()\ ```ts -type CreateMutateFunction = ( +type CreateMutateFunction = ( ...args ) => void ``` @@ -23,13 +23,13 @@ Defined in: [types.ts:142](https://github.com/TanStack/query/blob/main/packages/ โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Parameters ### args -...`Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\> +...`Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>\> ## Returns diff --git a/docs/framework/angular/reference/type-aliases/createmutationresult.md b/docs/framework/angular/reference/type-aliases/createmutationresult.md index 0800010d05..0b2ceb3a70 100644 --- a/docs/framework/angular/reference/type-aliases/createmutationresult.md +++ b/docs/framework/angular/reference/type-aliases/createmutationresult.md @@ -5,11 +5,11 @@ title: CreateMutationResult -# Type Alias: CreateMutationResult\ +# Type Alias: CreateMutationResult\ ```ts -type CreateMutationResult = - BaseMutationNarrowing & +type CreateMutationResult = + BaseMutationNarrowing & MapToSignals> ``` @@ -23,6 +23,6 @@ Defined in: [types.ts:259](https://github.com/TanStack/query/blob/main/packages/ โ€ข **TVariables** = `unknown` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` -โ€ข **TState** = `CreateStatusBasedMutationResult`\<[`CreateBaseMutationResult`](../createbasemutationresult.md)\[`"status"`\], `TData`, `TError`, `TVariables`, `TContext`\> +โ€ข **TState** = `CreateStatusBasedMutationResult`\<[`CreateBaseMutationResult`](../createbasemutationresult.md)\[`"status"`\], `TData`, `TError`, `TVariables`, `TOnMutateResult`\> diff --git a/docs/framework/react/guides/mutations.md b/docs/framework/react/guides/mutations.md index 22af057a3e..925954bf09 100644 --- a/docs/framework/react/guides/mutations.md +++ b/docs/framework/react/guides/mutations.md @@ -143,20 +143,20 @@ const CreateTodo = () => { ```tsx useMutation({ mutationFn: addTodo, - onMutate: (variables) => { + onMutate: (variables, context) => { // A mutation is about to happen! - // Optionally return a context containing data to use when for example rolling back + // Optionally return a result containing data to use when for example rolling back return { id: 1 } }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // An error happened! - console.log(`rolling back optimistic update with id ${context.id}`) + console.log(`rolling back optimistic update with id ${onMutateResult.id}`) }, - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // Boom baby! }, - onSettled: (data, error, variables, context) => { + onSettled: (data, error, variables, onMutateResult, context) => { // Error or success... doesn't matter! }, }) @@ -189,25 +189,25 @@ You might find that you want to **trigger additional callbacks** beyond the ones ```tsx useMutation({ mutationFn: addTodo, - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // I will fire first }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // I will fire first }, - onSettled: (data, error, variables, context) => { + onSettled: (data, error, variables, onMutateResult, context) => { // I will fire first }, }) mutate(todo, { - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // I will fire second! }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // I will fire second! }, - onSettled: (data, error, variables, context) => { + onSettled: (data, error, variables, onMutateResult, context) => { // I will fire second! }, }) @@ -226,7 +226,7 @@ There is a slight difference in handling `onSuccess`, `onError` and `onSettled` ```tsx useMutation({ mutationFn: addTodo, - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // Will be called 3 times }, }) @@ -234,7 +234,7 @@ useMutation({ const todos = ['Todo 1', 'Todo 2', 'Todo 3'] todos.forEach((todo) => { mutate(todo, { - onSuccess: (data, variables, context) => { + onSuccess: (data, variables, onMutateResult, context) => { // Will execute only once, for the last mutation (Todo 3), // regardless which mutation resolves first }, @@ -294,31 +294,31 @@ const queryClient = new QueryClient() // Define the "addTodo" mutation queryClient.setMutationDefaults(['addTodo'], { mutationFn: addTodo, - onMutate: async (variables) => { + onMutate: async (variables, context) => { // Cancel current queries for the todos list - await queryClient.cancelQueries({ queryKey: ['todos'] }) + await context.client.cancelQueries({ queryKey: ['todos'] }) // Create optimistic todo const optimisticTodo = { id: uuid(), title: variables.title } // Add optimistic todo to todos list - queryClient.setQueryData(['todos'], (old) => [...old, optimisticTodo]) + context.client.setQueryData(['todos'], (old) => [...old, optimisticTodo]) - // Return context with the optimistic todo + // Return a result with the optimistic todo return { optimisticTodo } }, - onSuccess: (result, variables, context) => { + onSuccess: (result, variables, onMutateResult, context) => { // Replace optimistic todo in the todos list with the result - queryClient.setQueryData(['todos'], (old) => + context.client.setQueryData(['todos'], (old) => old.map((todo) => - todo.id === context.optimisticTodo.id ? result : todo, + todo.id === onMutateResult.optimisticTodo.id ? result : todo, ), ) }, - onError: (error, variables, context) => { + onError: (error, variables, onMutateResult, context) => { // Remove optimistic todo from the todos list - queryClient.setQueryData(['todos'], (old) => - old.filter((todo) => todo.id !== context.optimisticTodo.id), + context.client.setQueryData(['todos'], (old) => + old.filter((todo) => todo.id !== onMutateResult.optimisticTodo.id), ) }, retry: 3, diff --git a/docs/framework/react/guides/optimistic-updates.md b/docs/framework/react/guides/optimistic-updates.md index 1c04627646..27b958dd97 100644 --- a/docs/framework/react/guides/optimistic-updates.md +++ b/docs/framework/react/guides/optimistic-updates.md @@ -99,27 +99,28 @@ const queryClient = useQueryClient() useMutation({ mutationFn: updateTodo, // When mutate is called: - onMutate: async (newTodo) => { + onMutate: async (newTodo, context) => { // Cancel any outgoing refetches // (so they don't overwrite our optimistic update) - await queryClient.cancelQueries({ queryKey: ['todos'] }) + await context.client.cancelQueries({ queryKey: ['todos'] }) // Snapshot the previous value - const previousTodos = queryClient.getQueryData(['todos']) + const previousTodos = context.client.getQueryData(['todos']) // Optimistically update to the new value - queryClient.setQueryData(['todos'], (old) => [...old, newTodo]) + context.client.setQueryData(['todos'], (old) => [...old, newTodo]) - // Return a context object with the snapshotted value + // Return a result with the snapshotted value return { previousTodos } }, // If the mutation fails, - // use the context returned from onMutate to roll back - onError: (err, newTodo, context) => { - queryClient.setQueryData(['todos'], context.previousTodos) + // use the result returned from onMutate to roll back + onError: (err, newTodo, onMutateResult, context) => { + context.client.setQueryData(['todos'], onMutateResult.previousTodos) }, // Always refetch after error or success: - onSettled: () => queryClient.invalidateQueries({ queryKey: ['todos'] }), + onSettled: (data, error, variables, onMutateResult, context) => + context.client.invalidateQueries({ queryKey: ['todos'] }), }) ``` @@ -133,30 +134,30 @@ useMutation({ useMutation({ mutationFn: updateTodo, // When mutate is called: - onMutate: async (newTodo) => { + onMutate: async (newTodo, context) => { // Cancel any outgoing refetches // (so they don't overwrite our optimistic update) - await queryClient.cancelQueries({ queryKey: ['todos', newTodo.id] }) + await context.client.cancelQueries({ queryKey: ['todos', newTodo.id] }) // Snapshot the previous value - const previousTodo = queryClient.getQueryData(['todos', newTodo.id]) + const previousTodo = context.client.getQueryData(['todos', newTodo.id]) // Optimistically update to the new value - queryClient.setQueryData(['todos', newTodo.id], newTodo) + context.client.setQueryData(['todos', newTodo.id], newTodo) - // Return a context with the previous and new todo + // Return a result with the previous and new todo return { previousTodo, newTodo } }, - // If the mutation fails, use the context we returned above - onError: (err, newTodo, context) => { - queryClient.setQueryData( - ['todos', context.newTodo.id], - context.previousTodo, + // If the mutation fails, use the result we returned above + onError: (err, newTodo, onMutateResult, context) => { + context.client.setQueryData( + ['todos', onMutateResult.newTodo.id], + onMutateResult.previousTodo, ) }, // Always refetch after error or success: - onSettled: (newTodo) => - queryClient.invalidateQueries({ queryKey: ['todos', newTodo.id] }), + onSettled: (newTodo, error, variables, onMutateResult, context) => + context.client.invalidateQueries({ queryKey: ['todos', newTodo.id] }), }) ``` @@ -170,7 +171,7 @@ You can also use the `onSettled` function in place of the separate `onError` and useMutation({ mutationFn: updateTodo, // ... - onSettled: async (newTodo, error, variables, context) => { + onSettled: async (newTodo, error, variables, onMutateResult, context) => { if (error) { // do something } diff --git a/docs/framework/react/reference/useMutation.md b/docs/framework/react/reference/useMutation.md index 76d88900df..889bf08423 100644 --- a/docs/framework/react/reference/useMutation.md +++ b/docs/framework/react/reference/useMutation.md @@ -48,10 +48,11 @@ mutate(variables, { **Parameter1 (Options)** -- `mutationFn: (variables: TVariables) => Promise` +- `mutationFn: (variables: TVariables, context: MutationFunctionContext) => Promise` - **Required, but only if no default mutation function has been defined** - A function that performs an asynchronous task and returns a promise. - `variables` is an object that `mutate` will pass to your `mutationFn` + - `context` is an object that `mutate` will pass to your `mutationFn`. Contains reference to `QueryClient`, `mutationKey` and optional `meta` object. - `gcTime: number | Infinity` - The time in milliseconds that unused/inactive cache data remains in memory. When a mutation's cache becomes unused or inactive, that cache data will be garbage collected after this duration. When different cache times are specified, the longest one will be used. - If set to `Infinity`, will disable garbage collection @@ -63,20 +64,20 @@ mutate(variables, { - Optional - defaults to `'online'` - see [Network Mode](../../guides/network-mode.md) for more information. -- `onMutate: (variables: TVariables) => Promise | TContext | void` +- `onMutate: (variables: TVariables) => Promise | TOnMutateResult | void` - Optional - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds - The value returned from this function will be passed to both the `onError` and `onSettled` functions in the event of a mutation failure and can be useful for rolling back optimistic updates. -- `onSuccess: (data: TData, variables: TVariables, context: TContext) => Promise | unknown` +- `onSuccess: (data: TData, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => Promise | unknown` - Optional - This function will fire when the mutation is successful and will be passed the mutation's result. - If a promise is returned, it will be awaited and resolved before proceeding -- `onError: (err: TError, variables: TVariables, context?: TContext) => Promise | unknown` +- `onError: (err: TError, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => Promise | unknown` - Optional - This function will fire if the mutation encounters an error and will be passed the error. - If a promise is returned, it will be awaited and resolved before proceeding -- `onSettled: (data: TData, error: TError, variables: TVariables, context?: TContext) => Promise | unknown` +- `onSettled: (data: TData, error: TError, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => Promise | unknown` - Optional - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error - If a promise is returned, it will be awaited and resolved before proceeding @@ -113,15 +114,15 @@ mutate(variables, { - `variables: TVariables` - Optional - The variables object to pass to the `mutationFn`. - - `onSuccess: (data: TData, variables: TVariables, context: TContext) => void` + - `onSuccess: (data: TData, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => void` - Optional - This function will fire when the mutation is successful and will be passed the mutation's result. - Void function, the returned value will be ignored - - `onError: (err: TError, variables: TVariables, context: TContext | undefined) => void` + - `onError: (err: TError, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => void` - Optional - This function will fire if the mutation encounters an error and will be passed the error. - Void function, the returned value will be ignored - - `onSettled: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => void` + - `onSettled: (data: TData | undefined, error: TError | null, variables: TVariables, onMutateResult: TOnMutateResult | undefined, context: MutationFunctionContext) => void` - Optional - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error - Void function, the returned value will be ignored diff --git a/docs/framework/svelte/reference/functions/createmutation.md b/docs/framework/svelte/reference/functions/createmutation.md index 8c5e79cff9..bdcac9262c 100644 --- a/docs/framework/svelte/reference/functions/createmutation.md +++ b/docs/framework/svelte/reference/functions/createmutation.md @@ -6,10 +6,10 @@ title: createMutation # Function: createMutation() ```ts -function createMutation( +function createMutation( options, queryClient?, -): CreateMutationResult +): CreateMutationResult ``` ## Type Parameters @@ -20,13 +20,13 @@ function createMutation( โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Parameters ### options -[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateMutationOptions`](../../type-aliases/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TContext`\>\> +[`StoreOrVal`](../../type-aliases/storeorval.md)\<[`CreateMutationOptions`](../../type-aliases/createmutationoptions.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>\> ### queryClient? @@ -34,7 +34,7 @@ function createMutation( ## Returns -[`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TContext`\> +[`CreateMutationResult`](../../type-aliases/createmutationresult.md)\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\> ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md index 9d51cbc3b2..1ba4b9e226 100644 --- a/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md +++ b/docs/framework/svelte/reference/type-aliases/createbasemutationresult.md @@ -3,16 +3,17 @@ id: CreateBaseMutationResult title: CreateBaseMutationResult --- -# Type Alias: CreateBaseMutationResult\ +# Type Alias: CreateBaseMutationResult\ ```ts -type CreateBaseMutationResult = Override< - MutationObserverResult, - { - mutate: CreateMutateFunction - } -> & - object +type CreateBaseMutationResult = + Override< + MutationObserverResult, + { + mutate: CreateMutateFunction + } + > & + object ``` ## Type declaration @@ -20,7 +21,12 @@ type CreateBaseMutationResult = Override< ### mutateAsync ```ts -mutateAsync: CreateMutateAsyncFunction +mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TOnMutateResult +> ``` ## Type Parameters @@ -31,7 +37,7 @@ mutateAsync: CreateMutateAsyncFunction โ€ข **TVariables** = `unknown` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md index 31162afcd4..75cff15382 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md +++ b/docs/framework/svelte/reference/type-aliases/createmutateasyncfunction.md @@ -3,11 +3,11 @@ id: CreateMutateAsyncFunction title: CreateMutateAsyncFunction --- -# Type Alias: CreateMutateAsyncFunction\ +# Type Alias: CreateMutateAsyncFunction\ ```ts -type CreateMutateAsyncFunction = - MutateFunction +type CreateMutateAsyncFunction = + MutateFunction ``` ## Type Parameters @@ -18,7 +18,7 @@ type CreateMutateAsyncFunction = โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md index 277affff10..05c68ed144 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutatefunction.md +++ b/docs/framework/svelte/reference/type-aliases/createmutatefunction.md @@ -3,10 +3,10 @@ id: CreateMutateFunction title: CreateMutateFunction --- -# Type Alias: CreateMutateFunction()\ +# Type Alias: CreateMutateFunction()\ ```ts -type CreateMutateFunction = ( +type CreateMutateFunction = ( ...args ) => void ``` @@ -19,13 +19,13 @@ type CreateMutateFunction = ( โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Parameters ### args -...`Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TContext`\>\> +...`Parameters`\<`MutateFunction`\<`TData`, `TError`, `TVariables`, `TOnMutateResult`\>\> ## Returns diff --git a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md index 6f1fd3ab96..a073d5294b 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutationoptions.md +++ b/docs/framework/svelte/reference/type-aliases/createmutationoptions.md @@ -3,13 +3,14 @@ id: CreateMutationOptions title: CreateMutationOptions --- -# Type Alias: CreateMutationOptions\ +# Type Alias: CreateMutationOptions\ ```ts -type CreateMutationOptions = OmitKeyof< - MutationObserverOptions, - '_defaulted' -> +type CreateMutationOptions = + OmitKeyof< + MutationObserverOptions, + '_defaulted' + > ``` Options for createMutation @@ -22,7 +23,7 @@ Options for createMutation โ€ข **TVariables** = `void` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Defined in diff --git a/docs/framework/svelte/reference/type-aliases/createmutationresult.md b/docs/framework/svelte/reference/type-aliases/createmutationresult.md index 9e6fae8dbb..905204c5fa 100644 --- a/docs/framework/svelte/reference/type-aliases/createmutationresult.md +++ b/docs/framework/svelte/reference/type-aliases/createmutationresult.md @@ -3,12 +3,11 @@ id: CreateMutationResult title: CreateMutationResult --- -# Type Alias: CreateMutationResult\ +# Type Alias: CreateMutationResult\ ```ts -type CreateMutationResult = Readable< - CreateBaseMutationResult -> +type CreateMutationResult = + Readable> ``` Result from createMutation @@ -21,7 +20,7 @@ Result from createMutation โ€ข **TVariables** = `unknown` -โ€ข **TContext** = `unknown` +โ€ข **TOnMutateResult** = `unknown` ## Defined in diff --git a/docs/reference/MutationCache.md b/docs/reference/MutationCache.md index 9e8ef2e61a..4df1e68a1e 100644 --- a/docs/reference/MutationCache.md +++ b/docs/reference/MutationCache.md @@ -28,19 +28,19 @@ Its available methods are: **Options** -- `onError?: (error: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` +- `onError?: (error: unknown, variables: unknown, onMutateResult: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise | unknown` - Optional - This function will be called if some mutation encounters an error. - If you return a Promise from it, it will be awaited -- `onSuccess?: (data: unknown, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` +- `onSuccess?: (data: unknown, variables: unknown, onMutateResult: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise | unknown` - Optional - This function will be called if some mutation is successful. - If you return a Promise from it, it will be awaited -- `onSettled?: (data: unknown | undefined, error: unknown | null, variables: unknown, context: unknown, mutation: Mutation) => Promise | unknown` +- `onSettled?: (data: unknown | undefined, error: unknown | null, variables: unknown, onMutateResult: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise | unknown` - Optional - This function will be called if some mutation is settled (either successful or errored). - If you return a Promise from it, it will be awaited -- `onMutate?: (variables: unknown, mutation: Mutation) => Promise | unknown` +- `onMutate?: (variables: unknown, mutation: Mutation, mutationFnContext: MutationFunctionContext) => Promise | unknown` - Optional - This function will be called before some mutation executes. - If you return a Promise from it, it will be awaited @@ -50,7 +50,7 @@ Its available methods are: The `onError`, `onSuccess`, `onSettled` and `onMutate` callbacks on the MutationCache can be used to handle these events on a global level. They are different to `defaultOptions` provided to the QueryClient because: - `defaultOptions` can be overridden by each Mutation - the global callbacks will **always** be called. -- `onMutate` does not allow returning a context value. +- `onMutate` does not allow returning a result. ## `mutationCache.getAll` diff --git a/examples/react/optimistic-updates-cache/src/pages/index.tsx b/examples/react/optimistic-updates-cache/src/pages/index.tsx index e9c24a7411..be8a4fcd89 100644 --- a/examples/react/optimistic-updates-cache/src/pages/index.tsx +++ b/examples/react/optimistic-updates-cache/src/pages/index.tsx @@ -45,18 +45,20 @@ function Example() { return await response.json() }, // When mutate is called: - onMutate: async (newTodo: string) => { + onMutate: async (newTodo, context) => { setText('') // Cancel any outgoing refetch // (so they don't overwrite our optimistic update) - await queryClient.cancelQueries(todoListOptions) + await context.client.cancelQueries(todoListOptions) // Snapshot the previous value - const previousTodos = queryClient.getQueryData(todoListOptions.queryKey) + const previousTodos = context.client.getQueryData( + todoListOptions.queryKey, + ) // Optimistically update to the new value if (previousTodos) { - queryClient.setQueryData(todoListOptions.queryKey, { + context.client.setQueryData(todoListOptions.queryKey, { ...previousTodos, items: [ ...previousTodos.items, @@ -68,14 +70,18 @@ function Example() { return { previousTodos } }, // If the mutation fails, - // use the context returned from onMutate to roll back - onError: (err, variables, context) => { - if (context?.previousTodos) { - queryClient.setQueryData(['todos'], context.previousTodos) + // use the result returned from onMutate to roll back + onError: (err, variables, onMutateResult, context) => { + if (onMutateResult?.previousTodos) { + context.client.setQueryData( + ['todos'], + onMutateResult.previousTodos, + ) } }, // Always refetch after error or success: - onSettled: () => queryClient.invalidateQueries({ queryKey: ['todos'] }), + onSettled: (data, error, variables, onMutateResult, context) => + context.client.invalidateQueries({ queryKey: ['todos'] }), }) return ( diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts index 7f802351f2..55837e61c4 100644 --- a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts @@ -8,6 +8,7 @@ import { } from '..' import type { DefaultError, + MutationFunctionContext, MutationState, WithRequired, } from '@tanstack/query-core' @@ -58,15 +59,39 @@ describe('mutationOptions', () => { }) }) - it('should infer context type correctly', () => { + it('should infer result type correctly', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), mutationKey: ['key'], onMutate: () => { - return { name: 'context' } + return { name: 'onMutateResult' } + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { name: string } | undefined + >() + }, + }) + }) + + it('should infer context type correctly', () => { + mutationOptions({ + mutationFn: (_variables, context) => { + expectTypeOf(context).toEqualTypeOf() + return Promise.resolve(5) + }, + mutationKey: ['key'], + onMutate: (_variables, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + onSuccess: (_data, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + onError: (_error, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() }, - onSuccess: (_data, _variables, context) => { - expectTypeOf(context).toEqualTypeOf<{ name: string }>() + onSettled: (_data, _error, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() }, }) }) diff --git a/packages/angular-query-experimental/src/inject-mutation.ts b/packages/angular-query-experimental/src/inject-mutation.ts index 21ddf5ff85..97735ca4b5 100644 --- a/packages/angular-query-experimental/src/inject-mutation.ts +++ b/packages/angular-query-experimental/src/inject-mutation.ts @@ -45,16 +45,16 @@ export function injectMutation< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( injectMutationFn: () => CreateMutationOptions< TData, TError, TVariables, - TContext + TOnMutateResult >, options?: InjectMutationOptions, -): CreateMutationResult { +): CreateMutationResult { !options?.injector && assertInInjectionContext(injectMutation) const injector = options?.injector ?? inject(Injector) const destroyRef = injector.get(DestroyRef) @@ -69,8 +69,12 @@ export function injectMutation< const optionsSignal = computed(injectMutationFn) const observerSignal = (() => { - let instance: MutationObserver | null = - null + let instance: MutationObserver< + TData, + TError, + TVariables, + TOnMutateResult + > | null = null return computed(() => { return (instance ||= new MutationObserver(queryClient, optionsSignal())) @@ -78,7 +82,7 @@ export function injectMutation< })() const mutateFnSignal = computed< - CreateMutateFunction + CreateMutateFunction >(() => { const observer = observerSignal() return (variables, mutateOptions) => { @@ -101,7 +105,7 @@ export function injectMutation< TData, TError, TVariables, - TContext + TOnMutateResult > | null>(null) effect( @@ -166,6 +170,6 @@ export function injectMutation< TData, TError, TVariables, - TContext + TOnMutateResult > } diff --git a/packages/angular-query-experimental/src/mutation-options.ts b/packages/angular-query-experimental/src/mutation-options.ts index ec702cb45c..ef0c2cc8b2 100644 --- a/packages/angular-query-experimental/src/mutation-options.ts +++ b/packages/angular-query-experimental/src/mutation-options.ts @@ -40,28 +40,28 @@ export function mutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( options: WithRequired< - CreateMutationOptions, + CreateMutationOptions, 'mutationKey' >, ): WithRequired< - CreateMutationOptions, + CreateMutationOptions, 'mutationKey' > export function mutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( options: Omit< - CreateMutationOptions, + CreateMutationOptions, 'mutationKey' >, ): Omit< - CreateMutationOptions, + CreateMutationOptions, 'mutationKey' > @@ -104,9 +104,9 @@ export function mutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( - options: CreateMutationOptions, -): CreateMutationOptions { + options: CreateMutationOptions, +): CreateMutationOptions { return options } diff --git a/packages/angular-query-experimental/src/types.ts b/packages/angular-query-experimental/src/types.ts index caee16822e..1d4bf86487 100644 --- a/packages/angular-query-experimental/src/types.ts +++ b/packages/angular-query-experimental/src/types.ts @@ -133,9 +133,9 @@ export interface CreateMutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > extends OmitKeyof< - MutationObserverOptions, + MutationObserverOptions, '_defaulted' > {} @@ -143,28 +143,35 @@ export type CreateMutateFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = ( - ...args: Parameters> + ...args: Parameters< + MutateFunction + > ) => void export type CreateMutateAsyncFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> = MutateFunction + TOnMutateResult = unknown, +> = MutateFunction export type CreateBaseMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > = Override< - MutationObserverResult, - { mutate: CreateMutateFunction } + MutationObserverResult, + { mutate: CreateMutateFunction } > & { - mutateAsync: CreateMutateAsyncFunction + mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TOnMutateResult + > } type CreateStatusBasedMutationResult< @@ -172,9 +179,9 @@ type CreateStatusBasedMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > = Extract< - CreateBaseMutationResult, + CreateBaseMutationResult, { status: TStatus } > @@ -184,73 +191,73 @@ export interface BaseMutationNarrowing< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > { isSuccess: SignalFunction< ( - this: CreateMutationResult, + this: CreateMutationResult, ) => this is CreateMutationResult< TData, TError, TVariables, - TContext, + TOnMutateResult, CreateStatusBasedMutationResult< 'success', TData, TError, TVariables, - TContext + TOnMutateResult > > > isError: SignalFunction< ( - this: CreateMutationResult, + this: CreateMutationResult, ) => this is CreateMutationResult< TData, TError, TVariables, - TContext, + TOnMutateResult, CreateStatusBasedMutationResult< 'error', TData, TError, TVariables, - TContext + TOnMutateResult > > > isPending: SignalFunction< ( - this: CreateMutationResult, + this: CreateMutationResult, ) => this is CreateMutationResult< TData, TError, TVariables, - TContext, + TOnMutateResult, CreateStatusBasedMutationResult< 'pending', TData, TError, TVariables, - TContext + TOnMutateResult > > > isIdle: SignalFunction< ( - this: CreateMutationResult, + this: CreateMutationResult, ) => this is CreateMutationResult< TData, TError, TVariables, - TContext, + TOnMutateResult, CreateStatusBasedMutationResult< 'idle', TData, TError, TVariables, - TContext + TOnMutateResult > > > @@ -260,13 +267,13 @@ export type CreateMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, TState = CreateStatusBasedMutationResult< CreateBaseMutationResult['status'], TData, TError, TVariables, - TContext + TOnMutateResult >, -> = BaseMutationNarrowing & +> = BaseMutationNarrowing & MapToSignals> diff --git a/packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts b/packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts index 34839c684c..6668774a11 100644 --- a/packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts +++ b/packages/eslint-plugin-query/src/__tests__/mutation-property-order.rule.test.ts @@ -143,9 +143,9 @@ function getCode({ mutationFunction: mutationFunction, properties }: TestCase) { case 'onMutate': return 'onMutate: (data) => {\n return { foo: data }\n}' case 'onError': - return 'onError: (error, variables, context) => {\n console.log("error:", error, "context:", context)\n}' + return 'onError: (error, variables, onMutateResult) => {\n console.log("error:", error, "onMutateResult:", scope)\n}' case 'onSettled': - return 'onSettled: (data, error, variables, context) => {\n console.log("settled", context)\n}' + return 'onSettled: (data, error, variables, onMutateResult) => {\n console.log("settled", onMutateResult)\n}' } } return ` @@ -202,11 +202,11 @@ const regressionTestCases = { onMutate: (data) => { return { foo: data } }, - onError: (error, variables, context) => { - console.log(error, context) + onError: (error, variables, onMutateResult) => { + console.log(error, onMutateResult) }, - onSettled: (data, error, variables, context) => { - console.log('settled', context) + onSettled: (data, error, variables, onMutateResult) => { + console.log('settled', onMutateResult) }, }) `, diff --git a/packages/query-core/src/__tests__/hydration.test.tsx b/packages/query-core/src/__tests__/hydration.test.tsx index 30a4b9a985..46945e1b89 100644 --- a/packages/query-core/src/__tests__/hydration.test.tsx +++ b/packages/query-core/src/__tests__/hydration.test.tsx @@ -545,6 +545,7 @@ describe('dehydration and rehydration', () => { { id: 2, text: 'text' }, { text: 'text' }, { optimisticTodo: { id: 1, text: 'text' } }, + { client: client, meta: undefined, mutationKey: ['addTodo'] }, ) client.clear() diff --git a/packages/query-core/src/__tests__/mutationCache.test.tsx b/packages/query-core/src/__tests__/mutationCache.test.tsx index 8759a7ca98..e52498c64f 100644 --- a/packages/query-core/src/__tests__/mutationCache.test.tsx +++ b/packages/query-core/src/__tests__/mutationCache.test.tsx @@ -27,7 +27,7 @@ describe('mutationCache', () => { mutationKey: key, mutationFn: () => sleep(10).then(() => Promise.reject(new Error('error'))), - onMutate: () => 'context', + onMutate: () => 'result', }, 'vars', ).catch(() => undefined) @@ -39,8 +39,13 @@ describe('mutationCache', () => { expect(onError).toHaveBeenCalledWith( new Error('error'), 'vars', - 'context', + 'result', mutation, + { + client: testClient, + meta: undefined, + mutationKey: key, + }, ) expect(onSuccess).not.toHaveBeenCalled() expect(onSettled).toHaveBeenCalledTimes(1) @@ -48,8 +53,13 @@ describe('mutationCache', () => { undefined, new Error('error'), 'vars', - 'context', + 'result', mutation, + { + client: testClient, + meta: undefined, + mutationKey: key, + }, ) }) @@ -109,7 +119,7 @@ describe('mutationCache', () => { { mutationKey: key, mutationFn: () => sleep(10).then(() => ({ data: 5 })), - onMutate: () => 'context', + onMutate: () => 'result', }, 'vars', ) @@ -121,8 +131,13 @@ describe('mutationCache', () => { expect(onSuccess).toHaveBeenCalledWith( { data: 5 }, 'vars', - 'context', + 'result', mutation, + { + client: testClient, + meta: undefined, + mutationKey: key, + }, ) expect(onError).not.toHaveBeenCalled() expect(onSettled).toHaveBeenCalledTimes(1) @@ -130,8 +145,13 @@ describe('mutationCache', () => { { data: 5 }, null, 'vars', - 'context', + 'result', mutation, + { + client: testClient, + meta: undefined, + mutationKey: key, + }, ) }) @@ -187,14 +207,18 @@ describe('mutationCache', () => { { mutationKey: key, mutationFn: () => sleep(10).then(() => ({ data: 5 })), - onMutate: () => 'context', + onMutate: () => 'result', }, 'vars', ) const mutation = testCache.getAll()[0] - expect(onMutate).toHaveBeenCalledWith('vars', mutation) + expect(onMutate).toHaveBeenCalledWith('vars', mutation, { + client: testClient, + meta: undefined, + mutationKey: key, + }) }) test('should be awaited', async () => { diff --git a/packages/query-core/src/__tests__/mutationObserver.test.tsx b/packages/query-core/src/__tests__/mutationObserver.test.tsx index f7e9a8839e..995156be41 100644 --- a/packages/query-core/src/__tests__/mutationObserver.test.tsx +++ b/packages/query-core/src/__tests__/mutationObserver.test.tsx @@ -320,13 +320,22 @@ describe('mutationObserver', () => { await vi.advanceTimersByTimeAsync(0) expect(onSuccess).toHaveBeenCalledTimes(1) - expect(onSuccess).toHaveBeenCalledWith('SUCCESS', 'success', undefined) + expect(onSuccess).toHaveBeenCalledWith('SUCCESS', 'success', undefined, { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) expect(onSettled).toHaveBeenCalledTimes(1) expect(onSettled).toHaveBeenCalledWith( 'SUCCESS', null, 'success', undefined, + { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }, ) unsubscribe() @@ -354,9 +363,23 @@ describe('mutationObserver', () => { await vi.advanceTimersByTimeAsync(0) expect(onError).toHaveBeenCalledTimes(1) - expect(onError).toHaveBeenCalledWith(error, 'error', undefined) + expect(onError).toHaveBeenCalledWith(error, 'error', undefined, { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) expect(onSettled).toHaveBeenCalledTimes(1) - expect(onSettled).toHaveBeenCalledWith(undefined, error, 'error', undefined) + expect(onSettled).toHaveBeenCalledWith( + undefined, + error, + 'error', + undefined, + { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }, + ) unsubscribe() }) diff --git a/packages/query-core/src/__tests__/mutations.test.tsx b/packages/query-core/src/__tests__/mutations.test.tsx index 4201972c88..cb7cd79d3a 100644 --- a/packages/query-core/src/__tests__/mutations.test.tsx +++ b/packages/query-core/src/__tests__/mutations.test.tsx @@ -53,7 +53,11 @@ describe('mutations', () => { await vi.advanceTimersByTimeAsync(0) expect(fn).toHaveBeenCalledTimes(1) - expect(fn).toHaveBeenCalledWith('vars') + expect(fn).toHaveBeenCalledWith('vars', { + client: queryClient, + meta: undefined, + mutationKey: key, + }) }) test('mutation should set correct success states', async () => { @@ -632,7 +636,7 @@ describe('mutations', () => { mutationFn: () => Promise.resolve('success'), onMutate: () => { results.push('onMutate-sync') - return { backup: 'data' } // onMutate can return context + return { backup: 'data' } // onMutate can return a result }, onSuccess: () => { results.push('onSuccess-implicit-void') @@ -760,8 +764,8 @@ describe('mutations', () => { results.push('sync-onError') return Promise.resolve('error-return-ignored') }, - onSettled: (_data, _error, _variables, context) => { - results.push(`settled-context-${context?.rollback}`) + onSettled: (_data, _error, _variables, onMutateResult) => { + results.push(`settled-onMutateResult-${onMutateResult?.rollback}`) return Promise.all([ Promise.resolve('cleanup-1'), Promise.resolve('cleanup-2'), @@ -781,7 +785,7 @@ describe('mutations', () => { expect(results).toEqual([ 'sync-onMutate', 'async-onSuccess', - 'settled-context-data', + 'settled-onMutateResult-data', ]) }) @@ -812,8 +816,8 @@ describe('mutations', () => { sleep(20).then(() => results.push('error-cleanup-2')), ]) }, - onSettled: (_data, _error, _variables, context) => { - results.push(`settled-error-${context?.backup}`) + onSettled: (_data, _error, _variables, onMutateResult) => { + results.push(`settled-error-${onMutateResult?.backup}`) return Promise.allSettled([ Promise.resolve('settled-cleanup'), Promise.reject('settled-error'), diff --git a/packages/query-core/src/__tests__/utils.test.tsx b/packages/query-core/src/__tests__/utils.test.tsx index 414b892447..9cee1b4642 100644 --- a/packages/query-core/src/__tests__/utils.test.tsx +++ b/packages/query-core/src/__tests__/utils.test.tsx @@ -423,6 +423,7 @@ describe('core/utils', () => { const filters = { mutationKey: ['key1'] } const queryClient = new QueryClient() const mutation = new Mutation({ + client: queryClient, mutationId: 1, mutationCache: queryClient.getMutationCache(), options: {}, diff --git a/packages/query-core/src/mutation.ts b/packages/query-core/src/mutation.ts index 3aced112e3..4d04626088 100644 --- a/packages/query-core/src/mutation.ts +++ b/packages/query-core/src/mutation.ts @@ -3,6 +3,7 @@ import { Removable } from './removable' import { createRetryer } from './retryer' import type { DefaultError, + MutationFunctionContext, MutationMeta, MutationOptions, MutationStatus, @@ -10,23 +11,25 @@ import type { import type { MutationCache } from './mutationCache' import type { MutationObserver } from './mutationObserver' import type { Retryer } from './retryer' +import type { QueryClient } from './queryClient' // TYPES -interface MutationConfig { +interface MutationConfig { + client: QueryClient mutationId: number mutationCache: MutationCache - options: MutationOptions - state?: MutationState + options: MutationOptions + state?: MutationState } export interface MutationState< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > { - context: TContext | undefined + context: TOnMutateResult | undefined data: TData | undefined error: TError | null failureCount: number @@ -43,11 +46,11 @@ interface FailedAction { error: TError | null } -interface PendingAction { +interface PendingAction { type: 'pending' isPaused: boolean variables?: TVariables - context?: TContext + context?: TOnMutateResult } interface SuccessAction { @@ -68,11 +71,11 @@ interface ContinueAction { type: 'continue' } -export type Action = +export type Action = | ContinueAction | ErrorAction | FailedAction - | PendingAction + | PendingAction | PauseAction | SuccessAction @@ -82,19 +85,25 @@ export class Mutation< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > extends Removable { - state: MutationState - options!: MutationOptions + state: MutationState + options!: MutationOptions readonly mutationId: number - #observers: Array> + #client: QueryClient + #observers: Array< + MutationObserver + > #mutationCache: MutationCache #retryer?: Retryer - constructor(config: MutationConfig) { + constructor( + config: MutationConfig, + ) { super() + this.#client = config.client this.mutationId = config.mutationId this.#mutationCache = config.mutationCache this.#observers = [] @@ -105,7 +114,7 @@ export class Mutation< } setOptions( - options: MutationOptions, + options: MutationOptions, ): void { this.options = options @@ -166,12 +175,19 @@ export class Mutation< this.#dispatch({ type: 'continue' }) } + const mutationFnContext = { + client: this.#client, + meta: this.options.meta, + mutationKey: this.options.mutationKey, + } satisfies MutationFunctionContext + this.#retryer = createRetryer({ fn: () => { if (!this.options.mutationFn) { return Promise.reject(new Error('No mutationFn found')) } - return this.options.mutationFn(variables) + + return this.options.mutationFn(variables, mutationFnContext) }, onFail: (failureCount, error) => { this.#dispatch({ type: 'failed', failureCount, error }) @@ -199,8 +215,12 @@ export class Mutation< await this.#mutationCache.config.onMutate?.( variables, this as Mutation, + mutationFnContext, + ) + const context = await this.options.onMutate?.( + variables, + mutationFnContext, ) - const context = await this.options.onMutate?.(variables) if (context !== this.state.context) { this.#dispatch({ type: 'pending', @@ -218,9 +238,15 @@ export class Mutation< variables, this.state.context, this as Mutation, + mutationFnContext, ) - await this.options.onSuccess?.(data, variables, this.state.context!) + await this.options.onSuccess?.( + data, + variables, + this.state.context, + mutationFnContext, + ) // Notify cache callback await this.#mutationCache.config.onSettled?.( @@ -229,9 +255,16 @@ export class Mutation< this.state.variables, this.state.context, this as Mutation, + mutationFnContext, ) - await this.options.onSettled?.(data, null, variables, this.state.context) + await this.options.onSettled?.( + data, + null, + variables, + this.state.context, + mutationFnContext, + ) this.#dispatch({ type: 'success', data }) return data @@ -243,12 +276,14 @@ export class Mutation< variables, this.state.context, this as Mutation, + mutationFnContext, ) await this.options.onError?.( error as TError, variables, this.state.context, + mutationFnContext, ) // Notify cache callback @@ -258,6 +293,7 @@ export class Mutation< this.state.variables, this.state.context, this as Mutation, + mutationFnContext, ) await this.options.onSettled?.( @@ -265,6 +301,7 @@ export class Mutation< error as TError, variables, this.state.context, + mutationFnContext, ) throw error } finally { @@ -275,10 +312,10 @@ export class Mutation< } } - #dispatch(action: Action): void { + #dispatch(action: Action): void { const reducer = ( - state: MutationState, - ): MutationState => { + state: MutationState, + ): MutationState => { switch (action.type) { case 'failed': return { @@ -350,8 +387,8 @@ export function getDefaultState< TData, TError, TVariables, - TContext, ->(): MutationState { + TOnMutateResult, +>(): MutationState { return { context: undefined, data: undefined, diff --git a/packages/query-core/src/mutationCache.ts b/packages/query-core/src/mutationCache.ts index 6ab95fbfed..d204c904e5 100644 --- a/packages/query-core/src/mutationCache.ts +++ b/packages/query-core/src/mutationCache.ts @@ -3,7 +3,12 @@ import { Mutation } from './mutation' import { matchMutation, noop } from './utils' import { Subscribable } from './subscribable' import type { MutationObserver } from './mutationObserver' -import type { DefaultError, MutationOptions, NotifyEvent } from './types' +import type { + DefaultError, + MutationFunctionContext, + MutationOptions, + NotifyEvent, +} from './types' import type { QueryClient } from './queryClient' import type { Action, MutationState } from './mutation' import type { MutationFilters } from './utils' @@ -14,25 +19,29 @@ interface MutationCacheConfig { onError?: ( error: DefaultError, variables: unknown, - context: unknown, + onMutateResult: unknown, mutation: Mutation, + context: MutationFunctionContext, ) => Promise | unknown onSuccess?: ( data: unknown, variables: unknown, - context: unknown, + onMutateResult: unknown, mutation: Mutation, + context: MutationFunctionContext, ) => Promise | unknown onMutate?: ( variables: unknown, mutation: Mutation, + context: MutationFunctionContext, ) => Promise | unknown onSettled?: ( data: unknown | undefined, error: DefaultError | null, variables: unknown, - context: unknown, + onMutateResult: unknown, mutation: Mutation, + context: MutationFunctionContext, ) => Promise | unknown } @@ -93,12 +102,13 @@ export class MutationCache extends Subscribable { this.#mutationId = 0 } - build( + build( client: QueryClient, - options: MutationOptions, - state?: MutationState, - ): Mutation { + options: MutationOptions, + state?: MutationState, + ): Mutation { const mutation = new Mutation({ + client, mutationCache: this, mutationId: ++this.#mutationId, options: client.defaultMutationOptions(options), @@ -195,15 +205,15 @@ export class MutationCache extends Subscribable { TData = unknown, TError = DefaultError, TVariables = any, - TContext = unknown, + TOnMutateResult = unknown, >( filters: MutationFilters, - ): Mutation | undefined { + ): Mutation | undefined { const defaultedFilters = { exact: true, ...filters } return this.getAll().find((mutation) => matchMutation(defaultedFilters, mutation), - ) as Mutation | undefined + ) as Mutation | undefined } findAll(filters: MutationFilters = {}): Array { diff --git a/packages/query-core/src/mutationObserver.ts b/packages/query-core/src/mutationObserver.ts index 1178bbdf75..abb2a5389c 100644 --- a/packages/query-core/src/mutationObserver.ts +++ b/packages/query-core/src/mutationObserver.ts @@ -6,6 +6,7 @@ import type { QueryClient } from './queryClient' import type { DefaultError, MutateOptions, + MutationFunctionContext, MutationObserverOptions, MutationObserverResult, } from './types' @@ -13,8 +14,8 @@ import type { Action, Mutation } from './mutation' // TYPES -type MutationObserverListener = ( - result: MutationObserverResult, +type MutationObserverListener = ( + result: MutationObserverResult, ) => void // CLASS @@ -23,21 +24,30 @@ export class MutationObserver< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > extends Subscribable< - MutationObserverListener + MutationObserverListener > { - options!: MutationObserverOptions + options!: MutationObserverOptions #client: QueryClient - #currentResult: MutationObserverResult = - undefined! - #currentMutation?: Mutation - #mutateOptions?: MutateOptions + #currentResult: MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + > = undefined! + #currentMutation?: Mutation + #mutateOptions?: MutateOptions constructor( client: QueryClient, - options: MutationObserverOptions, + options: MutationObserverOptions< + TData, + TError, + TVariables, + TOnMutateResult + >, ) { super() @@ -53,10 +63,15 @@ export class MutationObserver< } setOptions( - options: MutationObserverOptions, + options: MutationObserverOptions< + TData, + TError, + TVariables, + TOnMutateResult + >, ) { const prevOptions = this.options as - | MutationObserverOptions + | MutationObserverOptions | undefined this.options = this.#client.defaultMutationOptions(options) if (!shallowEqualObjects(this.options, prevOptions)) { @@ -84,7 +99,9 @@ export class MutationObserver< } } - onMutationUpdate(action: Action): void { + onMutationUpdate( + action: Action, + ): void { this.#updateResult() this.#notify(action) @@ -94,7 +111,7 @@ export class MutationObserver< TData, TError, TVariables, - TContext + TOnMutateResult > { return this.#currentResult } @@ -110,7 +127,7 @@ export class MutationObserver< mutate( variables: TVariables, - options?: MutateOptions, + options?: MutateOptions, ): Promise { this.#mutateOptions = options @@ -128,7 +145,7 @@ export class MutationObserver< #updateResult(): void { const state = this.#currentMutation?.state ?? - getDefaultState() + getDefaultState() this.#currentResult = { ...state, @@ -138,25 +155,48 @@ export class MutationObserver< isIdle: state.status === 'idle', mutate: this.mutate, reset: this.reset, - } as MutationObserverResult + } as MutationObserverResult } - #notify(action?: Action): void { + #notify(action?: Action): void { notifyManager.batch(() => { // First trigger the mutate callbacks if (this.#mutateOptions && this.hasListeners()) { const variables = this.#currentResult.variables! - const context = this.#currentResult.context + const onMutateResult = this.#currentResult.context + + const context = { + client: this.#client, + meta: this.options.meta, + mutationKey: this.options.mutationKey, + } satisfies MutationFunctionContext if (action?.type === 'success') { - this.#mutateOptions.onSuccess?.(action.data, variables, context!) - this.#mutateOptions.onSettled?.(action.data, null, variables, context) + this.#mutateOptions.onSuccess?.( + action.data, + variables, + onMutateResult, + context, + ) + this.#mutateOptions.onSettled?.( + action.data, + null, + variables, + onMutateResult, + context, + ) } else if (action?.type === 'error') { - this.#mutateOptions.onError?.(action.error, variables, context) + this.#mutateOptions.onError?.( + action.error, + variables, + onMutateResult, + context, + ) this.#mutateOptions.onSettled?.( undefined, action.error, variables, + onMutateResult, context, ) } diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts index 5154ecb535..80cc36668a 100644 --- a/packages/query-core/src/queryClient.ts +++ b/packages/query-core/src/queryClient.ts @@ -512,11 +512,11 @@ export class QueryClient { TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( mutationKey: MutationKey, options: OmitKeyof< - MutationObserverOptions, + MutationObserverOptions, 'mutationKey' >, ): void { diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index df6ea8c173..54c1764477 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -1091,36 +1091,47 @@ export type MutationMeta = Register extends { : Record : Record +export type MutationFunctionContext = { + client: QueryClient + meta: MutationMeta | undefined + mutationKey?: MutationKey +} + export type MutationFunction = ( variables: TVariables, + context: MutationFunctionContext, ) => Promise export interface MutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > { mutationFn?: MutationFunction mutationKey?: MutationKey onMutate?: ( variables: TVariables, - ) => Promise | TContext | undefined + context: MutationFunctionContext, + ) => Promise | TOnMutateResult | undefined onSuccess?: ( data: TData, variables: TVariables, - context: TContext, + onMutateResult: TOnMutateResult | undefined, + context: MutationFunctionContext, ) => Promise | unknown onError?: ( error: TError, variables: TVariables, - context: TContext | undefined, + onMutateResult: TOnMutateResult | undefined, + context: MutationFunctionContext, ) => Promise | unknown onSettled?: ( data: TData | undefined, error: TError | null, variables: TVariables, - context: TContext | undefined, + onMutateResult: TOnMutateResult | undefined, + context: MutationFunctionContext, ) => Promise | unknown retry?: RetryValue retryDelay?: RetryDelayValue @@ -1135,8 +1146,8 @@ export interface MutationObserverOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> extends MutationOptions { + TOnMutateResult = unknown, +> extends MutationOptions { throwOnError?: boolean | ((error: TError) => boolean) } @@ -1144,19 +1155,26 @@ export interface MutateOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > { - onSuccess?: (data: TData, variables: TVariables, context: TContext) => void + onSuccess?: ( + data: TData, + variables: TVariables, + onMutateResult: TOnMutateResult | undefined, + context: MutationFunctionContext, + ) => void onError?: ( error: TError, variables: TVariables, - context: TContext | undefined, + onMutateResult: TOnMutateResult | undefined, + context: MutationFunctionContext, ) => void onSettled?: ( data: TData | undefined, error: TError | null, variables: TVariables, - context: TContext | undefined, + onMutateResult: TOnMutateResult | undefined, + context: MutationFunctionContext, ) => void } @@ -1164,18 +1182,18 @@ export type MutateFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = ( variables: TVariables, - options?: MutateOptions, + options?: MutateOptions, ) => Promise export interface MutationObserverBaseResult< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> extends MutationState { + TOnMutateResult = unknown, +> extends MutationState { /** * The last successfully resolved data for the mutation. */ @@ -1228,7 +1246,7 @@ export interface MutationObserverBaseResult< * - If you make multiple requests, `onSuccess` will fire only after the latest call you've made. * - All the callback functions (`onSuccess`, `onError`, `onSettled`) are void functions, and the returned value will be ignored. */ - mutate: MutateFunction + mutate: MutateFunction /** * A function to clean the mutation internal state (i.e., it resets the mutation to its initial state). */ @@ -1239,8 +1257,13 @@ export interface MutationObserverIdleResult< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> extends MutationObserverBaseResult { + TOnMutateResult = unknown, +> extends MutationObserverBaseResult< + TData, + TError, + TVariables, + TOnMutateResult + > { data: undefined variables: undefined error: null @@ -1255,8 +1278,13 @@ export interface MutationObserverLoadingResult< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> extends MutationObserverBaseResult { + TOnMutateResult = unknown, +> extends MutationObserverBaseResult< + TData, + TError, + TVariables, + TOnMutateResult + > { data: undefined variables: TVariables error: null @@ -1271,8 +1299,13 @@ export interface MutationObserverErrorResult< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> extends MutationObserverBaseResult { + TOnMutateResult = unknown, +> extends MutationObserverBaseResult< + TData, + TError, + TVariables, + TOnMutateResult + > { data: undefined error: TError variables: TVariables @@ -1287,8 +1320,13 @@ export interface MutationObserverSuccessResult< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> extends MutationObserverBaseResult { + TOnMutateResult = unknown, +> extends MutationObserverBaseResult< + TData, + TError, + TVariables, + TOnMutateResult + > { data: TData error: null variables: TVariables @@ -1303,12 +1341,12 @@ export type MutationObserverResult< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = - | MutationObserverIdleResult - | MutationObserverLoadingResult - | MutationObserverErrorResult - | MutationObserverSuccessResult + | MutationObserverIdleResult + | MutationObserverLoadingResult + | MutationObserverErrorResult + | MutationObserverSuccessResult export interface QueryClientConfig { queryCache?: QueryCache diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index b4da471a9b..2b46cc1c74 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -47,7 +47,7 @@ export interface MutationFilters< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > { /** * Match mutation key exactly @@ -57,7 +57,7 @@ export interface MutationFilters< * Include mutations matching this predicate function */ predicate?: ( - mutation: Mutation, + mutation: Mutation, ) => boolean /** * Include mutations matching this mutation key diff --git a/packages/react-query/src/__tests__/mutationOptions.test-d.tsx b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx index 21373fec31..c411fe9dff 100644 --- a/packages/react-query/src/__tests__/mutationOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx @@ -4,6 +4,7 @@ import { useIsMutating, useMutation, useMutationState } from '..' import { mutationOptions } from '../mutationOptions' import type { DefaultError, + MutationFunctionContext, MutationState, WithRequired, } from '@tanstack/query-core' @@ -54,15 +55,39 @@ describe('mutationOptions', () => { }) }) - it('should infer context type correctly', () => { + it('should infer result type correctly', () => { mutationOptions({ mutationFn: () => Promise.resolve(5), mutationKey: ['key'], onMutate: () => { - return { name: 'context' } + return { name: 'onMutateResult' } + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { name: string } | undefined + >() + }, + }) + }) + + it('should infer context type correctly', () => { + mutationOptions({ + mutationFn: (_variables, context) => { + expectTypeOf(context).toEqualTypeOf() + return Promise.resolve(5) + }, + mutationKey: ['key'], + onMutate: (_variables, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + onSuccess: (_data, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() + }, + onError: (_error, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() }, - onSuccess: (_data, _variables, context) => { - expectTypeOf(context).toEqualTypeOf<{ name: string }>() + onSettled: (_data, _error, _variables, _onMutateResult, context) => { + expectTypeOf(context).toEqualTypeOf() }, }) }) diff --git a/packages/react-query/src/__tests__/useMutation.test.tsx b/packages/react-query/src/__tests__/useMutation.test.tsx index 5ea9a53a4f..30800c9b08 100644 --- a/packages/react-query/src/__tests__/useMutation.test.tsx +++ b/packages/react-query/src/__tests__/useMutation.test.tsx @@ -525,7 +525,11 @@ describe('useMutation', () => { ).toBeInTheDocument() expect(onMutate).toHaveBeenCalledTimes(1) - expect(onMutate).toHaveBeenCalledWith('todo') + expect(onMutate).toHaveBeenCalledWith('todo', { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) onlineMock.mockReturnValue(true) queryClient.getMutationCache().resumePausedMutations() @@ -979,12 +983,22 @@ describe('useMutation', () => { 'result-todo1', 'todo1', undefined, + { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }, ) expect(onSuccess).toHaveBeenNthCalledWith( 2, 'result-todo2', 'todo2', undefined, + { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }, ) expect(onSettled).toHaveBeenCalledTimes(2) expect(onSuccessMutate).toHaveBeenCalledTimes(1) @@ -992,6 +1006,11 @@ describe('useMutation', () => { 'result-todo2', 'todo2', undefined, + { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }, ) expect(onSettledMutate).toHaveBeenCalledTimes(1) expect(onSettledMutate).toHaveBeenCalledWith( @@ -999,6 +1018,11 @@ describe('useMutation', () => { null, 'todo2', undefined, + { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }, ) }) @@ -1033,7 +1057,11 @@ describe('useMutation', () => { await vi.advanceTimersByTimeAsync(11) expect(rendered.getByText('status: error')).toBeInTheDocument() - expect(onError).toHaveBeenCalledWith(error, 'todo', undefined) + expect(onError).toHaveBeenCalledWith(error, 'todo', undefined, { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) }) it('should go to error state if onError callback errors', async () => { @@ -1110,7 +1138,11 @@ describe('useMutation', () => { expect( rendered.getByText('error: mutateFnError, status: error'), ).toBeInTheDocument() - expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined) + expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined, { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) }) it('should use provided custom queryClient', async () => { diff --git a/packages/react-query/src/mutationOptions.ts b/packages/react-query/src/mutationOptions.ts index ffca2383aa..1ee3110b19 100644 --- a/packages/react-query/src/mutationOptions.ts +++ b/packages/react-query/src/mutationOptions.ts @@ -5,34 +5,37 @@ export function mutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( options: WithRequired< - UseMutationOptions, + UseMutationOptions, 'mutationKey' >, ): WithRequired< - UseMutationOptions, + UseMutationOptions, 'mutationKey' > export function mutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( options: Omit< - UseMutationOptions, + UseMutationOptions, 'mutationKey' >, -): Omit, 'mutationKey'> +): Omit< + UseMutationOptions, + 'mutationKey' +> export function mutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( - options: UseMutationOptions, -): UseMutationOptions { + options: UseMutationOptions, +): UseMutationOptions { return options } diff --git a/packages/react-query/src/types.ts b/packages/react-query/src/types.ts index 08c5e840ca..2c52ac5b65 100644 --- a/packages/react-query/src/types.ts +++ b/packages/react-query/src/types.ts @@ -193,9 +193,9 @@ export interface UseMutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > extends OmitKeyof< - MutationObserverOptions, + MutationObserverOptions, '_defaulted' > {} @@ -203,31 +203,40 @@ export type UseMutateFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = ( - ...args: Parameters> + ...args: Parameters< + MutateFunction + > ) => void export type UseMutateAsyncFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> = MutateFunction + TOnMutateResult = unknown, +> = MutateFunction export type UseBaseMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > = Override< - MutationObserverResult, - { mutate: UseMutateFunction } -> & { mutateAsync: UseMutateAsyncFunction } + MutationObserverResult, + { mutate: UseMutateFunction } +> & { + mutateAsync: UseMutateAsyncFunction< + TData, + TError, + TVariables, + TOnMutateResult + > +} export type UseMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, -> = UseBaseMutationResult + TOnMutateResult = unknown, +> = UseBaseMutationResult diff --git a/packages/react-query/src/useMutation.ts b/packages/react-query/src/useMutation.ts index 6847c0d2e3..2c66eb8ba8 100644 --- a/packages/react-query/src/useMutation.ts +++ b/packages/react-query/src/useMutation.ts @@ -20,16 +20,16 @@ export function useMutation< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( - options: UseMutationOptions, + options: UseMutationOptions, queryClient?: QueryClient, -): UseMutationResult { +): UseMutationResult { const client = useQueryClient(queryClient) const [observer] = React.useState( () => - new MutationObserver( + new MutationObserver( client, options, ), @@ -50,7 +50,7 @@ export function useMutation< ) const mutate = React.useCallback< - UseMutateFunction + UseMutateFunction >( (variables, mutateOptions) => { observer.mutate(variables, mutateOptions).catch(noop) diff --git a/packages/solid-query/src/__tests__/useMutation.test.tsx b/packages/solid-query/src/__tests__/useMutation.test.tsx index 8dfa11c9df..2ad4008191 100644 --- a/packages/solid-query/src/__tests__/useMutation.test.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test.tsx @@ -583,7 +583,11 @@ describe('useMutation', () => { ).toBeInTheDocument() expect(onMutate).toHaveBeenCalledTimes(1) - expect(onMutate).toHaveBeenCalledWith('todo') + expect(onMutate).toHaveBeenCalledWith('todo', { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) onlineMock.mockRestore() window.dispatchEvent(new Event('online')) @@ -1053,13 +1057,22 @@ describe('useMutation', () => { expect(onSuccess).toHaveBeenCalledTimes(2) expect(onSettled).toHaveBeenCalledTimes(2) expect(onSuccessMutate).toHaveBeenCalledTimes(1) - expect(onSuccessMutate).toHaveBeenCalledWith('result2', 'todo', undefined) + expect(onSuccessMutate).toHaveBeenCalledWith('result2', 'todo', undefined, { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) expect(onSettledMutate).toHaveBeenCalledTimes(1) expect(onSettledMutate).toHaveBeenCalledWith( 'result2', null, 'todo', undefined, + { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }, ) }) @@ -1098,7 +1111,11 @@ describe('useMutation', () => { await vi.advanceTimersByTimeAsync(10) await rendered.findByText('status: error') - expect(onError).toHaveBeenCalledWith(error, 'todo', undefined) + expect(onError).toHaveBeenCalledWith(error, 'todo', undefined, { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) }) it('should go to error state if onError callback errors', async () => { @@ -1183,7 +1200,11 @@ describe('useMutation', () => { rendered.getByText('error: mutateFnError, status: error'), ).toBeInTheDocument() - expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined) + expect(onError).toHaveBeenCalledWith(mutateFnError, 'todo', undefined, { + client: queryClient, + meta: undefined, + mutationKey: undefined, + }) }) it('should use provided custom queryClient', async () => { diff --git a/packages/solid-query/src/types.ts b/packages/solid-query/src/types.ts index 2d6876a677..2f52caaafc 100644 --- a/packages/solid-query/src/types.ts +++ b/packages/solid-query/src/types.ts @@ -144,9 +144,9 @@ export interface SolidMutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > extends OmitKeyof< - MutationObserverOptions, + MutationObserverOptions, '_defaulted' > {} @@ -154,40 +154,47 @@ export type UseMutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> = Accessor> + TOnMutateResult = unknown, +> = Accessor> export type UseMutateFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = ( - ...args: Parameters> + ...args: Parameters< + MutateFunction + > ) => void export type UseMutateAsyncFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> = MutateFunction + TOnMutateResult = unknown, +> = MutateFunction export type UseBaseMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > = Override< - MutationObserverResult, - { mutate: UseMutateFunction } + MutationObserverResult, + { mutate: UseMutateFunction } > & { - mutateAsync: UseMutateAsyncFunction + mutateAsync: UseMutateAsyncFunction< + TData, + TError, + TVariables, + TOnMutateResult + > } export type UseMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, -> = UseBaseMutationResult + TOnMutateResult = unknown, +> = UseBaseMutationResult diff --git a/packages/solid-query/src/useMutation.ts b/packages/solid-query/src/useMutation.ts index df114395c7..056766a643 100644 --- a/packages/solid-query/src/useMutation.ts +++ b/packages/solid-query/src/useMutation.ts @@ -16,27 +16,31 @@ export function useMutation< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( - options: UseMutationOptions, + options: UseMutationOptions, queryClient?: Accessor, -): UseMutationResult { +): UseMutationResult { const client = createMemo(() => useQueryClient(queryClient?.())) - const observer = new MutationObserver( - client(), - options(), - ) + const observer = new MutationObserver< + TData, + TError, + TVariables, + TOnMutateResult + >(client(), options()) - const mutate: UseMutateFunction = ( - variables, - mutateOptions, - ) => { + const mutate: UseMutateFunction< + TData, + TError, + TVariables, + TOnMutateResult + > = (variables, mutateOptions) => { observer.mutate(variables, mutateOptions).catch(noop) } const [state, setState] = createStore< - UseMutationResult + UseMutationResult >({ ...observer.getCurrentResult(), mutate, diff --git a/packages/svelte-query/src/createMutation.ts b/packages/svelte-query/src/createMutation.ts index a08dcf91fa..698ea75ac7 100644 --- a/packages/svelte-query/src/createMutation.ts +++ b/packages/svelte-query/src/createMutation.ts @@ -14,22 +14,24 @@ export function createMutation< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( options: StoreOrVal< - CreateMutationOptions + CreateMutationOptions >, queryClient?: QueryClient, -): CreateMutationResult { +): CreateMutationResult { const client = useQueryClient(queryClient) const optionsStore = isSvelteStore(options) ? options : readable(options) - const observer = new MutationObserver( - client, - get(optionsStore), - ) - let mutate: CreateMutateFunction + const observer = new MutationObserver< + TData, + TError, + TVariables, + TOnMutateResult + >(client, get(optionsStore)) + let mutate: CreateMutateFunction optionsStore.subscribe(($options) => { mutate = (variables, mutateOptions) => { diff --git a/packages/svelte-query/src/types.ts b/packages/svelte-query/src/types.ts index ef7ba2e384..7a25a15bce 100644 --- a/packages/svelte-query/src/types.ts +++ b/packages/svelte-query/src/types.ts @@ -87,9 +87,9 @@ export type CreateMutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = OmitKeyof< - MutationObserverOptions, + MutationObserverOptions, '_defaulted' > @@ -97,28 +97,35 @@ export type CreateMutateFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = ( - ...args: Parameters> + ...args: Parameters< + MutateFunction + > ) => void export type CreateMutateAsyncFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> = MutateFunction + TOnMutateResult = unknown, +> = MutateFunction export type CreateBaseMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, + TOnMutateResult = unknown, > = Override< - MutationObserverResult, - { mutate: CreateMutateFunction } + MutationObserverResult, + { mutate: CreateMutateFunction } > & { - mutateAsync: CreateMutateAsyncFunction + mutateAsync: CreateMutateAsyncFunction< + TData, + TError, + TVariables, + TOnMutateResult + > } /** Result from createMutation */ @@ -126,8 +133,10 @@ export type CreateMutationResult< TData = unknown, TError = DefaultError, TVariables = unknown, - TContext = unknown, -> = Readable> + TOnMutateResult = unknown, +> = Readable< + CreateBaseMutationResult +> /** Options for useMutationState */ export type MutationStateOptions = { diff --git a/packages/vue-query/src/mutationCache.ts b/packages/vue-query/src/mutationCache.ts index f97f6a77ec..026632cff3 100644 --- a/packages/vue-query/src/mutationCache.ts +++ b/packages/vue-query/src/mutationCache.ts @@ -12,10 +12,10 @@ export class MutationCache extends MC { TData = unknown, TError = DefaultError, TVariables = any, - TContext = unknown, + TOnMutateResult = unknown, >( filters: MaybeRefDeep, - ): Mutation | undefined { + ): Mutation | undefined { return super.find(cloneDeepUnref(filters)) } diff --git a/packages/vue-query/src/queryClient.ts b/packages/vue-query/src/queryClient.ts index 2dfc53e803..7f9a0894bf 100644 --- a/packages/vue-query/src/queryClient.ts +++ b/packages/vue-query/src/queryClient.ts @@ -456,11 +456,11 @@ export class QueryClient extends QC { TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( mutationKey: MaybeRefDeep, options: MaybeRefDeep< - MutationObserverOptions + MutationObserverOptions >, ): void { super.setMutationDefaults( diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts index d507bbc74f..2a2af89aa6 100644 --- a/packages/vue-query/src/useMutation.ts +++ b/packages/vue-query/src/useMutation.ts @@ -24,53 +24,64 @@ import type { import type { MaybeRefDeep, ShallowOption } from './types' import type { QueryClient } from './queryClient' -type MutationResult = DistributiveOmit< - MutationObserverResult, - 'mutate' | 'reset' -> +type MutationResult = + DistributiveOmit< + MutationObserverResult, + 'mutate' | 'reset' + > -type UseMutationOptionsBase = - MutationObserverOptions & ShallowOption +type UseMutationOptionsBase = + MutationObserverOptions & + ShallowOption export type UseMutationOptions< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, -> = MaybeRefDeep> + TOnMutateResult = unknown, +> = MaybeRefDeep< + UseMutationOptionsBase +> type MutateSyncFunction< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, > = ( - ...options: Parameters> + ...options: Parameters< + MutateFunction + > ) => void export type UseMutationReturnType< TData, TError, TVariables, - TContext, - TResult = MutationResult, + TOnMutateResult, + TResult = MutationResult, > = ToRefs> & { - mutate: MutateSyncFunction - mutateAsync: MutateFunction - reset: MutationObserverResult['reset'] + mutate: MutateSyncFunction + mutateAsync: MutateFunction + reset: MutationObserverResult< + TData, + TError, + TVariables, + TOnMutateResult + >['reset'] } export function useMutation< TData = unknown, TError = DefaultError, TVariables = void, - TContext = unknown, + TOnMutateResult = unknown, >( mutationOptions: MaybeRefDeep< - UseMutationOptionsBase + UseMutationOptionsBase >, queryClient?: QueryClient, -): UseMutationReturnType { +): UseMutationReturnType { if (process.env.NODE_ENV === 'development') { if (!getCurrentScope()) { console.warn( @@ -94,7 +105,7 @@ export function useMutation< const mutate = ( variables: TVariables, - mutateOptions?: MutateOptions, + mutateOptions?: MutateOptions, ) => { observer.mutate(variables, mutateOptions).catch(() => { // This is intentional @@ -114,7 +125,7 @@ export function useMutation< : readonly(state) const resultRefs = toRefs(readonlyState) as ToRefs< - Readonly> + Readonly> > watch( From 2a00fb6504e777fa1a9c9a46ce9f1b7ccdb3835a Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 16 Sep 2025 08:27:49 +0000 Subject: [PATCH 411/432] release: v5.89.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +++--- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 10 +++++----- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 10 +++++----- .../react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 6 +++--- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-experimental/package.json | 2 +- packages/eslint-plugin-query/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- .../query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 77 files changed, 136 insertions(+), 136 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index af145ab59d..442ed051d2 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index ee09dca976..232fbb8875 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.87.4", + "@tanstack/query-async-storage-persister": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index c27838937f..91392b754f 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 5e067de33a..5922d0bbdf 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 9bdf3fffb8..2eb45df11f 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 093e317bd3..d4bf8ea5d1 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index c01b4dcd4b..5cf501e648 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 635af40e72..a528fb5aef 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 7a96c7897d..090080a50b 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 18278b9648..4adb18d1d2 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 0ba49720e9..6e32c3c8f1 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.88.0", + "@tanstack/angular-query-experimental": "^5.89.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 9039168878..fc8ed700e8 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.86.0", + "@tanstack/eslint-plugin-query": "^5.89.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 40a9ac08e7..148074307c 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 06a6aca8e8..449870cfc7 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 2f164458fc..754560c844 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.4", - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", - "@tanstack/react-query-persist-client": "^5.87.4", + "@tanstack/query-async-storage-persister": "^5.89.0", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query-persist-client": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.86.0", + "@tanstack/eslint-plugin-query": "^5.89.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 09bab25609..0ba3e0dc99 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 3d9d49608f..5c34729366 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index dcc65ab7fb..a2a135c321 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 92fabf3be6..24c696598d 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.4", - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", - "@tanstack/react-query-persist-client": "^5.87.4", + "@tanstack/query-async-storage-persister": "^5.89.0", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query-persist-client": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.86.0", + "@tanstack/eslint-plugin-query": "^5.89.0", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index d37fc5d3fd..783a7c1547 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 7edc2da1e4..b96699eeb6 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 7d58dcf1db..338125a206 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index dce3cec36b..c3a88ee739 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", - "@tanstack/react-query-next-experimental": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query-next-experimental": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 55ceb233ac..46abca0a7b 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index c6b42a1550..a0c2c6253d 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.4", + "@tanstack/query-async-storage-persister": "^5.89.0", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", - "@tanstack/react-query-persist-client": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query-persist-client": "^5.89.0", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index f6adf18ef0..b2b2340cba 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index c0b135472a..9ec96498c7 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 4dd42eb164..efe9c6119a 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 3a76418b97..521ae83bb8 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 78001ad3c2..4461cba176 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 7462c873fa..73079d88f5 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index 5609a62c1f..e8f54d5ce3 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 51e57967c8..97b127cf40 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 7634cb7fd9..2b109bed17 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index b69b567914..86972f545a 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index 515854129e..c6574d71f3 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 723a437f99..14fe7cb5c8 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.87.4", - "@tanstack/react-query-devtools": "^5.87.4", + "@tanstack/react-query": "^5.89.0", + "@tanstack/react-query-devtools": "^5.89.0", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index bd80279a3e..e1567026cd 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.87.4", - "@tanstack/solid-query-devtools": "^5.87.4", + "@tanstack/solid-query": "^5.89.0", + "@tanstack/solid-query-devtools": "^5.89.0", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index d87675b276..fe709b09b7 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.4", - "@tanstack/solid-query-devtools": "^5.87.4", + "@tanstack/solid-query": "^5.89.0", + "@tanstack/solid-query-devtools": "^5.89.0", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 8394bf3c32..4082c9fc9a 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.4", - "@tanstack/solid-query-devtools": "^5.87.4", + "@tanstack/solid-query": "^5.89.0", + "@tanstack/solid-query-devtools": "^5.89.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 5d70a55775..d6ebfb1b2b 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.4", - "@tanstack/solid-query-devtools": "^5.87.4", + "@tanstack/solid-query": "^5.89.0", + "@tanstack/solid-query-devtools": "^5.89.0", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index a5eb0ffb67..91597043c5 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.87.4", - "@tanstack/solid-query-devtools": "^5.87.4", + "@tanstack/solid-query": "^5.89.0", + "@tanstack/solid-query-devtools": "^5.89.0", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.86.0", + "@tanstack/eslint-plugin-query": "^5.89.0", "typescript": "5.8.3", "vite": "^6.2.4", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index e199d1d44b..f5c6fe3c56 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.87.4", - "@tanstack/solid-query-devtools": "^5.87.4", + "@tanstack/solid-query": "^5.89.0", + "@tanstack/solid-query-devtools": "^5.89.0", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 53060dbfb8..d8d6486182 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4" + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index 4524fb0668..eaf8942f3b 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.87.4", - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4", - "@tanstack/svelte-query-persist-client": "^5.87.4" + "@tanstack/query-async-storage-persister": "^5.89.0", + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0", + "@tanstack/svelte-query-persist-client": "^5.89.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index a4d90cf356..9866462cc4 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4" + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index f8ecb7b4db..e8ecce8097 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4" + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index ec9e620943..90e382c13f 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4" + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 82517900dc..9653895ce0 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4" + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 6f21c3f08e..14c0526a1c 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4" + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index bbbacc06ed..f640e73c44 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.87.4", - "@tanstack/svelte-query-devtools": "^5.87.4" + "@tanstack/svelte-query": "^5.89.0", + "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.1", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 584ff5a82b..47fc5a2a8b 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.4", + "@tanstack/vue-query": "^5.89.0", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 7945f33f15..5729e895c9 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.4", + "@tanstack/vue-query": "^5.89.0", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 5a1d61f12b..df3c4c1eb1 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.4", - "@tanstack/vue-query-devtools": "^5.87.4", + "@tanstack/vue-query": "^5.89.0", + "@tanstack/vue-query-devtools": "^5.89.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index f4500ef312..c92c147fb7 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.4", + "@tanstack/vue-query": "^5.89.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index 2667f39b77..cc6a578de4 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.87.4" + "@tanstack/vue-query": "^5.89.0" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index dea9fd113f..c64f72dc54 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.87.4", - "@tanstack/query-persist-client-core": "^5.87.4", - "@tanstack/query-sync-storage-persister": "^5.87.4", - "@tanstack/vue-query": "^5.87.4", + "@tanstack/query-core": "^5.89.0", + "@tanstack/query-persist-client-core": "^5.89.0", + "@tanstack/query-sync-storage-persister": "^5.89.0", + "@tanstack/vue-query": "^5.89.0", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 0f74ac042c..a0eceffc79 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.87.4", - "@tanstack/vue-query-devtools": "^5.87.4", + "@tanstack/vue-query": "^5.89.0", + "@tanstack/vue-query-devtools": "^5.89.0", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 642547ed4b..cd4361d9ee 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.88.0", + "version": "5.89.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index 38ab20c56d..ca4c036b48 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.86.0", + "version": "5.89.0", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index 64e223c3b9..e0752c4a1d 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.87.4", + "version": "5.89.0", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 47d09d5576..607f38087b 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.87.4", + "version": "5.89.0", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index a5103bbc0f..34ca1a922f 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.87.4", + "version": "5.89.0", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index 91eb4adacf..eb9202e326 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.87.4", + "version": "5.89.0", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index a9e48886a2..66515e7e38 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.87.4", + "version": "5.89.0", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 35d7910e6f..d831b0570f 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.87.4", + "version": "5.89.0", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index ef2f2d59dd..8bf67974d7 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.87.4", + "version": "5.89.0", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 1555833fa0..7af975e5ed 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.87.4", + "version": "5.89.0", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 339f5c4cb6..e22411da01 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.87.4", + "version": "5.89.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 5817191c08..5f4994aa03 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.87.4", + "version": "5.89.0", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 03be970fcf..b50dd5d7c2 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.87.4", + "version": "5.89.0", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 3b50187a4c..4db80f4dcb 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.87.4", + "version": "5.89.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 2a3f10c83c..78d0a5bac1 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.87.4", + "version": "5.89.0", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index 7c0368fcd7..a607062234 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.87.4", + "version": "5.89.0", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 086ed64acd..cef4a23c8a 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.87.4", + "version": "5.89.0", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 78bceecd7e..b59ceca956 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.87.4", + "version": "5.89.0", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 48974d1758..b718f5514e 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.87.4", + "version": "5.89.0", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From ed21249708de6202f62a98d1fedfdc68b31d1a0a Mon Sep 17 00:00:00 2001 From: Corbin Crutchley Date: Thu, 18 Sep 2025 10:50:58 -0700 Subject: [PATCH 412/432] fix(angular-query) fix injectQueries types * fix(angular-query-experimental): typings for injectQueries should now behave properly * fix(angular-query-experimental): behaviors of injectQuery now work at runtime Mostly * ci: apply automated fixes * add signal proxy * ci: apply automated fixes * update @testing-library/angular * fix build * rename test file * ci: apply automated fixes * fix type error * apply corerabbit suggestions --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Arnoud de Vries <6420061+arnoud-dv@users.noreply.github.com> --- .../angular-query-experimental/package.json | 1 + .../src/__tests__/inject-queries.test-d.ts | 177 ++++++++++++++ .../src/__tests__/inject-queries.test.ts | 79 +++++++ .../src/inject-queries.ts | 222 +++++++++++------- .../angular-query-persist-client/package.json | 2 +- pnpm-lock.yaml | 23 +- 6 files changed, 413 insertions(+), 91 deletions(-) create mode 100644 packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts create mode 100644 packages/angular-query-experimental/src/__tests__/inject-queries.test.ts diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index cd4361d9ee..02afc6b66e 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -94,6 +94,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@tanstack/query-test-utils": "workspace:*", + "@testing-library/angular": "^18.0.0", "eslint-plugin-jsdoc": "^50.5.0", "npm-run-all2": "^5.0.0", "vite-plugin-dts": "4.2.3", diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts new file mode 100644 index 0000000000..62547fd9e0 --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test-d.ts @@ -0,0 +1,177 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { skipToken } from '..' +import { injectQueries } from '../inject-queries' +import { queryOptions } from '../query-options' +import type { CreateQueryOptions, CreateQueryResult, OmitKeyof } from '..' +import type { Signal } from '@angular/core' + +describe('InjectQueries config object overload', () => { + it('TData should always be defined when initialData is provided as an object', () => { + const query1 = { + queryKey: ['key1'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: false, + }, + } + + const query2 = { + queryKey: ['key2'], + queryFn: () => 'Query Data', + initialData: 'initial data', + } + + const query3 = { + queryKey: ['key2'], + queryFn: () => 'Query Data', + } + + const queryResults = injectQueries(() => ({ + queries: [query1, query2, query3], + })) + + const query1Data = queryResults()[0].data() + const query2Data = queryResults()[1].data() + const query3Data = queryResults()[2].data() + + expectTypeOf(query1Data).toEqualTypeOf<{ wow: boolean }>() + expectTypeOf(query2Data).toEqualTypeOf() + expectTypeOf(query3Data).toEqualTypeOf() + }) + + it('TData should be defined when passed through queryOptions', () => { + const options = queryOptions({ + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: { + wow: true, + }, + }) + const queryResults = injectQueries(() => ({ queries: [options] })) + + const data = queryResults()[0].data() + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean }>() + }) + + it('should be possible to define a different TData than TQueryFnData using select with queryOptions spread into injectQuery', () => { + const query1 = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + select: (data) => data > 1, + }) + + const query2 = { + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + select: (data: number) => data > 1, + } + + const queryResults = injectQueries(() => ({ queries: [query1, query2] })) + const query1Data = queryResults()[0].data() + const query2Data = queryResults()[1].data() + + expectTypeOf(query1Data).toEqualTypeOf() + expectTypeOf(query2Data).toEqualTypeOf() + }) + + it('TData should have undefined in the union when initialData is provided as a function which can return undefined', () => { + const queryResults = injectQueries(() => ({ + queries: [ + { + queryKey: ['key'], + queryFn: () => { + return { + wow: true, + } + }, + initialData: () => undefined as { wow: boolean } | undefined, + }, + ], + })) + + const data = queryResults()[0].data() + + expectTypeOf(data).toEqualTypeOf<{ wow: boolean } | undefined>() + }) + + describe('custom injectable', () => { + it('should allow custom hooks using UseQueryOptions', () => { + type Data = string + + const injectCustomQueries = ( + options?: OmitKeyof, 'queryKey' | 'queryFn'>, + ) => { + return injectQueries(() => ({ + queries: [ + { + ...options, + queryKey: ['todos-key'], + queryFn: () => Promise.resolve('data'), + }, + ], + })) + } + + const queryResults = injectCustomQueries() + const data = queryResults()[0].data() + + expectTypeOf(data).toEqualTypeOf() + }) + }) + + it('TData should have correct type when conditional skipToken is passed', () => { + const queryResults = injectQueries(() => ({ + queries: [ + { + queryKey: ['withSkipToken'], + queryFn: Math.random() > 0.5 ? skipToken : () => Promise.resolve(5), + }, + ], + })) + + const firstResult = queryResults()[0] + + expectTypeOf(firstResult).toEqualTypeOf>() + expectTypeOf(firstResult.data()).toEqualTypeOf() + }) + + it('should return correct data for dynamic queries with mixed result types', () => { + const Queries1 = { + get: () => + queryOptions({ + queryKey: ['key1'], + queryFn: () => Promise.resolve(1), + }), + } + const Queries2 = { + get: () => + queryOptions({ + queryKey: ['key2'], + queryFn: () => Promise.resolve(true), + }), + } + + const queries1List = [1, 2, 3].map(() => ({ ...Queries1.get() })) + const result = injectQueries(() => ({ + queries: [...queries1List, { ...Queries2.get() }], + })) + + expectTypeOf(result).branded.toEqualTypeOf< + Signal< + [ + ...Array>, + CreateQueryResult, + ] + > + >() + }) +}) diff --git a/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts new file mode 100644 index 0000000000..3fb3d5a626 --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/inject-queries.test.ts @@ -0,0 +1,79 @@ +import { beforeEach, describe, expect, it } from 'vitest' +import { render } from '@testing-library/angular' +import { + Component, + effect, + provideZonelessChangeDetection, +} from '@angular/core' +import { TestBed } from '@angular/core/testing' +import { queryKey } from '@tanstack/query-test-utils' +import { QueryClient, provideTanStackQuery } from '..' +import { injectQueries } from '../inject-queries' + +let queryClient: QueryClient + +beforeEach(() => { + queryClient = new QueryClient() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) +}) + +describe('injectQueries', () => { + it('should return the correct states', async () => { + const key1 = queryKey() + const key2 = queryKey() + const results: Array>> = [] + + @Component({ + template: ` +
+
+ data1: {{ result()[0].data() ?? 'null' }}, data2: + {{ result()[1].data() ?? 'null' }} +
+
+ `, + }) + class Page { + toString(val: any) { + return String(val) + } + result = injectQueries(() => ({ + queries: [ + { + queryKey: key1, + queryFn: async () => { + await new Promise((r) => setTimeout(r, 10)) + return 1 + }, + }, + { + queryKey: key2, + queryFn: async () => { + await new Promise((r) => setTimeout(r, 100)) + return 2 + }, + }, + ], + })) + + _pushResults = effect(() => { + const snapshot = this.result().map((q) => ({ data: q.data() })) + results.push(snapshot) + }) + } + + const rendered = await render(Page) + + await rendered.findByText('data1: 1, data2: 2') + + expect(results.length).toBe(3) + expect(results[0]).toMatchObject([{ data: undefined }, { data: undefined }]) + expect(results[1]).toMatchObject([{ data: 1 }, { data: undefined }]) + expect(results[2]).toMatchObject([{ data: 1 }, { data: 2 }]) + }) +}) diff --git a/packages/angular-query-experimental/src/inject-queries.ts b/packages/angular-query-experimental/src/inject-queries.ts index 0cbcf3fb6a..2b7707158d 100644 --- a/packages/angular-query-experimental/src/inject-queries.ts +++ b/packages/angular-query-experimental/src/inject-queries.ts @@ -13,9 +13,10 @@ import { inject, runInInjectionContext, signal, + untracked, } from '@angular/core' +import { signalProxy } from './signal-proxy' import { injectIsRestoring } from './inject-is-restoring' -import type { Signal } from '@angular/core' import type { DefaultError, OmitKeyof, @@ -24,19 +25,24 @@ import type { QueryFunction, QueryKey, QueryObserverOptions, - QueryObserverResult, ThrowOnError, } from '@tanstack/query-core' +import type { + CreateQueryOptions, + CreateQueryResult, + DefinedCreateQueryResult, +} from './types' +import type { Signal } from '@angular/core' // This defines the `CreateQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`. -// `placeholderData` function does not have a parameter +// `placeholderData` function always gets undefined passed type QueryObserverOptionsForCreateQueries< TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, > = OmitKeyof< - QueryObserverOptions, + CreateQueryOptions, 'placeholderData' > & { placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction @@ -46,9 +52,9 @@ type QueryObserverOptionsForCreateQueries< type MAXIMUM_DEPTH = 20 // Widen the type of the symbol to enable type inference even if skipToken is not immutable. -type SkipTokenForUseQueries = symbol +type SkipTokenForCreateQueries = symbol -type GetOptions = +type GetCreateQueryOptionsForCreateQueries = // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData } T extends { queryFnData: infer TQueryFnData @@ -71,8 +77,8 @@ type GetOptions = T extends { queryFn?: | QueryFunction - | SkipTokenForUseQueries - select: (data: any) => infer TData + | SkipTokenForCreateQueries + select?: (data: any) => infer TData throwOnError?: ThrowOnError } ? QueryObserverOptionsForCreateQueries< @@ -84,53 +90,71 @@ type GetOptions = : // Fallback QueryObserverOptionsForCreateQueries -type GetResults = +// A defined initialData setting should return a DefinedCreateQueryResult rather than CreateQueryResult +type GetDefinedOrUndefinedQueryResult = T extends { + initialData?: infer TInitialData +} + ? unknown extends TInitialData + ? CreateQueryResult + : TInitialData extends TData + ? DefinedCreateQueryResult + : TInitialData extends () => infer TInitialDataResult + ? unknown extends TInitialDataResult + ? CreateQueryResult + : TInitialDataResult extends TData + ? DefinedCreateQueryResult + : CreateQueryResult + : CreateQueryResult + : CreateQueryResult + +type GetCreateQueryResult = // Part 1: responsible for mapping explicit type parameter to function result, if object T extends { queryFnData: any; error?: infer TError; data: infer TData } - ? QueryObserverResult + ? GetDefinedOrUndefinedQueryResult : T extends { queryFnData: infer TQueryFnData; error?: infer TError } - ? QueryObserverResult + ? GetDefinedOrUndefinedQueryResult : T extends { data: infer TData; error?: infer TError } - ? QueryObserverResult + ? GetDefinedOrUndefinedQueryResult : // Part 2: responsible for mapping explicit type parameter to function result, if tuple T extends [any, infer TError, infer TData] - ? QueryObserverResult + ? GetDefinedOrUndefinedQueryResult : T extends [infer TQueryFnData, infer TError] - ? QueryObserverResult + ? GetDefinedOrUndefinedQueryResult : T extends [infer TQueryFnData] - ? QueryObserverResult + ? GetDefinedOrUndefinedQueryResult : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided T extends { queryFn?: | QueryFunction - | SkipTokenForUseQueries - select: (data: any) => infer TData + | SkipTokenForCreateQueries + select?: (data: any) => infer TData throwOnError?: ThrowOnError } - ? QueryObserverResult< + ? GetDefinedOrUndefinedQueryResult< + T, unknown extends TData ? TQueryFnData : TData, unknown extends TError ? DefaultError : TError > : // Fallback - QueryObserverResult + CreateQueryResult /** * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param */ export type QueriesOptions< T extends Array, - TResult extends Array = [], + TResults extends Array = [], TDepth extends ReadonlyArray = [], > = TDepth['length'] extends MAXIMUM_DEPTH ? Array : T extends [] ? [] : T extends [infer Head] - ? [...TResult, GetOptions] - : T extends [infer Head, ...infer Tail] + ? [...TResults, GetCreateQueryOptionsForCreateQueries] + : T extends [infer Head, ...infer Tails] ? QueriesOptions< - [...Tail], - [...TResult, GetOptions], + [...Tails], + [...TResults, GetCreateQueryOptionsForCreateQueries], [...TDepth, 1] > : ReadonlyArray extends T @@ -161,55 +185,44 @@ export type QueriesOptions< */ export type QueriesResults< T extends Array, - TResult extends Array = [], + TResults extends Array = [], TDepth extends ReadonlyArray = [], > = TDepth['length'] extends MAXIMUM_DEPTH - ? Array + ? Array : T extends [] ? [] : T extends [infer Head] - ? [...TResult, GetResults] - : T extends [infer Head, ...infer Tail] + ? [...TResults, GetCreateQueryResult] + : T extends [infer Head, ...infer Tails] ? QueriesResults< - [...Tail], - [...TResult, GetResults], + [...Tails], + [...TResults, GetCreateQueryResult], [...TDepth, 1] > - : T extends Array< - QueryObserverOptionsForCreateQueries< - infer TQueryFnData, - infer TError, - infer TData, - any - > - > - ? // Dynamic-size (homogenous) CreateQueryOptions array: map directly to array of results - Array< - QueryObserverResult< - unknown extends TData ? TQueryFnData : TData, - unknown extends TError ? DefaultError : TError - > - > - : // Fallback - Array + : { [K in keyof T]: GetCreateQueryResult } + +export interface InjectQueriesOptions< + T extends Array, + TCombinedResult = QueriesResults, +> { + queries: + | readonly [...QueriesOptions] + | readonly [ + ...{ [K in keyof T]: GetCreateQueryOptionsForCreateQueries }, + ] + combine?: (result: QueriesResults) => TCombinedResult +} /** - * @param root0 - * @param root0.queries - * @param root0.combine - * @param injector + * @param optionsFn - A function that returns queries' options. + * @param injector - The Angular injector to use. + * @public */ export function injectQueries< T extends Array, TCombinedResult = QueriesResults, >( - { - queries, - ...options - }: { - queries: Signal<[...QueriesOptions]> - combine?: (result: QueriesResults) => TCombinedResult - }, + optionsFn: () => InjectQueriesOptions, injector?: Injector, ): Signal { !injector && assertInInjectionContext(injectQueries) @@ -219,9 +232,21 @@ export function injectQueries< const queryClient = inject(QueryClient) const isRestoring = injectIsRestoring() + /** + * Signal that has the default options from query client applied + * computed() is used so signals can be inserted into the options + * making it reactive. Wrapping options in a function ensures embedded expressions + * are preserved and can keep being applied after signal changes + */ + const optionsSignal = computed(() => { + return optionsFn() + }) + const defaultedQueries = computed(() => { - return queries().map((opts) => { - const defaultedOptions = queryClient.defaultQueryOptions(opts) + return optionsSignal().queries.map((opts) => { + const defaultedOptions = queryClient.defaultQueryOptions( + opts as QueryObserverOptions, + ) // Make sure the results are already in fetching state before subscribing or updating options defaultedOptions._optimisticResults = isRestoring() ? 'isRestoring' @@ -231,37 +256,76 @@ export function injectQueries< }) }) - const observer = new QueriesObserver( - queryClient, - defaultedQueries(), - options as QueriesObserverOptions, + const observerSignal = (() => { + let instance: QueriesObserver | null = null + + return computed(() => { + return (instance ||= new QueriesObserver( + queryClient, + defaultedQueries(), + optionsSignal() as QueriesObserverOptions, + )) + }) + })() + + const optimisticResultSignal = computed(() => + observerSignal().getOptimisticResult( + defaultedQueries(), + (optionsSignal() as QueriesObserverOptions).combine, + ), ) // Do not notify on updates because of changes in the options because // these changes should already be reflected in the optimistic result. effect(() => { - observer.setQueries( + observerSignal().setQueries( defaultedQueries(), - options as QueriesObserverOptions, + optionsSignal() as QueriesObserverOptions, ) }) - const [, getCombinedResult] = observer.getOptimisticResult( - defaultedQueries(), - (options as QueriesObserverOptions).combine, - ) + const optimisticCombinedResultSignal = computed(() => { + const [_optimisticResult, getCombinedResult, trackResult] = + optimisticResultSignal() + return getCombinedResult(trackResult()) + }) - const result = signal(getCombinedResult() as any) + const resultFromSubscriberSignal = signal(null) effect(() => { - const unsubscribe = isRestoring() - ? () => undefined - : ngZone.runOutsideAngular(() => - observer.subscribe(notifyManager.batchCalls(result.set)), - ) - destroyRef.onDestroy(unsubscribe) + const observer = observerSignal() + const [_optimisticResult, getCombinedResult] = optimisticResultSignal() + + untracked(() => { + const unsubscribe = isRestoring() + ? () => undefined + : ngZone.runOutsideAngular(() => + observer.subscribe( + notifyManager.batchCalls((state) => { + resultFromSubscriberSignal.set(getCombinedResult(state)) + }), + ), + ) + + destroyRef.onDestroy(unsubscribe) + }) + }) + + const resultSignal = computed(() => { + const subscriberResult = resultFromSubscriberSignal() + const optimisticResult = optimisticCombinedResultSignal() + return subscriberResult ?? optimisticResult }) - return result - }) + return computed(() => { + const result = resultSignal() + const { combine } = optionsSignal() + + return combine + ? result + : (result as QueriesResults).map((query) => + signalProxy(signal(query)), + ) + }) + }) as unknown as Signal } diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 3f455949cf..07e6961197 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -64,7 +64,7 @@ "@angular/platform-browser": "^20.0.0", "@tanstack/angular-query-experimental": "workspace:*", "@tanstack/query-test-utils": "workspace:*", - "@testing-library/angular": "^17.3.7", + "@testing-library/angular": "^18.0.0", "@testing-library/dom": "^10.4.0", "eslint-plugin-jsdoc": "^50.5.0", "npm-run-all2": "^5.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17e4257268..95b6170724 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2260,6 +2260,9 @@ importers: '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils + '@testing-library/angular': + specifier: ^18.0.0 + version: 18.0.0(b638270d50b9f611fb362719c9f1adf5) eslint-plugin-jsdoc: specifier: ^50.5.0 version: 50.5.0(eslint@9.29.0(jiti@2.4.2)) @@ -2309,8 +2312,8 @@ importers: specifier: workspace:* version: link:../query-test-utils '@testing-library/angular': - specifier: ^17.3.7 - version: 17.3.7(44e06ac0fb247039d3919c909462d711) + specifier: ^18.0.0 + version: 18.0.0(b638270d50b9f611fb362719c9f1adf5) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -6594,14 +6597,13 @@ packages: resolution: {integrity: sha512-WpL1C9iR5/U7g3GpvHIssN5QvKnDnWhW05BQhaD6bAqoPCkQyBepxUF8ZRO4IGZRGVAZeMVqTbUA05BAQH/88g==} engines: {node: '>=18'} - '@testing-library/angular@17.3.7': - resolution: {integrity: sha512-99Wf/06CCyBP3rmIu+WacUTGZMDKTQR12phe1lUMrknwxHLFUf5jn230L/mW4XIZ+ThDJ/4D6OzhVskbOYDqig==} + '@testing-library/angular@18.0.0': + resolution: {integrity: sha512-0seNMa4ql2I3VD7CtnI9i4sFgxEgRES+EtGid8H4MTuOK/dlj457mVk8tWdFjPQPC/cPromcUNw0is1ogO3DSA==} peerDependencies: - '@angular/animations': '>= 17.0.0' - '@angular/common': '>= 17.0.0' - '@angular/core': '>= 17.0.0' - '@angular/platform-browser': '>= 17.0.0' - '@angular/router': '>= 17.0.0' + '@angular/common': '>= 20.0.0' + '@angular/core': '>= 20.0.0' + '@angular/platform-browser': '>= 20.0.0' + '@angular/router': '>= 20.0.0' '@testing-library/dom': ^10.0.0 '@testing-library/dom@10.4.0': @@ -19888,9 +19890,8 @@ snapshots: - typescript - vite - '@testing-library/angular@17.3.7(44e06ac0fb247039d3919c909462d711)': + '@testing-library/angular@18.0.0(b638270d50b9f611fb362719c9f1adf5)': dependencies: - '@angular/animations': 20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) '@angular/common': 20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) '@angular/platform-browser': 20.0.0(@angular/animations@20.0.0(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0)) From 7d370b91f9a2c572c49c669ffab28ce0ec6f2de2 Mon Sep 17 00:00:00 2001 From: Sarah Date: Fri, 19 Sep 2025 09:37:54 -0700 Subject: [PATCH 413/432] docs: Improve README image responsiveness (#9665) * Enhance partner logos with responsive images * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- README.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 101f974cbb..a03ebce019 100644 --- a/README.md +++ b/README.md @@ -55,17 +55,24 @@ An async state management library built to simplify fetching, caching, synchroni - -
- - Code Rabbit - + + + + + CodeRabbit + + + - Cloudflare + + + + Cloudflare +
From 3bf9268770785d153bd9c22c553c110070b99c57 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Sat, 20 Sep 2025 18:46:18 +0200 Subject: [PATCH 414/432] feat(angular-query): integrate with Angular v19+ PendingTasks for whenStable() support (#9666) Integrates TanStack Query for Angular with Angular's PendingTasks API to properly track asynchronous operations, ensuring ApplicationRef.whenStable() waits for queries and mutations to complete before resolving. Features: - Cross-version compatibility (Angular v16+ with graceful degradation) - Tracks query fetchStatus and mutation isPending state - Automatic cleanup on component destruction - Comprehensive test coverage including edge cases Benefits: - Improved SSR: Server waits for data fetching before rendering - Better testing: fixture.whenStable() properly waits for async operations - Zoneless support: Correct change detection timing --- docs/framework/angular/zoneless.md | 2 + eslint.config.js | 8 +- .../eslint.config.js | 10 +- .../angular-query-experimental/package.json | 1 + .../src/__tests__/inject-mutation.test.ts | 226 ++++++ .../src/__tests__/inject-query.test.ts | 207 +++++- .../src/__tests__/pending-tasks.test.ts | 661 ++++++++++++++++++ .../src/create-base-query.ts | 45 +- .../src/inject-is-fetching.ts | 1 - .../src/inject-mutation.ts | 28 +- .../src/inject-queries.ts | 1 - .../src/pending-tasks-compat.ts | 28 + pnpm-lock.yaml | 3 + 13 files changed, 1198 insertions(+), 23 deletions(-) create mode 100644 packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts create mode 100644 packages/angular-query-experimental/src/pending-tasks-compat.ts diff --git a/docs/framework/angular/zoneless.md b/docs/framework/angular/zoneless.md index 1f8ddaa065..ee5811f1a8 100644 --- a/docs/framework/angular/zoneless.md +++ b/docs/framework/angular/zoneless.md @@ -8,3 +8,5 @@ Because the Angular adapter for TanStack Query is built on signals, it fully sup Among Zoneless benefits are improved performance and debugging experience. For details see the [Angular documentation](https://angular.dev/guide/zoneless). > Besides Zoneless, ZoneJS change detection is also fully supported. + +> When using Zoneless, ensure you are on Angular v19 or later to take advantage of the `PendingTasks` integration that keeps `ApplicationRef.whenStable()` in sync with ongoing queries and mutations. diff --git a/eslint.config.js b/eslint.config.js index f156cd2e9c..03252921f0 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -18,21 +18,25 @@ export default [ { cspell: { words: [ + 'Promisable', // Our public interface + 'TSES', // @typescript-eslint package's interface 'codemod', // We support our codemod 'combinate', // Library name + 'datatag', // Query options tagging 'extralight', // Our public interface 'jscodeshift', - 'Promisable', // Our public interface + 'refetches', // Query refetch operations 'retryer', // Our public interface 'solidjs', // Our target framework 'tabular-nums', // https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-numeric 'tanstack', // Our package scope 'todos', // Too general word to be caught as error - 'TSES', // @typescript-eslint package's interface 'tsqd', // Our public interface (TanStack Query Devtools shorthand) 'tsup', // We use tsup as builder 'typecheck', // Field of vite.config.ts 'vue-demi', // dependency of @tanstack/vue-query + 'ษตkind', // Angular specific + 'ษตproviders', // Angular specific ], }, }, diff --git a/packages/angular-query-experimental/eslint.config.js b/packages/angular-query-experimental/eslint.config.js index 425162bf51..40b6f5f812 100644 --- a/packages/angular-query-experimental/eslint.config.js +++ b/packages/angular-query-experimental/eslint.config.js @@ -9,14 +9,6 @@ export default [ pluginJsdoc.configs['flat/recommended-typescript'], { rules: { - 'cspell/spellchecker': [ - 'warn', - { - cspell: { - ignoreRegExpList: ['\\ษต.+'], - }, - }, - ], 'jsdoc/require-hyphen-before-param-description': 1, 'jsdoc/sort-tags': 1, 'jsdoc/require-throws': 1, @@ -36,6 +28,8 @@ export default [ files: ['**/__tests__/**'], rules: { '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/require-await': 'off', + 'jsdoc/require-returns': 'off', }, }, ] diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 02afc6b66e..06ede49d5b 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -97,6 +97,7 @@ "@testing-library/angular": "^18.0.0", "eslint-plugin-jsdoc": "^50.5.0", "npm-run-all2": "^5.0.0", + "rxjs": "^7.8.2", "vite-plugin-dts": "4.2.3", "vite-plugin-externalize-deps": "^0.9.0", "vite-tsconfig-paths": "^5.1.4" diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts index 120fd4fa5b..2adf0ee808 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test.ts @@ -1,4 +1,5 @@ import { + ApplicationRef, Component, Injector, input, @@ -466,5 +467,230 @@ describe('injectMutation', () => { ) }).not.toThrow() }) + + test('should complete mutation before whenStable() resolves', async () => { + const app = TestBed.inject(ApplicationRef) + let mutationStarted = false + let mutationCompleted = false + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationKey: ['pendingTasksTest'], + mutationFn: async (data: string) => { + mutationStarted = true + await sleep(50) + mutationCompleted = true + return `processed: ${data}` + }, + })), + ) + + // Initial state + expect(mutation.data()).toBeUndefined() + expect(mutationStarted).toBe(false) + + // Start mutation + mutation.mutate('test') + + // Wait for mutation to start and Angular to be "stable" + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(60) + await stablePromise + + // After whenStable(), mutation should be complete + expect(mutationStarted).toBe(true) + expect(mutationCompleted).toBe(true) + expect(mutation.isSuccess()).toBe(true) + expect(mutation.data()).toBe('processed: test') + }) + + test('should handle synchronous mutation with retry', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + const app = TestBed.inject(ApplicationRef) + let attemptCount = 0 + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + retry: 2, + retryDelay: 0, // No delay for synchronous retry + mutationFn: async (data: string) => { + attemptCount++ + if (attemptCount <= 2) { + throw new Error(`Sync attempt ${attemptCount} failed`) + } + return `processed: ${data}` + }, + })), + ) + + // Start mutation + mutation.mutate('retry-test') + + // Synchronize pending effects for each retry attempt + TestBed.tick() + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + + TestBed.tick() + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + + TestBed.tick() + + const stablePromise = app.whenStable() + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + await stablePromise + + expect(mutation.isSuccess()).toBe(true) + expect(mutation.data()).toBe('processed: retry-test') + expect(attemptCount).toBe(3) // Initial + 2 retries + }) + + test('should handle multiple synchronous mutations on same key', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + const app = TestBed.inject(ApplicationRef) + let callCount = 0 + + const mutation1 = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationKey: ['sync-mutation-key'], + mutationFn: async (data: string) => { + callCount++ + return `mutation1: ${data}` + }, + })), + ) + + const mutation2 = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationKey: ['sync-mutation-key'], + mutationFn: async (data: string) => { + callCount++ + return `mutation2: ${data}` + }, + })), + ) + + // Start both mutations + mutation1.mutate('test1') + mutation2.mutate('test2') + + // Synchronize pending effects + TestBed.tick() + + const stablePromise = app.whenStable() + // Flush microtasks to allow TanStack Query's scheduled notifications to process + await Promise.resolve() + await vi.advanceTimersByTimeAsync(1) + await stablePromise + + expect(mutation1.isSuccess()).toBe(true) + expect(mutation1.data()).toBe('mutation1: test1') + expect(mutation2.isSuccess()).toBe(true) + expect(mutation2.data()).toBe('mutation2: test2') + expect(callCount).toBe(2) + }) + + test('should handle synchronous mutation with optimistic updates', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + const app = TestBed.inject(ApplicationRef) + const testQueryKey = ['sync-optimistic'] + let onMutateCalled = false + let onSuccessCalled = false + + // Set initial data + queryClient.setQueryData(testQueryKey, 'initial') + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (data: string) => `final: ${data}`, // Synchronous resolution + onMutate: async (variables) => { + onMutateCalled = true + const previousData = queryClient.getQueryData(testQueryKey) + queryClient.setQueryData(testQueryKey, `optimistic: ${variables}`) + return { previousData } + }, + onSuccess: (data) => { + onSuccessCalled = true + queryClient.setQueryData(testQueryKey, data) + }, + })), + ) + + // Start mutation + mutation.mutate('test') + + // Synchronize pending effects + TestBed.tick() + + const stablePromise = app.whenStable() + // Flush microtasks to allow TanStack Query's scheduled notifications to process + await Promise.resolve() + await vi.advanceTimersByTimeAsync(1) + await stablePromise + + expect(onMutateCalled).toBe(true) + expect(onSuccessCalled).toBe(true) + expect(mutation.isSuccess()).toBe(true) + expect(mutation.data()).toBe('final: test') + expect(queryClient.getQueryData(testQueryKey)).toBe('final: test') + }) + + test('should handle synchronous mutation cancellation', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + const app = TestBed.inject(ApplicationRef) + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationKey: ['cancel-sync'], + mutationFn: async (data: string) => `processed: ${data}`, // Synchronous resolution + })), + ) + + // Start mutation + mutation.mutate('test') + + // Synchronize pending effects + TestBed.tick() + + const stablePromise = app.whenStable() + // Flush microtasks to allow TanStack Query's scheduled notifications to process + await Promise.resolve() + await vi.advanceTimersByTimeAsync(1) + await stablePromise + + // Synchronous mutations complete immediately + expect(mutation.isSuccess()).toBe(true) + expect(mutation.data()).toBe('processed: test') + }) }) }) diff --git a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts index 6197c73778..2f541788ab 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-query.test.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-query.test.ts @@ -1,4 +1,5 @@ import { + ApplicationRef, Component, Injector, computed, @@ -8,6 +9,11 @@ import { signal, } from '@angular/core' import { TestBed } from '@angular/core/testing' +import { HttpClient, provideHttpClient } from '@angular/common/http' +import { + HttpTestingController, + provideHttpClientTesting, +} from '@angular/common/http/testing' import { afterEach, beforeEach, @@ -18,6 +24,7 @@ import { vi, } from 'vitest' import { queryKey, sleep } from '@tanstack/query-test-utils' +import { lastValueFrom } from 'rxjs' import { QueryCache, QueryClient, injectQuery, provideTanStackQuery } from '..' import { setSignalInputs } from './test-utils' import type { CreateQueryOptions, OmitKeyof, QueryFunction } from '..' @@ -429,7 +436,6 @@ describe('injectQuery', () => { await vi.advanceTimersByTimeAsync(11) keySignal.set('key12') - TestBed.tick() query.refetch().then(() => { expect(fetchFn).toHaveBeenCalledTimes(2) @@ -560,5 +566,204 @@ describe('injectQuery', () => { expect(query.status()).toBe('pending') }) + + test('should complete queries before whenStable() resolves', async () => { + const app = TestBed.inject(ApplicationRef) + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['pendingTasksTest'], + queryFn: async () => { + await sleep(50) + return 'test data' + }, + })), + ) + + expect(query.status()).toBe('pending') + expect(query.data()).toBeUndefined() + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(60) + await stablePromise + + expect(query.status()).toBe('success') + expect(query.data()).toBe('test data') + }) + + test('should complete HttpClient-based queries before whenStable() resolves', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + provideHttpClient(), + provideHttpClientTesting(), + ], + }) + + const app = TestBed.inject(ApplicationRef) + const httpClient = TestBed.inject(HttpClient) + const httpTestingController = TestBed.inject(HttpTestingController) + + // Create a query using HttpClient + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['httpClientTest'], + queryFn: () => + lastValueFrom(httpClient.get<{ message: string }>('/api/test')), + })), + ) + + // Schedule the HTTP response + setTimeout(() => { + const req = httpTestingController.expectOne('/api/test') + req.flush({ message: 'http test data' }) + }, 10) + + // Initial state + expect(query.status()).toBe('pending') + + // Advance timers and wait for Angular to be "stable" + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(20) + await stablePromise + + // Query should be complete after whenStable() thanks to PendingTasks integration + expect(query.status()).toBe('success') + expect(query.data()).toEqual({ message: 'http test data' }) + + httpTestingController.verify() + }) + + test('should handle synchronous queryFn with staleTime', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + const app = TestBed.inject(ApplicationRef) + let callCount = 0 + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['sync-stale'], + staleTime: 1000, + queryFn: () => { + callCount++ + return `sync-data-${callCount}` + }, + })), + ) + + // Synchronize pending effects + TestBed.tick() + + const stablePromise = app.whenStable() + await stablePromise + + expect(query.status()).toBe('success') + expect(query.data()).toBe('sync-data-1') + expect(callCount).toBe(1) + + await query.refetch() + await Promise.resolve() + await vi.runAllTimersAsync() + await app.whenStable() + + expect(query.status()).toBe('success') + expect(query.data()).toBe('sync-data-2') + expect(callCount).toBe(2) + }) + + test('should handle enabled/disabled transitions with synchronous queryFn', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + const app = TestBed.inject(ApplicationRef) + const enabledSignal = signal(false) + let callCount = 0 + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['sync-enabled'], + enabled: enabledSignal(), + queryFn: () => { + callCount++ + return `sync-data-${callCount}` + }, + })), + ) + + // Initially disabled + TestBed.tick() + await app.whenStable() + expect(query.status()).toBe('pending') + expect(query.data()).toBeUndefined() + expect(callCount).toBe(0) + + // Enable the query + enabledSignal.set(true) + TestBed.tick() + + await app.whenStable() + expect(query.status()).toBe('success') + expect(query.data()).toBe('sync-data-1') + expect(callCount).toBe(1) + }) + + test('should handle query invalidation with synchronous data', async () => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + + const app = TestBed.inject(ApplicationRef) + const testKey = ['sync-invalidate'] + let callCount = 0 + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: testKey, + queryFn: () => { + callCount++ + return `sync-data-${callCount}` + }, + })), + ) + + // Synchronize pending effects + TestBed.tick() + + await app.whenStable() + expect(query.status()).toBe('success') + expect(query.data()).toBe('sync-data-1') + expect(callCount).toBe(1) + + // Invalidate the query + queryClient.invalidateQueries({ queryKey: testKey }) + TestBed.tick() + + // Wait for the invalidation to trigger a refetch + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + TestBed.tick() + + await app.whenStable() + expect(query.status()).toBe('success') + expect(query.data()).toBe('sync-data-2') + expect(callCount).toBe(2) + }) }) }) diff --git a/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts new file mode 100644 index 0000000000..92f70aed9f --- /dev/null +++ b/packages/angular-query-experimental/src/__tests__/pending-tasks.test.ts @@ -0,0 +1,661 @@ +import { + ApplicationRef, + Component, + provideZonelessChangeDetection, +} from '@angular/core' +import { TestBed } from '@angular/core/testing' +import { HttpClient, provideHttpClient } from '@angular/common/http' +import { + HttpTestingController, + provideHttpClientTesting, +} from '@angular/common/http/testing' +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' +import { sleep } from '@tanstack/query-test-utils' +import { lastValueFrom } from 'rxjs' +import { + QueryClient, + injectMutation, + injectQuery, + onlineManager, + provideTanStackQuery, +} from '..' + +describe('PendingTasks Integration', () => { + let queryClient: QueryClient + + beforeEach(() => { + vi.useFakeTimers() + + queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + mutations: { + retry: false, + }, + }, + }) + + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + ], + }) + }) + + afterEach(() => { + onlineManager.setOnline(true) + vi.useRealTimers() + queryClient.clear() + }) + + describe('Synchronous Resolution', () => { + test('should handle synchronous queryFn with whenStable()', async () => { + const app = TestBed.inject(ApplicationRef) + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['sync'], + queryFn: () => 'instant-data', // Resolves synchronously + })), + ) + + // Should start as pending even with synchronous data + expect(query.status()).toBe('pending') + expect(query.data()).toBeUndefined() + + const stablePromise = app.whenStable() + // Flush microtasks to allow TanStack Query's scheduled notifications to process + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + await stablePromise + + // Should work correctly even though queryFn was synchronous + expect(query.status()).toBe('success') + expect(query.data()).toBe('instant-data') + }) + + test('should handle synchronous error with whenStable()', async () => { + const app = TestBed.inject(ApplicationRef) + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['sync-error'], + queryFn: () => { + throw new Error('instant-error') + }, // Throws synchronously + })), + ) + + const stablePromise = app.whenStable() + // Flush microtasks to allow TanStack Query's scheduled notifications to process + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + await stablePromise + + expect(query.status()).toBe('error') + expect(query.error()).toEqual(new Error('instant-error')) + }) + + test('should handle synchronous mutationFn with whenStable()', async () => { + const app = TestBed.inject(ApplicationRef) + let mutationFnCalled = false + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (data: string) => { + mutationFnCalled = true + await Promise.resolve() + return `processed: ${data}` + }, + })), + ) + + mutation.mutate('test') + + TestBed.tick() + + const stablePromise = app.whenStable() + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + await stablePromise + + expect(mutationFnCalled).toBe(true) + expect(mutation.isSuccess()).toBe(true) + expect(mutation.data()).toBe('processed: test') + }) + + test('should handle synchronous mutation error with whenStable()', async () => { + const app = TestBed.inject(ApplicationRef) + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async () => { + await Promise.resolve() + throw new Error('sync-mutation-error') + }, + })), + ) + + mutation.mutate() + + TestBed.tick() + + const stablePromise = app.whenStable() + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + await stablePromise + + expect(mutation.isError()).toBe(true) + expect(mutation.error()).toEqual(new Error('sync-mutation-error')) + }) + }) + + describe('Race Conditions', () => { + test('should handle query that completes during initial subscription', async () => { + const app = TestBed.inject(ApplicationRef) + let resolveQuery: (value: string) => void + + const queryPromise = new Promise((resolve) => { + resolveQuery = resolve + }) + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['race-condition'], + queryFn: () => queryPromise, + })), + ) + + // Resolve immediately to create potential race condition + resolveQuery!('race-data') + + const stablePromise = app.whenStable() + await Promise.resolve() + await vi.advanceTimersByTimeAsync(10) + await stablePromise + + expect(query.status()).toBe('success') + expect(query.data()).toBe('race-data') + }) + + test('should handle rapid refetches without task leaks', async () => { + const app = TestBed.inject(ApplicationRef) + let callCount = 0 + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['rapid-refetch'], + queryFn: async () => { + callCount++ + await sleep(10) + return `data-${callCount}` + }, + })), + ) + + // Trigger multiple rapid refetches + query.refetch() + query.refetch() + query.refetch() + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(20) + await stablePromise + + expect(query.status()).toBe('success') + expect(query.data()).toMatch(/^data-\d+$/) + }) + + test('should keep PendingTasks active while query retry is paused offline', async () => { + const app = TestBed.inject(ApplicationRef) + let attempt = 0 + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['paused-offline'], + retry: 1, + retryDelay: 50, // Longer delay to ensure we can go offline before retry + queryFn: async () => { + attempt++ + if (attempt === 1) { + throw new Error('offline-fail') + } + await sleep(10) + return 'final-data' + }, + })), + ) + + // Allow the initial attempt to start and fail + await vi.advanceTimersByTimeAsync(0) + await Promise.resolve() + + // Wait for the first attempt to complete and start retry delay + await vi.advanceTimersByTimeAsync(10) + await Promise.resolve() + + expect(query.status()).toBe('pending') + expect(query.fetchStatus()).toBe('fetching') + + // Simulate the app going offline during retry delay + onlineManager.setOnline(false) + + // Advance past the retry delay to trigger the pause + await vi.advanceTimersByTimeAsync(50) + await Promise.resolve() + + expect(query.fetchStatus()).toBe('paused') + + const stablePromise = app.whenStable() + let stableResolved = false + void stablePromise.then(() => { + stableResolved = true + }) + + await Promise.resolve() + + // PendingTasks should continue blocking stability while the fetch is paused + expect(stableResolved).toBe(false) + expect(query.status()).toBe('pending') + + // Bring the app back online so the retry can continue + onlineManager.setOnline(true) + + // Give time for the retry to resume and complete + await vi.advanceTimersByTimeAsync(20) + await Promise.resolve() + + await stablePromise + + expect(stableResolved).toBe(true) + expect(query.status()).toBe('success') + expect(query.data()).toBe('final-data') + }) + }) + + describe('Component Destruction', () => { + @Component({ + template: '', + }) + class TestComponent { + query = injectQuery(() => ({ + queryKey: ['component-query'], + queryFn: async () => { + await sleep(100) + return 'component-data' + }, + })) + + mutation = injectMutation(() => ({ + mutationFn: async (data: string) => { + await sleep(100) + return `processed: ${data}` + }, + })) + } + + test('should cleanup pending tasks when component with active query is destroyed', async () => { + const app = TestBed.inject(ApplicationRef) + const fixture = TestBed.createComponent(TestComponent) + + // Start the query + expect(fixture.componentInstance.query.status()).toBe('pending') + + // Destroy component while query is running + fixture.destroy() + + // Angular should become stable even though component was destroyed + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(150) + + await expect(stablePromise).resolves.toEqual(undefined) + }) + + test('should cleanup pending tasks when component with active mutation is destroyed', async () => { + const app = TestBed.inject(ApplicationRef) + const fixture = TestBed.createComponent(TestComponent) + + fixture.componentInstance.mutation.mutate('test') + + // Destroy component while mutation is running + fixture.destroy() + + // Angular should become stable even though component was destroyed + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(150) + + await expect(stablePromise).resolves.toEqual(undefined) + }) + }) + + describe('Concurrent Operations', () => { + test('should handle multiple queries running simultaneously', async () => { + const app = TestBed.inject(ApplicationRef) + + const query1 = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['concurrent-1'], + queryFn: async () => { + await sleep(30) + return 'data-1' + }, + })), + ) + + const query2 = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['concurrent-2'], + queryFn: async () => { + await sleep(50) + return 'data-2' + }, + })), + ) + + const query3 = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['concurrent-3'], + queryFn: () => 'instant-data', // Synchronous + })), + ) + + // All queries should start + expect(query1.status()).toBe('pending') + expect(query2.status()).toBe('pending') + expect(query3.status()).toBe('pending') + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(60) + await stablePromise + + // All queries should be complete + expect(query1.status()).toBe('success') + expect(query1.data()).toBe('data-1') + expect(query2.status()).toBe('success') + expect(query2.data()).toBe('data-2') + expect(query3.status()).toBe('success') + expect(query3.data()).toBe('instant-data') + }) + + test('should handle multiple mutations running simultaneously', async () => { + const app = TestBed.inject(ApplicationRef) + + const mutation1 = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (data: string) => { + await sleep(30) + return `processed-1: ${data}` + }, + })), + ) + + const mutation2 = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (data: string) => { + await sleep(50) + return `processed-2: ${data}` + }, + })), + ) + + const mutation3 = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (data: string) => { + await Promise.resolve() + return `processed-3: ${data}` + }, + })), + ) + + // Start all mutations + mutation1.mutate('test1') + mutation2.mutate('test2') + mutation3.mutate('test3') + + TestBed.tick() + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(60) + await stablePromise + + // All mutations should be complete + expect(mutation1.isSuccess()).toBe(true) + expect(mutation1.data()).toBe('processed-1: test1') + expect(mutation2.isSuccess()).toBe(true) + expect(mutation2.data()).toBe('processed-2: test2') + expect(mutation3.isSuccess()).toBe(true) + expect(mutation3.data()).toBe('processed-3: test3') + }) + + test('should handle mixed queries and mutations', async () => { + const app = TestBed.inject(ApplicationRef) + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['mixed-query'], + queryFn: async () => { + await sleep(40) + return 'query-data' + }, + })), + ) + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (data: string) => { + await sleep(60) + return `mutation: ${data}` + }, + })), + ) + + // Start both operations + mutation.mutate('test') + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(70) + await stablePromise + + // Both should be complete + expect(query.status()).toBe('success') + expect(query.data()).toBe('query-data') + expect(mutation.isSuccess()).toBe(true) + expect(mutation.data()).toBe('mutation: test') + }) + }) + + describe('HttpClient Integration', () => { + beforeEach(() => { + TestBed.resetTestingModule() + TestBed.configureTestingModule({ + providers: [ + provideZonelessChangeDetection(), + provideTanStackQuery(queryClient), + provideHttpClient(), + provideHttpClientTesting(), + ], + }) + }) + + test('should handle multiple HttpClient requests with lastValueFrom', async () => { + const app = TestBed.inject(ApplicationRef) + const httpClient = TestBed.inject(HttpClient) + const httpTestingController = TestBed.inject(HttpTestingController) + + const query1 = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['http-1'], + queryFn: () => + lastValueFrom(httpClient.get<{ id: number }>('/api/1')), + })), + ) + + const query2 = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['http-2'], + queryFn: () => + lastValueFrom(httpClient.get<{ id: number }>('/api/2')), + })), + ) + + // Schedule HTTP responses + setTimeout(() => { + const req1 = httpTestingController.expectOne('/api/1') + req1.flush({ id: 1 }) + + const req2 = httpTestingController.expectOne('/api/2') + req2.flush({ id: 2 }) + }, 10) + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(20) + await stablePromise + + expect(query1.status()).toBe('success') + expect(query1.data()).toEqual({ id: 1 }) + expect(query2.status()).toBe('success') + expect(query2.data()).toEqual({ id: 2 }) + + httpTestingController.verify() + }) + + test('should handle HttpClient request cancellation', async () => { + const app = TestBed.inject(ApplicationRef) + const httpClient = TestBed.inject(HttpClient) + const httpTestingController = TestBed.inject(HttpTestingController) + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['http-cancel'], + queryFn: () => + lastValueFrom(httpClient.get<{ data: string }>('/api/cancel')), + })), + ) + + // Cancel the request before it completes + setTimeout(() => { + const req = httpTestingController.expectOne('/api/cancel') + req.error(new ProgressEvent('error'), { + status: 0, + statusText: 'Unknown Error', + }) + }, 10) + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(20) + await stablePromise + + expect(query.status()).toBe('error') + + httpTestingController.verify() + }) + }) + + describe('Edge Cases', () => { + test('should handle query cancellation mid-flight', async () => { + const app = TestBed.inject(ApplicationRef) + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['cancel-test'], + queryFn: async () => { + await sleep(100) + return 'data' + }, + })), + ) + + // Cancel the query after a short delay + setTimeout(() => { + queryClient.cancelQueries({ queryKey: ['cancel-test'] }) + }, 20) + + // Advance to the cancellation point + await vi.advanceTimersByTimeAsync(20) + + TestBed.tick() + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(130) + await stablePromise + + // Cancellation should restore the pre-fetch state + expect(query.status()).toBe('pending') + expect(query.fetchStatus()).toBe('idle') + }) + + test('should handle query retry and pending task tracking', async () => { + const app = TestBed.inject(ApplicationRef) + let attemptCount = 0 + + const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['retry-test'], + retry: 2, + retryDelay: 10, + queryFn: async () => { + attemptCount++ + if (attemptCount <= 2) { + throw new Error(`Attempt ${attemptCount} failed`) + } + return 'success-data' + }, + })), + ) + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(50) + await stablePromise + + expect(query.status()).toBe('success') + expect(query.data()).toBe('success-data') + expect(attemptCount).toBe(3) // Initial + 2 retries + }) + + test('should handle mutation with optimistic updates', async () => { + const app = TestBed.inject(ApplicationRef) + const testQueryKey = ['optimistic-test'] + + queryClient.setQueryData(testQueryKey, 'initial-data') + + const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (newData: string) => { + await sleep(50) + return newData + }, + onMutate: async (newData) => { + // Optimistic update + const previousData = queryClient.getQueryData(testQueryKey) + queryClient.setQueryData(testQueryKey, newData) + return { previousData } + }, + onError: (_err, _newData, context) => { + // Rollback on error + if (context?.previousData) { + queryClient.setQueryData(testQueryKey, context.previousData) + } + }, + })), + ) + + mutation.mutate('optimistic-data') + + await Promise.resolve() + + // Data should be optimistically updated immediately + expect(queryClient.getQueryData(testQueryKey)).toBe('optimistic-data') + + const stablePromise = app.whenStable() + await vi.advanceTimersByTimeAsync(60) + await stablePromise + + expect(mutation.isSuccess()).toBe(true) + expect(mutation.data()).toBe('optimistic-data') + expect(queryClient.getQueryData(testQueryKey)).toBe('optimistic-data') + }) + }) +}) diff --git a/packages/angular-query-experimental/src/create-base-query.ts b/packages/angular-query-experimental/src/create-base-query.ts index 3ad247fd53..4daede7684 100644 --- a/packages/angular-query-experimental/src/create-base-query.ts +++ b/packages/angular-query-experimental/src/create-base-query.ts @@ -14,6 +14,8 @@ import { } from '@tanstack/query-core' import { signalProxy } from './signal-proxy' import { injectIsRestoring } from './inject-is-restoring' +import { PENDING_TASKS } from './pending-tasks-compat' +import type { PendingTaskRef } from './pending-tasks-compat' import type { QueryKey, QueryObserver, @@ -43,6 +45,7 @@ export function createBaseQuery< Observer: typeof QueryObserver, ) { const ngZone = inject(NgZone) + const pendingTasks = inject(PENDING_TASKS) const queryClient = inject(QueryClient) const isRestoring = injectIsRestoring() @@ -105,13 +108,24 @@ export function createBaseQuery< effect((onCleanup) => { // observer.trackResult is not used as this optimization is not needed for Angular const observer = observerSignal() + let pendingTaskRef: PendingTaskRef | null = null + const unsubscribe = isRestoring() ? () => undefined : untracked(() => - ngZone.runOutsideAngular(() => - observer.subscribe( + ngZone.runOutsideAngular(() => { + return observer.subscribe( notifyManager.batchCalls((state) => { ngZone.run(() => { + if (state.fetchStatus === 'fetching' && !pendingTaskRef) { + pendingTaskRef = pendingTasks.add() + } + + if (state.fetchStatus === 'idle' && pendingTaskRef) { + pendingTaskRef() + pendingTaskRef = null + } + if ( state.isError && !state.isFetching && @@ -126,17 +140,36 @@ export function createBaseQuery< resultFromSubscriberSignal.set(state) }) }), - ), - ), + ) + }), ) - onCleanup(unsubscribe) + + onCleanup(() => { + if (pendingTaskRef) { + pendingTaskRef() + pendingTaskRef = null + } + unsubscribe() + }) }) return signalProxy( computed(() => { const subscriberResult = resultFromSubscriberSignal() const optimisticResult = optimisticResultSignal() - return subscriberResult ?? optimisticResult + const result = subscriberResult ?? optimisticResult + + // Wrap methods to ensure observer has latest options before execution + const observer = observerSignal() + + const originalRefetch = result.refetch + return { + ...result, + refetch: ((...args: Parameters) => { + observer.setOptions(defaultedOptionsSignal()) + return originalRefetch(...args) + }) as typeof originalRefetch, + } }), ) } diff --git a/packages/angular-query-experimental/src/inject-is-fetching.ts b/packages/angular-query-experimental/src/inject-is-fetching.ts index 30d0a8517e..4bb3e821db 100644 --- a/packages/angular-query-experimental/src/inject-is-fetching.ts +++ b/packages/angular-query-experimental/src/inject-is-fetching.ts @@ -27,7 +27,6 @@ export interface InjectIsFetchingOptions { * @param filters - The filters to apply to the query. * @param options - Additional configuration * @returns signal with number of loading or fetching queries. - * @public */ export function injectIsFetching( filters?: QueryFilters, diff --git a/packages/angular-query-experimental/src/inject-mutation.ts b/packages/angular-query-experimental/src/inject-mutation.ts index 97735ca4b5..7eb605047f 100644 --- a/packages/angular-query-experimental/src/inject-mutation.ts +++ b/packages/angular-query-experimental/src/inject-mutation.ts @@ -1,5 +1,4 @@ import { - DestroyRef, Injector, NgZone, assertInInjectionContext, @@ -17,6 +16,8 @@ import { shouldThrowError, } from '@tanstack/query-core' import { signalProxy } from './signal-proxy' +import { PENDING_TASKS } from './pending-tasks-compat' +import type { PendingTaskRef } from './pending-tasks-compat' import type { DefaultError, MutationObserverResult } from '@tanstack/query-core' import type { CreateMutateFunction, @@ -57,8 +58,8 @@ export function injectMutation< ): CreateMutationResult { !options?.injector && assertInInjectionContext(injectMutation) const injector = options?.injector ?? inject(Injector) - const destroyRef = injector.get(DestroyRef) const ngZone = injector.get(NgZone) + const pendingTasks = injector.get(PENDING_TASKS) const queryClient = injector.get(QueryClient) /** @@ -123,15 +124,27 @@ export function injectMutation< ) effect( - () => { + (onCleanup) => { // observer.trackResult is not used as this optimization is not needed for Angular const observer = observerSignal() + let pendingTaskRef: PendingTaskRef | null = null untracked(() => { const unsubscribe = ngZone.runOutsideAngular(() => observer.subscribe( notifyManager.batchCalls((state) => { ngZone.run(() => { + // Track pending task when mutation is pending + if (state.isPending && !pendingTaskRef) { + pendingTaskRef = pendingTasks.add() + } + + // Clear pending task when mutation is no longer pending + if (!state.isPending && pendingTaskRef) { + pendingTaskRef() + pendingTaskRef = null + } + if ( state.isError && shouldThrowError(observer.options.throwOnError, [state.error]) @@ -145,7 +158,14 @@ export function injectMutation< }), ), ) - destroyRef.onDestroy(unsubscribe) + onCleanup(() => { + // Clean up any pending task on destroy + if (pendingTaskRef) { + pendingTaskRef() + pendingTaskRef = null + } + unsubscribe() + }) }) }, { diff --git a/packages/angular-query-experimental/src/inject-queries.ts b/packages/angular-query-experimental/src/inject-queries.ts index 2b7707158d..2f201799e7 100644 --- a/packages/angular-query-experimental/src/inject-queries.ts +++ b/packages/angular-query-experimental/src/inject-queries.ts @@ -216,7 +216,6 @@ export interface InjectQueriesOptions< /** * @param optionsFn - A function that returns queries' options. * @param injector - The Angular injector to use. - * @public */ export function injectQueries< T extends Array, diff --git a/packages/angular-query-experimental/src/pending-tasks-compat.ts b/packages/angular-query-experimental/src/pending-tasks-compat.ts new file mode 100644 index 0000000000..e156996993 --- /dev/null +++ b/packages/angular-query-experimental/src/pending-tasks-compat.ts @@ -0,0 +1,28 @@ +import { InjectionToken, inject } from '@angular/core' +import * as ng from '@angular/core' +import { noop } from '@tanstack/query-core' + +type PendingTasksCompat = { add: () => PendingTaskRef } + +export type PendingTaskRef = () => void + +export const PENDING_TASKS = new InjectionToken( + 'PENDING_TASKS', + { + factory: (): PendingTasksCompat => { + // Access via Reflect so bundlers stay quiet when the token is absent (Angular < 19). + const token = Reflect.get(ng, 'PendingTasks') as unknown as + | Parameters[0] + | undefined + + const svc: PendingTasksCompat | null = token + ? (inject(token, { optional: true }) as PendingTasksCompat | null) + : null + + // Without PendingTasks we fall back to a stable no-op shim. + return { + add: svc ? () => svc.add() : () => noop, + } + }, + }, +) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95b6170724..c0e075fd79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2269,6 +2269,9 @@ importers: npm-run-all2: specifier: ^5.0.0 version: 5.0.2 + rxjs: + specifier: ^7.8.2 + version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) From 5d7c90e144f0cd3c0eadb386f09a319daf7c9f38 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sat, 20 Sep 2025 16:47:26 +0000 Subject: [PATCH 415/432] release: v5.90.0 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 2 +- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- examples/angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- examples/angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- packages/angular-query-experimental/package.json | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index 442ed051d2..b1190e1b09 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index 232fbb8875..a313767ff8 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "@tanstack/angular-query-persist-client": "^5.62.7", "@tanstack/query-async-storage-persister": "^5.89.0", "rxjs": "^7.8.2", diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 91392b754f..12f0418c56 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 5922d0bbdf..51d3b04304 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 2eb45df11f..3284fc952f 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index d4bf8ea5d1..9adbfece09 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 5cf501e648..78f21df20e 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index a528fb5aef..a84be9ba06 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 090080a50b..fa1285b3ae 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 4adb18d1d2..14aa1c4dbc 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 6e32c3c8f1..68acdd7dd0 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.89.0", + "@tanstack/angular-query-experimental": "^5.90.0", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 06ede49d5b..ecd39a51f1 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.89.0", + "version": "5.90.0", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", From 06e555072bdf40bf77e34c613aa34dac94e5df76 Mon Sep 17 00:00:00 2001 From: Arnoud <6420061+arnoud-dv@users.noreply.github.com> Date: Sun, 21 Sep 2025 02:38:17 +0200 Subject: [PATCH 416/432] docs(angular-query): add testing guide (#9669) --- docs/config.json | 4 + docs/framework/angular/guides/testing.md | 157 +++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 docs/framework/angular/guides/testing.md diff --git a/docs/config.json b/docs/config.json index 31182f860b..f5324984ee 100644 --- a/docs/config.json +++ b/docs/config.json @@ -707,6 +707,10 @@ "label": "Default Query Fn", "to": "framework/angular/guides/default-query-function" }, + { + "label": "Testing", + "to": "framework/angular/guides/testing" + }, { "label": "Does this replace state managers?", "to": "framework/angular/guides/does-this-replace-client-state" diff --git a/docs/framework/angular/guides/testing.md b/docs/framework/angular/guides/testing.md new file mode 100644 index 0000000000..7648d7f6b3 --- /dev/null +++ b/docs/framework/angular/guides/testing.md @@ -0,0 +1,157 @@ +--- +id: testing +title: Testing +--- + +Most Angular tests using TanStack Query will involve services or components that call `injectQuery`/`injectMutation`. + +TanStack Query's `inject*` functions integrate with [`PendingTasks`](https://angular.dev/api/core/PendingTasks) which ensures the framework is aware of in-progress queries and mutations. + +This means tests and SSR can wait until mutations and queries resolve. In unit tests you can use `ApplicationRef.whenStable()` or `fixture.whenStable()` to await query completion. This works for both Zone.js and Zoneless setups. + +> This integration requires Angular 19 or later. Earlier versions of Angular do not support `PendingTasks`. + +## TestBed setup + +Create a fresh `QueryClient` for every spec and provide it with `provideTanStackQuery` or `provideQueryClient`. This keeps caches isolated and lets you change default options per test: + +```ts +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, // โœ… faster failure tests + }, + }, +}) + +TestBed.configureTestingModule({ + providers: [provideTanStackQuery(queryClient)], +}) +``` + +> If your applications actual TanStack Query config is used in unit tests, make sure `withDevtools` is not accidentally included in test providers. This can cause slow tests. It is best to keep test and production configs separate. + +If you share helpers, remember to call `queryClient.clear()` (or build a new instance) in `afterEach` so data from one test never bleeds into another. + +## First query test + +Query tests typically run inside `TestBed.runInInjectionContext`, then wait for stability: + +```ts +const appRef = TestBed.inject(ApplicationRef) +const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['greeting'], + queryFn: () => 'Hello', + })), +) + +TestBed.tick() // Trigger effect + +// Application is stable when queries are idle +await appRef.whenStable() + +expect(query.status()).toBe('success') +expect(query.data()).toBe('Hello') +``` + +PendingTasks will have `whenStable()` resolve after the query settles. When using fake timers (Vitest), advance the clock and a microtask before awaiting stability: + +```ts +await vi.advanceTimersByTimeAsync(0) +await Promise.resolve() +await appRef.whenStable() +``` + +## Testing components + +For components, bootstrap them through `TestBed.createComponent`, then await `fixture.whenStable()`: + +```ts +const fixture = TestBed.createComponent(ExampleComponent) + +await fixture.whenStable() +expect(fixture.componentInstance.query.data()).toEqual({ value: 42 }) +``` + +## Handling retries + +Retries slow failing tests because the default backoff runs three times. Set `retry: false` (or a specific number) through `defaultOptions` or per query to keep tests fast. If a query intentionally retries, assert on the final state rather than intermediate counts. + +## HttpClient & network stubs + +Angular's `HttpClientTestingModule` plays nicely with PendingTasks. Register it alongside the Query provider and flush responses through `HttpTestingController`: + +```ts +TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [provideTanStackQuery(queryClient)], +}) + +const httpCtrl = TestBed.inject(HttpTestingController) +const query = TestBed.runInInjectionContext(() => + injectQuery(() => ({ + queryKey: ['todos'], + queryFn: () => lastValueFrom(TestBed.inject(HttpClient).get('/api/todos')), + })), +) + +const fixturePromise = TestBed.inject(ApplicationRef).whenStable() +httpCtrl.expectOne('/api/todos').flush([{ id: 1 }]) +await fixturePromise + +expect(query.data()).toEqual([{ id: 1 }]) +httpCtrl.verify() +``` + +## Infinite queries & pagination + +Use the same pattern for infinite queries: call `fetchNextPage()`, advance timers if you are faking time, then await stability and assert on `data().pages`. + +```ts +const infinite = TestBed.runInInjectionContext(() => + injectInfiniteQuery(() => ({ + queryKey: ['pages'], + queryFn: ({ pageParam = 1 }) => fetchPage(pageParam), + getNextPageParam: (last, all) => all.length + 1, + })), +) + +await appRef.whenStable() +expect(infinite.data().pages).toHaveLength(1) + +await infinite.fetchNextPage() +await vi.advanceTimersByTimeAsync(0) +await appRef.whenStable() + +expect(infinite.data().pages).toHaveLength(2) +``` + +## Mutations and optimistic updates + +```ts +const mutation = TestBed.runInInjectionContext(() => + injectMutation(() => ({ + mutationFn: async (input: string) => input.toUpperCase(), + })), +) + +mutation.mutate('test') + +// Trigger effect +TestBed.tick() + +await appRef.whenStable() + +expect(mutation.isSuccess()).toBe(true) +expect(mutation.data()).toBe('TEST') +``` + +## Quick checklist + +- Fresh `QueryClient` per test (and clear it afterwards) +- Disable or control retries to avoid timeouts +- Advance timers + microtasks before `whenStable()` when using fake timers +- Use `HttpClientTestingModule` or your preferred mock to assert network calls +- Await `whenStable()` after every `refetch`, `fetchNextPage`, or mutation +- Prefer `TestBed.runInInjectionContext` for service tests and `fixture.whenStable()` for component tests From fb48985f637b555b2ad30de01e483b77b6856caa Mon Sep 17 00:00:00 2001 From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> Date: Sun, 21 Sep 2025 22:26:52 +0900 Subject: [PATCH 417/432] ci: update workspace config (#9671) * chore: update workspace config * Update more deps * Fix issues --- .npmrc | 2 - .nvmrc | 2 +- examples/react/algolia/package.json | 2 +- .../react/basic-graphql-request/package.json | 2 +- examples/react/basic/package.json | 2 +- examples/react/chat/package.json | 2 +- .../react/default-query-function/package.json | 2 +- examples/react/devtools-panel/package.json | 2 +- examples/react/eslint-legacy/package.json | 2 +- examples/react/offline/package.json | 2 +- examples/react/playground/package.json | 2 +- examples/react/react-router/package.json | 2 +- examples/react/rick-morty/package.json | 2 +- examples/react/shadow-dom/package.json | 2 +- examples/react/simple/package.json | 2 +- examples/react/star-wars/package.json | 2 +- examples/react/suspense/package.json | 2 +- .../solid/basic-graphql-request/package.json | 2 +- examples/solid/basic/package.json | 2 +- .../solid/default-query-function/package.json | 2 +- examples/solid/simple/package.json | 2 +- examples/svelte/auto-refetching/package.json | 10 +- examples/svelte/basic/package.json | 10 +- .../load-more-infinite-scroll/package.json | 10 +- .../svelte/optimistic-updates/package.json | 10 +- examples/svelte/playground/package.json | 10 +- examples/svelte/simple/package.json | 6 +- examples/svelte/ssr/package.json | 10 +- examples/svelte/star-wars/package.json | 10 +- examples/vue/basic/package.json | 2 +- examples/vue/dependent-queries/package.json | 2 +- examples/vue/persister/package.json | 2 +- examples/vue/simple/package.json | 2 +- integrations/react-vite/package.json | 2 +- integrations/solid-vite/package.json | 2 +- integrations/svelte-vite/package.json | 4 +- integrations/vue-vite/package.json | 2 +- package.json | 31 +- .../angular-query-experimental/package.json | 2 +- .../angular-query-persist-client/package.json | 2 +- packages/eslint-plugin-query/package.json | 10 +- .../package.json | 2 +- .../package.json | 2 +- packages/query-codemods/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-devtools/package.json | 2 +- .../query-persist-client-core/package.json | 2 +- .../query-sync-storage-persister/package.json | 2 +- packages/query-test-utils/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- .../package.json | 2 +- .../react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 3 +- packages/solid-query-devtools/package.json | 2 +- .../solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 6 +- .../svelte-query-persist-client/package.json | 6 +- packages/svelte-query/package.json | 6 +- packages/vue-query-devtools/package.json | 4 +- packages/vue-query/package.json | 2 +- pnpm-lock.yaml | 3691 +++++++++-------- pnpm-workspace.yaml | 4 + 63 files changed, 2166 insertions(+), 1765 deletions(-) diff --git a/.npmrc b/.npmrc index 84aee8d998..268c392d3c 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1 @@ -link-workspace-packages=true -prefer-workspace-packages=true provenance=true diff --git a/.nvmrc b/.nvmrc index 9d11232a63..b404027604 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24.4.1 +24.8.0 diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index fc8ed700e8..87cd407b28 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -20,6 +20,6 @@ "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 449870cfc7..60397dc1ff 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -17,6 +17,6 @@ }, "devDependencies": { "@vitejs/plugin-react": "^4.3.4", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 754560c844..565fbdd535 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -22,7 +22,7 @@ "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" }, "nx": { "targets": { diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 0ba3e0dc99..ab6c7d152a 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -18,6 +18,6 @@ "@vitejs/plugin-react": "^4.3.4", "tailwindcss": "^4.0.14", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 5c34729366..61ac6b4e78 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -16,6 +16,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index a2a135c321..ad0e190935 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -16,6 +16,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index 24c696598d..e0cae79304 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -22,7 +22,7 @@ "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" }, "nx": { "targets": { diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index a0c2c6253d..ee175da661 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" }, "msw": { "workerDirectory": [ diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 521ae83bb8..70bb136bb0 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -16,6 +16,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index e8f54d5ce3..a0b5e69603 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -25,6 +25,6 @@ "@types/sort-by": "^1.2.3", "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 97b127cf40..454ccfc8bc 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -22,6 +22,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 2b109bed17..1840a04d55 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -18,6 +18,6 @@ "@types/react-dom": "^19.0.2", "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 86972f545a..4edf73184b 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -16,6 +16,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index c6574d71f3..b06cb616f3 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -22,6 +22,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 14fe7cb5c8..13b7285126 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -18,6 +18,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index fe709b09b7..5e7c2ac0bb 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "typescript": "5.8.3", - "vite": "^6.2.4", + "vite": "^6.3.6", "vite-plugin-solid": "^2.11.6" } } diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 4082c9fc9a..695ebb33cf 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "5.8.3", - "vite": "^6.2.4", + "vite": "^6.3.6", "vite-plugin-solid": "^2.11.6" } } diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index d6ebfb1b2b..ccbda60569 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "5.8.3", - "vite": "^6.2.4", + "vite": "^6.3.6", "vite-plugin-solid": "^2.11.6" } } diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 91597043c5..cb86b6efa1 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -15,7 +15,7 @@ "devDependencies": { "@tanstack/eslint-plugin-query": "^5.89.0", "typescript": "5.8.3", - "vite": "^6.2.4", + "vite": "^6.3.6", "vite-plugin-solid": "^2.11.6" } } diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index d8d6486182..4c46c263ad 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -12,12 +12,12 @@ "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/kit": "^2.25.1", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.42.2", "@sveltejs/vite-plugin-svelte": "^5.1.1", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index eaf8942f3b..e95d7690ce 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -14,12 +14,12 @@ "@tanstack/svelte-query-persist-client": "^5.89.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/kit": "^2.25.1", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.42.2", "@sveltejs/vite-plugin-svelte": "^5.1.1", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 9866462cc4..ee8ffac454 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -12,12 +12,12 @@ "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/kit": "^2.25.1", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.42.2", "@sveltejs/vite-plugin-svelte": "^5.1.1", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index e8ecce8097..62631fc964 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -12,12 +12,12 @@ "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/kit": "^2.25.1", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.42.2", "@sveltejs/vite-plugin-svelte": "^5.1.1", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 90e382c13f..a6634c1b20 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -12,12 +12,12 @@ "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/kit": "^2.25.1", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.42.2", "@sveltejs/vite-plugin-svelte": "^5.1.1", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 9653895ce0..b8a2ac631a 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -14,9 +14,9 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", "@tsconfig/svelte": "^5.0.4", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 14c0526a1c..c389814b4b 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -12,12 +12,12 @@ "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/kit": "^2.25.1", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.42.2", "@sveltejs/vite-plugin-svelte": "^5.1.1", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index f640e73c44..71ff579bb0 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -12,15 +12,15 @@ "@tanstack/svelte-query-devtools": "^5.89.0" }, "devDependencies": { - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/kit": "^2.25.1", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/kit": "^2.42.2", "@sveltejs/vite-plugin-svelte": "^5.1.1", "autoprefixer": "^10.4.21", "postcss": "^8.5.6", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0", + "svelte": "^5.39.3", + "svelte-check": "^4.3.1", "tailwindcss": "^3.4.7", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index df3c4c1eb1..2811fb65de 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -15,6 +15,6 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index c92c147fb7..41c6a2bd8c 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -14,6 +14,6 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index c64f72dc54..c3541617fa 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -18,6 +18,6 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index a0eceffc79..96922de3b0 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -15,6 +15,6 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "5.8.3", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/integrations/react-vite/package.json b/integrations/react-vite/package.json index cf380dcebf..ed3d425d20 100644 --- a/integrations/react-vite/package.json +++ b/integrations/react-vite/package.json @@ -11,6 +11,6 @@ "@vitejs/plugin-react": "^4.3.4", "react": "^19.0.0", "react-dom": "^19.0.0", - "vite": "^6.2.4" + "vite": "^6.3.6" } } diff --git a/integrations/solid-vite/package.json b/integrations/solid-vite/package.json index c8daf1e9ac..6784347c42 100644 --- a/integrations/solid-vite/package.json +++ b/integrations/solid-vite/package.json @@ -9,7 +9,7 @@ "@tanstack/solid-query": "workspace:*", "@tanstack/solid-query-devtools": "workspace:*", "solid-js": "^1.9.7", - "vite": "^6.2.4", + "vite": "^6.3.6", "vite-plugin-solid": "^2.11.6" } } diff --git a/integrations/svelte-vite/package.json b/integrations/svelte-vite/package.json index fc1266ec08..f9b5e1a63f 100644 --- a/integrations/svelte-vite/package.json +++ b/integrations/svelte-vite/package.json @@ -9,7 +9,7 @@ "@sveltejs/vite-plugin-svelte": "^5.1.1", "@tanstack/svelte-query": "workspace:*", "@tanstack/svelte-query-devtools": "workspace:*", - "svelte": "^5.36.8", - "vite": "^6.2.4" + "svelte": "^5.39.3", + "vite": "^6.3.6" } } diff --git a/integrations/vue-vite/package.json b/integrations/vue-vite/package.json index ad2b4d7c87..aa2dc3b54b 100644 --- a/integrations/vue-vite/package.json +++ b/integrations/vue-vite/package.json @@ -12,7 +12,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "5.8.3", - "vite": "^6.2.4", + "vite": "^6.3.6", "vue-tsc": "^2.2.8" } } diff --git a/package.json b/package.json index de25e5c151..c32c5488a1 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "https://github.com/TanStack/query.git" }, - "packageManager": "pnpm@10.13.1", + "packageManager": "pnpm@10.16.1", "type": "module", "scripts": { "clean": "pnpm --filter \"./packages/**\" run clean", @@ -39,31 +39,30 @@ }, "devDependencies": { "@arethetypeswrong/cli": "^0.15.3", - "@cspell/eslint-plugin": "^8.17.1", - "@eslint-react/eslint-plugin": "^1.52.3", - "@tanstack/config": "^0.19.0", - "@testing-library/jest-dom": "^6.6.3", + "@cspell/eslint-plugin": "^9.2.1", + "@eslint-react/eslint-plugin": "^1.53.1", + "@tanstack/config": "^0.20.2", + "@testing-library/jest-dom": "^6.8.0", "@types/node": "^22.15.3", "@types/react": "^19.0.1", "@types/react-dom": "^19.0.2", - "@vitest/coverage-istanbul": "3.1.3", + "@vitest/coverage-istanbul": "3.2.4", "@vitest/eslint-plugin": "^1.1.36", - "cpy-cli": "^5.0.0", "esbuild-plugin-file-path-extensions": "^2.1.4", - "eslint": "^9.15.0", - "eslint-plugin-react-hooks": "^6.0.0-rc.1", - "jsdom": "^25.0.1", - "knip": "^5.50.2", + "eslint": "^9.36.0", + "eslint-plugin-react-hooks": "^6.0.0-rc.2", + "jsdom": "^27.0.0", + "knip": "^5.63.1", "markdown-link-extractor": "^4.0.2", - "nx": "21.3.0", + "nx": "21.5.3", "premove": "^4.0.0", "prettier": "^3.6.2", "prettier-plugin-svelte": "^3.4.0", - "publint": "^0.3.12", + "publint": "^0.3.13", "react": "^19.0.0", "react-dom": "^19.0.0", "sherif": "^1.6.1", - "tinyglobby": "^0.2.14", + "tinyglobby": "^0.2.15", "tsup": "^8.4.0", "typescript": "5.8.3", "typescript50": "npm:typescript@5.0", @@ -74,8 +73,8 @@ "typescript55": "npm:typescript@5.5", "typescript56": "npm:typescript@5.6", "typescript57": "npm:typescript@5.7", - "vite": "^6.3.5", - "vitest": "3.1.3" + "vite": "^6.3.6", + "vitest": "3.2.4" }, "pnpm": { "overrides": { diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index ecd39a51f1..0f00efc012 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -29,7 +29,7 @@ "scripts": { "clean": "premove ./dist ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/angular-query-persist-client/package.json b/packages/angular-query-persist-client/package.json index 07e6961197..0b737a4762 100644 --- a/packages/angular-query-persist-client/package.json +++ b/packages/angular-query-persist-client/package.json @@ -18,7 +18,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index ca4c036b48..d9c2ec1d26 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./dist ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", @@ -59,13 +59,13 @@ "!src/__tests__" ], "dependencies": { - "@typescript-eslint/utils": "^8.37.0" + "@typescript-eslint/utils": "^8.44.0" }, "devDependencies": { - "@typescript-eslint/parser": "^8.37.0", - "@typescript-eslint/rule-tester": "^8.37.0", + "@typescript-eslint/parser": "^8.44.0", + "@typescript-eslint/rule-tester": "^8.44.0", "combinate": "^1.1.11", - "eslint": "^9.15.0", + "eslint": "^9.36.0", "npm-run-all2": "^5.0.0" }, "peerDependencies": { diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index e0752c4a1d..c398621e77 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 607f38087b..599d1e5196 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/query-codemods/package.json b/packages/query-codemods/package.json index 1db47f037a..d8ad319d7b 100644 --- a/packages/query-codemods/package.json +++ b/packages/query-codemods/package.json @@ -16,7 +16,7 @@ }, "scripts": { "clean": "premove ./coverage ./dist-ts", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch" }, diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 34ca1a922f..188b77822e 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build tsconfig.legacy.json", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build tsconfig.legacy.json", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 123e59481d..1fc54bbc0d 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index eb9202e326..be3ebfeddc 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 66515e7e38..f301987095 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/query-test-utils/package.json b/packages/query-test-utils/package.json index 434c84a7a3..20bc727b06 100644 --- a/packages/query-test-utils/package.json +++ b/packages/query-test-utils/package.json @@ -27,7 +27,7 @@ }, "scripts": { "clean": "premove ./build ./coverage ./dist-ts", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:tscurrent": "tsc --build", "test:lib": "vitest", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index d831b0570f..c5529c8ba6 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build tsconfig.legacy.json", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build tsconfig.legacy.json", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 8bf67974d7..e31f5e2432 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build tsconfig.legacy.json", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build tsconfig.legacy.json", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 7af975e5ed..51faba60d1 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build tsconfig.legacy.json", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build tsconfig.legacy.json", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index e22411da01..20cd1f784a 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build tsconfig.legacy.json", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build tsconfig.legacy.json", @@ -75,6 +75,7 @@ "@types/react": "^19.0.1", "@types/react-dom": "^19.0.2", "@vitejs/plugin-react": "^4.3.4", + "cpy-cli": "^5.0.0", "npm-run-all2": "^5.0.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 5f4994aa03..80fd5c7b1d 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm run compile && npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index b50dd5d7c2..6210a7d902 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm run compile && npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 4db80f4dcb..220bcc54d4 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "npm-run-all --serial test:types:*", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build tsconfig.legacy.json", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build tsconfig.legacy.json", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 78d0a5bac1..db4cdd7a7d 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -18,7 +18,7 @@ "clean": "premove ./dist ./coverage ./.svelte-kit ./dist-ts", "compile": "tsc --build", "test:types": "svelte-check --tsconfig ./tsconfig.json", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:build": "publint --strict && attw --pack", "build": "svelte-package --input ./src --output ./dist" }, @@ -49,8 +49,8 @@ "@sveltejs/vite-plugin-svelte": "^5.1.1", "@tanstack/svelte-query": "workspace:*", "eslint-plugin-svelte": "^3.11.0", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0" + "svelte": "^5.39.3", + "svelte-check": "^4.3.1" }, "peerDependencies": { "@tanstack/svelte-query": "workspace:^", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index a607062234..ebaab28389 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -18,7 +18,7 @@ "clean": "premove ./dist ./coverage ./.svelte-kit ./dist-ts", "compile": "tsc --build", "test:types": "svelte-check --tsconfig ./tsconfig.json", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", @@ -53,8 +53,8 @@ "@tanstack/svelte-query": "workspace:*", "@testing-library/svelte": "^5.2.8", "eslint-plugin-svelte": "^3.11.0", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0" + "svelte": "^5.39.3", + "svelte-check": "^4.3.1" }, "peerDependencies": { "@tanstack/svelte-query": "workspace:^", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index cef4a23c8a..9877537f39 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -18,7 +18,7 @@ "clean": "premove ./dist ./coverage ./.svelte-kit ./dist-ts", "compile": "tsc --build", "test:types": "svelte-check --tsconfig ./tsconfig.json", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", @@ -52,8 +52,8 @@ "@tanstack/query-test-utils": "workspace:*", "@testing-library/svelte": "^5.2.8", "eslint-plugin-svelte": "^3.11.0", - "svelte": "^5.36.8", - "svelte-check": "^4.3.0" + "svelte": "^5.39.3", + "svelte-check": "^4.3.1" }, "peerDependencies": { "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0" diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index b59ceca956..0ca2af9ffb 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "vue-tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "vue-tsc --build", "test:build": "publint --strict && attw --pack", "build": "pnpm run compile && vite build" @@ -57,7 +57,7 @@ "@vitejs/plugin-vue": "^5.2.4", "eslint-plugin-vue": "^9.27.0", "typescript": "5.8.3", - "vite": "^6.3.5", + "vite": "^6.3.6", "vue": "^3.4.27", "vue-tsc": "^2.2.8" }, diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index b718f5514e..adfa23f5f8 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -17,7 +17,7 @@ "scripts": { "clean": "premove ./build ./coverage ./dist-ts", "compile": "tsc --build", - "test:eslint": "eslint ./src", + "test:eslint": "eslint --concurrency=auto ./src", "test:types": "vue-demi-switch 3 && pnpm run \"/^test:types:ts[0-9]{2}$/\"", "test:types:ts50": "node ../../node_modules/typescript50/lib/tsc.js --build tsconfig.legacy.json", "test:types:ts51": "node ../../node_modules/typescript51/lib/tsc.js --build tsconfig.legacy.json", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0e075fd79..793bac3930 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,17 +38,17 @@ importers: specifier: ^0.15.3 version: 0.15.3 '@cspell/eslint-plugin': - specifier: ^8.17.1 - version: 8.17.1(eslint@9.29.0(jiti@2.4.2)) + specifier: ^9.2.1 + version: 9.2.1(eslint@9.36.0(jiti@2.5.1)) '@eslint-react/eslint-plugin': - specifier: ^1.52.3 - version: 1.52.3(eslint@9.29.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) + specifier: ^1.53.1 + version: 1.53.1(eslint@9.36.0(jiti@2.5.1))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) '@tanstack/config': - specifier: ^0.19.0 - version: 0.19.0(@types/node@22.15.3)(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^0.20.2 + version: 0.20.2(@types/node@22.15.3)(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@testing-library/jest-dom': - specifier: ^6.6.3 - version: 6.6.3 + specifier: ^6.8.0 + version: 6.8.0 '@types/node': specifier: ^22.15.3 version: 22.15.3 @@ -59,35 +59,32 @@ importers: specifier: ^19.0.2 version: 19.0.2(@types/react@19.0.1) '@vitest/coverage-istanbul': - specifier: 3.1.3 - version: 3.1.3(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: 3.2.4 + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@vitest/eslint-plugin': specifier: ^1.1.36 - version: 1.1.36(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) - cpy-cli: - specifier: ^5.0.0 - version: 5.0.0 + version: 1.1.36(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) esbuild-plugin-file-path-extensions: specifier: ^2.1.4 version: 2.1.4 eslint: - specifier: ^9.15.0 - version: 9.29.0(jiti@2.4.2) + specifier: ^9.36.0 + version: 9.36.0(jiti@2.5.1) eslint-plugin-react-hooks: - specifier: ^6.0.0-rc.1 - version: 6.0.0-rc.1(eslint@9.29.0(jiti@2.4.2)) + specifier: ^6.0.0-rc.2 + version: 6.0.0(eslint@9.36.0(jiti@2.5.1)) jsdom: - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^27.0.0 + version: 27.0.0(postcss@8.5.6) knip: - specifier: ^5.50.2 - version: 5.50.2(@types/node@22.15.3)(typescript@5.8.3) + specifier: ^5.63.1 + version: 5.63.1(@types/node@22.15.3)(typescript@5.8.3) markdown-link-extractor: specifier: ^4.0.2 version: 4.0.2 nx: - specifier: 21.3.0 - version: 21.3.0 + specifier: 21.5.3 + version: 21.5.3 premove: specifier: ^4.0.0 version: 4.0.0 @@ -96,10 +93,10 @@ importers: version: 3.6.2 prettier-plugin-svelte: specifier: ^3.4.0 - version: 3.4.0(prettier@3.6.2)(svelte@5.36.8) + version: 3.4.0(prettier@3.6.2)(svelte@5.39.3) publint: - specifier: ^0.3.12 - version: 0.3.12 + specifier: ^0.3.13 + version: 0.3.13 react: specifier: ^19.0.0 version: 19.0.0 @@ -110,11 +107,11 @@ importers: specifier: ^1.6.1 version: 1.6.1 tinyglobby: - specifier: ^0.2.14 - version: 0.2.14 + specifier: ^0.2.15 + version: 0.2.15 tsup: specifier: ^8.4.0 - version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) + version: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1) typescript: specifier: 5.8.3 version: 5.8.3 @@ -143,11 +140,11 @@ importers: specifier: npm:typescript@5.7 version: typescript@5.7.2 vite: - specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vitest: - specifier: 3.1.3 - version: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: 3.2.4 + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/angular/auto-refetching: dependencies: @@ -178,7 +175,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -218,7 +215,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -264,7 +261,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -307,7 +304,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -347,7 +344,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -390,7 +387,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -430,7 +427,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -473,7 +470,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -516,7 +513,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -559,7 +556,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -599,7 +596,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -639,13 +636,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/auto-refetching: dependencies: @@ -707,13 +704,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/basic-graphql-request: dependencies: @@ -738,10 +735,10 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/chat: dependencies: @@ -760,10 +757,10 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.0.14 - version: 4.0.14(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.0.14(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) tailwindcss: specifier: ^4.0.14 version: 4.0.14 @@ -771,8 +768,8 @@ importers: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/default-query-function: dependencies: @@ -791,13 +788,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/devtools-panel: dependencies: @@ -816,13 +813,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/eslint-legacy: dependencies: @@ -856,13 +853,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/infinite-query-with-max-pages: dependencies: @@ -1039,13 +1036,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/optimistic-updates-cache: dependencies: @@ -1148,13 +1145,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/prefetching: dependencies: @@ -1289,13 +1286,13 @@ importers: version: 1.2.3 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/rick-morty: dependencies: @@ -1332,13 +1329,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/shadow-dom: dependencies: @@ -1363,13 +1360,13 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/simple: dependencies: @@ -1388,13 +1385,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/star-wars: dependencies: @@ -1431,13 +1428,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/react/suspense: dependencies: @@ -1462,13 +1459,13 @@ importers: devDependencies: '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/solid/astro: dependencies: @@ -1477,16 +1474,16 @@ importers: version: 0.9.4(prettier@3.6.2)(typescript@5.8.3) '@astrojs/node': specifier: ^9.1.3 - version: 9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) + version: 9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1)) '@astrojs/solid-js': specifier: ^5.0.7 - version: 5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + version: 5.0.7(@testing-library/jest-dom@6.8.0)(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) '@astrojs/tailwind': specifier: ^6.0.2 - version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + version: 6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) '@astrojs/vercel': specifier: ^8.1.3 - version: 8.1.3(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.36.8)(vue@3.4.35(typescript@5.8.3)) + version: 8.1.3(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3)) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1495,7 +1492,7 @@ importers: version: link:../../../packages/solid-query-devtools astro: specifier: ^5.5.6 - version: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) + version: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1) solid-js: specifier: ^1.9.7 version: 1.9.7 @@ -1522,11 +1519,11 @@ importers: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) examples/solid/basic-graphql-request: dependencies: @@ -1550,11 +1547,11 @@ importers: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) examples/solid/default-query-function: dependencies: @@ -1572,11 +1569,11 @@ importers: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) examples/solid/simple: dependencies: @@ -1597,11 +1594,11 @@ importers: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) examples/solid/solid-start-streaming: dependencies: @@ -1613,7 +1610,7 @@ importers: version: 0.15.3(solid-js@1.9.7) '@solidjs/start': specifier: ^1.1.3 - version: 1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(yaml@2.8.0) + version: 1.1.3(@testing-library/jest-dom@6.8.0)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(yaml@2.8.1) '@tanstack/solid-query': specifier: workspace:* version: link:../../../packages/solid-query @@ -1625,7 +1622,7 @@ importers: version: 1.9.7 vinxi: specifier: ^0.5.3 - version: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + version: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/auto-refetching: dependencies: @@ -1637,26 +1634,26 @@ importers: version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': - specifier: ^6.0.1 - version: 6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) + specifier: ^6.1.0 + version: 6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))) '@sveltejs/kit': - specifier: ^2.25.1 - version: 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^2.42.2 + version: 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/basic: dependencies: @@ -1674,26 +1671,26 @@ importers: version: link:../../../packages/svelte-query-persist-client devDependencies: '@sveltejs/adapter-auto': - specifier: ^6.0.1 - version: 6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) + specifier: ^6.1.0 + version: 6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))) '@sveltejs/kit': - specifier: ^2.25.1 - version: 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^2.42.2 + version: 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/load-more-infinite-scroll: dependencies: @@ -1705,26 +1702,26 @@ importers: version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': - specifier: ^6.0.1 - version: 6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) + specifier: ^6.1.0 + version: 6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))) '@sveltejs/kit': - specifier: ^2.25.1 - version: 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^2.42.2 + version: 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/optimistic-updates: dependencies: @@ -1736,26 +1733,26 @@ importers: version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': - specifier: ^6.0.1 - version: 6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) + specifier: ^6.1.0 + version: 6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))) '@sveltejs/kit': - specifier: ^2.25.1 - version: 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^2.42.2 + version: 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/playground: dependencies: @@ -1767,26 +1764,26 @@ importers: version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': - specifier: ^6.0.1 - version: 6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) + specifier: ^6.1.0 + version: 6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))) '@sveltejs/kit': - specifier: ^2.25.1 - version: 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^2.42.2 + version: 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/simple: dependencies: @@ -1799,22 +1796,22 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@tsconfig/svelte': specifier: ^5.0.4 version: 5.0.4 svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/ssr: dependencies: @@ -1826,26 +1823,26 @@ importers: version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': - specifier: ^6.0.1 - version: 6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) + specifier: ^6.1.0 + version: 6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))) '@sveltejs/kit': - specifier: ^2.25.1 - version: 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^2.42.2 + version: 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/svelte/star-wars: dependencies: @@ -1857,14 +1854,14 @@ importers: version: link:../../../packages/svelte-query-devtools devDependencies: '@sveltejs/adapter-auto': - specifier: ^6.0.1 - version: 6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))) + specifier: ^6.1.0 + version: 6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))) '@sveltejs/kit': - specifier: ^2.25.1 - version: 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + specifier: ^2.42.2 + version: 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -1872,11 +1869,11 @@ importers: specifier: ^8.5.6 version: 8.5.6 svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) tailwindcss: specifier: ^3.4.7 version: 3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) @@ -1884,8 +1881,8 @@ importers: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/vue/basic: dependencies: @@ -1901,13 +1898,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/vue/dependent-queries: dependencies: @@ -1920,13 +1917,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/vue/persister: dependencies: @@ -1951,13 +1948,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) examples/vue/simple: dependencies: @@ -1973,13 +1970,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) integrations/angular-cli-20: dependencies: @@ -2016,7 +2013,7 @@ importers: devDependencies: '@angular/build': specifier: ^20.0.0 - version: 20.0.0(844ad0815c96efce5f2f2b398318e0de) + version: 20.0.0(acb5aa01214ee6710bd4379588c92364) '@angular/cli': specifier: ^20.0.0 version: 20.0.0(@types/node@22.15.3)(chokidar@4.0.3) @@ -2093,7 +2090,7 @@ importers: version: link:../../packages/react-query-devtools '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) react: specifier: ^19.0.0 version: 19.0.0 @@ -2101,8 +2098,8 @@ importers: specifier: ^19.0.0 version: 19.0.0(react@19.0.0) vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) integrations/react-webpack-4: dependencies: @@ -2193,17 +2190,17 @@ importers: specifier: ^1.9.7 version: 1.9.7 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) integrations/svelte-vite: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@tanstack/svelte-query': specifier: workspace:* version: link:../../packages/svelte-query @@ -2211,11 +2208,11 @@ importers: specifier: workspace:* version: link:../../packages/svelte-query-devtools svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) integrations/vue-vite: dependencies: @@ -2228,13 +2225,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.2.4 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vue-tsc: specifier: ^2.2.8 version: 2.2.8(typescript@5.8.3) @@ -2265,7 +2262,7 @@ importers: version: 18.0.0(b638270d50b9f611fb362719c9f1adf5) eslint-plugin-jsdoc: specifier: ^50.5.0 - version: 50.5.0(eslint@9.29.0(jiti@2.4.2)) + version: 50.5.0(eslint@9.36.0(jiti@2.5.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2274,13 +2271,13 @@ importers: version: 7.8.2 vite-plugin-dts: specifier: 4.2.3 - version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) vite-plugin-externalize-deps: specifier: ^0.9.0 - version: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 0.9.0(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) optionalDependencies: '@tanstack/query-devtools': specifier: workspace:* @@ -2322,7 +2319,7 @@ importers: version: 10.4.0 eslint-plugin-jsdoc: specifier: ^50.5.0 - version: 50.5.0(eslint@9.29.0(jiti@2.4.2)) + version: 50.5.0(eslint@9.36.0(jiti@2.5.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2330,21 +2327,21 @@ importers: packages/eslint-plugin-query: dependencies: '@typescript-eslint/utils': - specifier: ^8.37.0 - version: 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.44.0 + version: 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) devDependencies: '@typescript-eslint/parser': - specifier: ^8.37.0 - version: 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.44.0 + version: 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) '@typescript-eslint/rule-tester': - specifier: ^8.37.0 - version: 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.44.0 + version: 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) combinate: specifier: ^1.1.11 version: 1.1.11 eslint: - specifier: ^9.15.0 - version: 9.29.0(jiti@2.4.2) + specifier: ^9.36.0 + version: 9.36.0(jiti@2.5.1) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2379,7 +2376,7 @@ importers: version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2442,10 +2439,10 @@ importers: version: 2.2.2 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) packages/query-persist-client-core: dependencies: @@ -2508,7 +2505,10 @@ importers: version: 19.0.2(@types/react@19.0.1) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + cpy-cli: + specifier: ^5.0.0 + version: 5.0.0 npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2539,7 +2539,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2557,7 +2557,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) next: specifier: ^15.3.1 version: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) @@ -2588,7 +2588,7 @@ importers: version: 19.0.1 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) npm-run-all2: specifier: ^5.0.0 version: 5.0.2 @@ -2616,10 +2616,10 @@ importers: version: 1.9.7 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) packages/solid-query-devtools: dependencies: @@ -2638,10 +2638,10 @@ importers: version: 1.9.7 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) packages/solid-query-persist-client: dependencies: @@ -2666,10 +2666,10 @@ importers: version: 1.9.7 tsup-preset-solid: specifier: ^2.2.0 - version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)) + version: 2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1)) vite-plugin-solid: specifier: ^2.11.6 - version: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) packages/svelte-query: dependencies: @@ -2679,25 +2679,25 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.4.0 - version: 2.4.0(svelte@5.36.8)(typescript@5.8.3) + version: 2.4.0(svelte@5.39.3)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils '@testing-library/svelte': specifier: ^5.2.8 - version: 5.2.8(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.2.8(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) eslint-plugin-svelte: specifier: ^3.11.0 - version: 3.11.0(eslint@9.29.0(jiti@2.4.2))(svelte@5.36.8)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + version: 3.11.0(eslint@9.36.0(jiti@2.5.1))(svelte@5.39.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) packages/svelte-query-devtools: dependencies: @@ -2710,22 +2710,22 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.4.0 - version: 2.4.0(svelte@5.36.8)(typescript@5.8.3) + version: 2.4.0(svelte@5.39.3)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@tanstack/svelte-query': specifier: workspace:* version: link:../svelte-query eslint-plugin-svelte: specifier: ^3.11.0 - version: 3.11.0(eslint@9.29.0(jiti@2.4.2))(svelte@5.36.8)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + version: 3.11.0(eslint@9.36.0(jiti@2.5.1))(svelte@5.39.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) packages/svelte-query-persist-client: dependencies: @@ -2735,10 +2735,10 @@ importers: devDependencies: '@sveltejs/package': specifier: ^2.4.0 - version: 2.4.0(svelte@5.36.8)(typescript@5.8.3) + version: 2.4.0(svelte@5.39.3)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@tanstack/query-test-utils': specifier: workspace:* version: link:../query-test-utils @@ -2747,16 +2747,16 @@ importers: version: link:../svelte-query '@testing-library/svelte': specifier: ^5.2.8 - version: 5.2.8(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + version: 5.2.8(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) eslint-plugin-svelte: specifier: ^3.11.0 - version: 3.11.0(eslint@9.29.0(jiti@2.4.2))(svelte@5.36.8)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) + version: 3.11.0(eslint@9.36.0(jiti@2.5.1))(svelte@5.39.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) svelte: - specifier: ^5.36.8 - version: 5.36.8 + specifier: ^5.39.3 + version: 5.39.3 svelte-check: - specifier: ^4.3.0 - version: 4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3) + specifier: ^4.3.1 + version: 4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3) packages/vue-query: dependencies: @@ -2778,13 +2778,13 @@ importers: version: link:../query-test-utils '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) '@vue/composition-api': specifier: 1.7.2 version: 1.7.2(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^9.27.0 - version: 9.27.0(eslint@9.29.0(jiti@2.4.2)) + version: 9.27.0(eslint@9.36.0(jiti@2.5.1)) vue: specifier: ^3.4.27 version: 3.4.35(typescript@5.8.3) @@ -2806,16 +2806,16 @@ importers: version: link:../vue-query '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3)) + version: 5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3)) eslint-plugin-vue: specifier: ^9.27.0 - version: 9.27.0(eslint@9.29.0(jiti@2.4.2)) + version: 9.27.0(eslint@9.36.0(jiti@2.5.1)) typescript: specifier: 5.8.3 version: 5.8.3 vite: - specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vue: specifier: ^3.4.27 version: 3.4.35(typescript@5.8.3) @@ -3011,6 +3011,15 @@ packages: resolution: {integrity: sha512-FYp6GBAgsNz81BkfItRz8RLZO03w5+BaeiPma1uCfmxTnxbtuMrI/dbzGiOk8VghO108uFI0oJo0OkewdSHw7g==} engines: {node: '>=18'} + '@asamuzakjp/css-color@4.0.4': + resolution: {integrity: sha512-cKjSKvWGmAziQWbCouOsFwb14mp1betm8Y7Fn+yglDMUUu3r9DCbJ9iJbeFDenLMqFbIMC0pQP8K+B8LAxX3OQ==} + + '@asamuzakjp/dom-selector@6.5.5': + resolution: {integrity: sha512-kI2MX9pmImjxWT8nxDZY+MuN6r1jJGe7WxizEbsAEPB/zxfW5wYLIiPG1v3UKgEOOP8EsDkp0ZL99oRFAdPM8g==} + + '@asamuzakjp/nwsapi@2.3.9': + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} + '@astrojs/check@0.9.4': resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} hasBin: true @@ -3837,225 +3846,265 @@ packages: peerDependencies: solid-js: ^1.8 - '@cspell/cspell-bundled-dicts@8.17.1': - resolution: {integrity: sha512-HmkXS5uX4bk/XxsRS4Q+zRvhgRa81ddGiR2/Xfag9MIi5L5UnEJ4g21EpmIlXkMxYrTu2fp69SZFss5NfcFF9Q==} - engines: {node: '>=18'} + '@cspell/cspell-bundled-dicts@9.2.1': + resolution: {integrity: sha512-85gHoZh3rgZ/EqrHIr1/I4OLO53fWNp6JZCqCdgaT7e3sMDaOOG6HoSxCvOnVspXNIf/1ZbfTCDMx9x79Xq0AQ==} + engines: {node: '>=20'} - '@cspell/cspell-pipe@8.17.1': - resolution: {integrity: sha512-uhC99Ox+OH3COSgShv4fpVHiotR70dNvAOSkzRvKVRzV6IGyFnxHjmyVVPEV0dsqzVLxltwYTqFhwI+UOwm45A==} - engines: {node: '>=18'} + '@cspell/cspell-pipe@9.2.1': + resolution: {integrity: sha512-2N1H63If5cezLqKToY/YSXon4m4REg/CVTFZr040wlHRbbQMh5EF3c7tEC/ue3iKAQR4sm52ihfqo1n4X6kz+g==} + engines: {node: '>=20'} - '@cspell/cspell-resolver@8.17.1': - resolution: {integrity: sha512-XEK2ymTdQNgsV3ny60VkKzWskbICl4zNXh/DbxsoRXHqIRg43MXFpTNkEJ7j873EqdX7BU4opQQ+5D4stWWuhQ==} - engines: {node: '>=18'} + '@cspell/cspell-resolver@9.2.1': + resolution: {integrity: sha512-fRPQ6GWU5eyh8LN1TZblc7t24TlGhJprdjJkfZ+HjQo+6ivdeBPT7pC7pew6vuMBQPS1oHBR36hE0ZnJqqkCeg==} + engines: {node: '>=20'} - '@cspell/cspell-service-bus@8.17.1': - resolution: {integrity: sha512-2sFWQtMEWZ4tdz7bw0bAx4NaV1t0ynGfjpuKWdQppsJFKNb+ZPZZ6Ah1dC13AdRRMZaG194kDRFwzNvRaCgWkQ==} - engines: {node: '>=18'} + '@cspell/cspell-service-bus@9.2.1': + resolution: {integrity: sha512-k4M6bqdvWbcGSbcfLD7Lf4coZVObsISDW+sm/VaWp9aZ7/uwiz1IuGUxL9WO4JIdr9CFEf7Ivmvd2txZpVOCIA==} + engines: {node: '>=20'} - '@cspell/cspell-types@8.17.1': - resolution: {integrity: sha512-NJbov7Jp57fh8addoxesjb8atg/APQfssCH5Q9uZuHBN06wEJDgs7fhfE48bU+RBViC9gltblsYZzZZQKzHYKg==} - engines: {node: '>=18'} + '@cspell/cspell-types@9.2.1': + resolution: {integrity: sha512-FQHgQYdTHkcpxT0u1ddLIg5Cc5ePVDcLg9+b5Wgaubmc5I0tLotgYj8c/mvStWuKsuZIs6sUopjJrE91wk6Onw==} + engines: {node: '>=20'} - '@cspell/dict-ada@4.0.5': - resolution: {integrity: sha512-6/RtZ/a+lhFVmrx/B7bfP7rzC4yjEYe8o74EybXcvu4Oue6J4Ey2WSYj96iuodloj1LWrkNCQyX5h4Pmcj0Iag==} + '@cspell/dict-ada@4.1.1': + resolution: {integrity: sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==} - '@cspell/dict-al@1.0.3': - resolution: {integrity: sha512-V1HClwlfU/qwSq2Kt+MkqRAsonNu3mxjSCDyGRecdLGIHmh7yeEeaxqRiO/VZ4KP+eVSiSIlbwrb5YNFfxYZbw==} + '@cspell/dict-al@1.1.1': + resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} - '@cspell/dict-aws@4.0.7': - resolution: {integrity: sha512-PoaPpa2NXtSkhGIMIKhsJUXB6UbtTt6Ao3x9JdU9kn7fRZkwD4RjHDGqulucIOz7KeEX/dNRafap6oK9xHe4RA==} + '@cspell/dict-aws@4.0.15': + resolution: {integrity: sha512-aPY7VVR5Os4rz36EaqXBAEy14wR4Rqv+leCJ2Ug/Gd0IglJpM30LalF3e2eJChnjje3vWoEC0Rz3+e5gpZG+Kg==} - '@cspell/dict-bash@4.1.8': - resolution: {integrity: sha512-I2CM2pTNthQwW069lKcrVxchJGMVQBzru2ygsHCwgidXRnJL/NTjAPOFTxN58Jc1bf7THWghfEDyKX/oyfc0yg==} + '@cspell/dict-bash@4.2.1': + resolution: {integrity: sha512-SBnzfAyEAZLI9KFS7DUG6Xc1vDFuLllY3jz0WHvmxe8/4xV3ufFE3fGxalTikc1VVeZgZmxYiABw4iGxVldYEg==} - '@cspell/dict-companies@3.1.10': - resolution: {integrity: sha512-KpRLiVDCpTkF+IjWnuYc31B0gyHVh0TSf/MDrWPobl9oYNQRWFUMACAJO9FP+kHI0jzLjTyLC1KpKwqte/88iA==} + '@cspell/dict-companies@3.2.5': + resolution: {integrity: sha512-H51R0w7c6RwJJPqH7Gs65tzP6ouZsYDEHmmol6MIIk0kQaOIBuFP2B3vIxHLUr2EPRVFZsMW8Ni7NmVyaQlwsg==} - '@cspell/dict-cpp@6.0.2': - resolution: {integrity: sha512-yw5eejWvY4bAnc6LUA44m4WsFwlmgPt2uMSnO7QViGMBDuoeopMma4z9XYvs4lSjTi8fIJs/A1YDfM9AVzb8eg==} + '@cspell/dict-cpp@6.0.12': + resolution: {integrity: sha512-N4NsCTttVpMqQEYbf0VQwCj6np+pJESov0WieCN7R/0aByz4+MXEiDieWWisaiVi8LbKzs1mEj4ZTw5K/6O2UQ==} - '@cspell/dict-cryptocurrencies@5.0.3': - resolution: {integrity: sha512-bl5q+Mk+T3xOZ12+FG37dB30GDxStza49Rmoax95n37MTLksk9wBo1ICOlPJ6PnDUSyeuv4SIVKgRKMKkJJglA==} + '@cspell/dict-cryptocurrencies@5.0.5': + resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} - '@cspell/dict-csharp@4.0.5': - resolution: {integrity: sha512-c/sFnNgtRwRJxtC3JHKkyOm+U3/sUrltFeNwml9VsxKBHVmvlg4tk4ar58PdpW9/zTlGUkWi2i85//DN1EsUCA==} + '@cspell/dict-csharp@4.0.7': + resolution: {integrity: sha512-H16Hpu8O/1/lgijFt2lOk4/nnldFtQ4t8QHbyqphqZZVE5aS4J/zD/WvduqnLY21aKhZS6jo/xF5PX9jyqPKUA==} - '@cspell/dict-css@4.0.16': - resolution: {integrity: sha512-70qu7L9z/JR6QLyJPk38fNTKitlIHnfunx0wjpWQUQ8/jGADIhMCrz6hInBjqPNdtGpYm8d1dNFyF8taEkOgrQ==} + '@cspell/dict-css@4.0.18': + resolution: {integrity: sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==} - '@cspell/dict-dart@2.2.4': - resolution: {integrity: sha512-of/cVuUIZZK/+iqefGln8G3bVpfyN6ZtH+LyLkHMoR5tEj+2vtilGNk9ngwyR8L4lEqbKuzSkOxgfVjsXf5PsQ==} + '@cspell/dict-dart@2.3.1': + resolution: {integrity: sha512-xoiGnULEcWdodXI6EwVyqpZmpOoh8RA2Xk9BNdR7DLamV/QMvEYn8KJ7NlRiTSauJKPNkHHQ5EVHRM6sTS7jdg==} - '@cspell/dict-data-science@2.0.5': - resolution: {integrity: sha512-nNSILXmhSJox9/QoXICPQgm8q5PbiSQP4afpbkBqPi/u/b3K9MbNH5HvOOa6230gxcGdbZ9Argl2hY/U8siBlg==} + '@cspell/dict-data-science@2.0.9': + resolution: {integrity: sha512-wTOFMlxv06veIwKdXUwdGxrQcK44Zqs426m6JGgHIB/GqvieZQC5n0UI+tUm5OCxuNyo4OV6mylT4cRMjtKtWQ==} - '@cspell/dict-django@4.1.3': - resolution: {integrity: sha512-yBspeL3roJlO0a1vKKNaWABURuHdHZ9b1L8d3AukX0AsBy9snSggc8xCavPmSzNfeMDXbH+1lgQiYBd3IW03fg==} + '@cspell/dict-django@4.1.5': + resolution: {integrity: sha512-AvTWu99doU3T8ifoMYOMLW2CXKvyKLukPh1auOPwFGHzueWYvBBN+OxF8wF7XwjTBMMeRleVdLh3aWCDEX/ZWg==} - '@cspell/dict-docker@1.1.11': - resolution: {integrity: sha512-s0Yhb16/R+UT1y727ekbR/itWQF3Qz275DR1ahOa66wYtPjHUXmhM3B/LT3aPaX+hD6AWmK23v57SuyfYHUjsw==} + '@cspell/dict-docker@1.1.16': + resolution: {integrity: sha512-UiVQ5RmCg6j0qGIxrBnai3pIB+aYKL3zaJGvXk1O/ertTKJif9RZikKXCEgqhaCYMweM4fuLqWSVmw3hU164Iw==} - '@cspell/dict-dotnet@5.0.8': - resolution: {integrity: sha512-MD8CmMgMEdJAIPl2Py3iqrx3B708MbCIXAuOeZ0Mzzb8YmLmiisY7QEYSZPg08D7xuwARycP0Ki+bb0GAkFSqg==} + '@cspell/dict-dotnet@5.0.10': + resolution: {integrity: sha512-ooar8BP/RBNP1gzYfJPStKEmpWy4uv/7JCq6FOnJLeD1yyfG3d/LFMVMwiJo+XWz025cxtkM3wuaikBWzCqkmg==} - '@cspell/dict-elixir@4.0.6': - resolution: {integrity: sha512-TfqSTxMHZ2jhiqnXlVKM0bUADtCvwKQv2XZL/DI0rx3doG8mEMS8SGPOmiyyGkHpR/pGOq18AFH3BEm4lViHIw==} + '@cspell/dict-elixir@4.0.8': + resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} - '@cspell/dict-en-common-misspellings@2.0.7': - resolution: {integrity: sha512-qNFo3G4wyabcwnM+hDrMYKN9vNVg/k9QkhqSlSst6pULjdvPyPs1mqz1689xO/v9t8e6sR4IKc3CgUXDMTYOpA==} + '@cspell/dict-en-common-misspellings@2.1.6': + resolution: {integrity: sha512-xV9yryOqZizbSqxRS7kSVRrxVEyWHUqwdY56IuT7eAWGyTCJNmitXzXa4p+AnEbhL+AB2WLynGVSbNoUC3ceFA==} - '@cspell/dict-en-gb@1.1.33': - resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} + '@cspell/dict-en-gb-mit@3.1.9': + resolution: {integrity: sha512-1lSnphnHTOxnpNLpPLg1XXv8df3hs4oL0LJ6dkQ0IqNROl8Jzl6PD55BDTlKy4YOAA76dJlePB0wyrxB+VVKbg==} - '@cspell/dict-en_us@4.3.28': - resolution: {integrity: sha512-BN1PME7cOl7DXRQJ92pEd1f0Xk5sqjcDfThDGkKcsgwbSOY7KnTc/czBW6Pr3WXIchIm6cT12KEfjNqx7U7Rrw==} + '@cspell/dict-en_us@4.4.19': + resolution: {integrity: sha512-JYYgzhGqSGuIMNY1cTlmq3zrNpehrExMHqLmLnSM2jEGFeHydlL+KLBwBYxMy4e73w+p1+o/rmAiGsMj9g3MCw==} - '@cspell/dict-filetypes@3.0.9': - resolution: {integrity: sha512-U7ycC1cE32A5aEgwzp/iE0TVabonUFnVt+Ygbf6NsIWqEuFWZgZChC7gfztA4T1fpuj602nFdp7eOnTWKORsnQ==} + '@cspell/dict-filetypes@3.0.13': + resolution: {integrity: sha512-g6rnytIpQlMNKGJT1JKzWkC+b3xCliDKpQ3ANFSq++MnR4GaLiifaC4JkVON11Oh/UTplYOR1nY3BR4X30bswA==} - '@cspell/dict-flutter@1.0.3': - resolution: {integrity: sha512-52C9aUEU22ptpgYh6gQyIdA4MP6NPwzbEqndfgPh3Sra191/kgs7CVqXiO1qbtZa9gnYHUoVApkoxRE7mrXHfg==} + '@cspell/dict-flutter@1.1.1': + resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} - '@cspell/dict-fonts@4.0.3': - resolution: {integrity: sha512-sPd17kV5qgYXLteuHFPn5mbp/oCHKgitNfsZLFC3W2fWEgZlhg4hK+UGig3KzrYhhvQ8wBnmZrAQm0TFKCKzsA==} + '@cspell/dict-fonts@4.0.5': + resolution: {integrity: sha512-BbpkX10DUX/xzHs6lb7yzDf/LPjwYIBJHJlUXSBXDtK/1HaeS+Wqol4Mlm2+NAgZ7ikIE5DQMViTgBUY3ezNoQ==} - '@cspell/dict-fsharp@1.0.4': - resolution: {integrity: sha512-G5wk0o1qyHUNi9nVgdE1h5wl5ylq7pcBjX8vhjHcO4XBq20D5eMoXjwqMo/+szKAqzJ+WV3BgAL50akLKrT9Rw==} + '@cspell/dict-fsharp@1.1.1': + resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} - '@cspell/dict-fullstack@3.2.3': - resolution: {integrity: sha512-62PbndIyQPH11mAv0PyiyT0vbwD0AXEocPpHlCHzfb5v9SspzCCbzQ/LIBiFmyRa+q5LMW35CnSVu6OXdT+LKg==} + '@cspell/dict-fullstack@3.2.7': + resolution: {integrity: sha512-IxEk2YAwAJKYCUEgEeOg3QvTL4XLlyArJElFuMQevU1dPgHgzWElFevN5lsTFnvMFA1riYsVinqJJX0BanCFEg==} - '@cspell/dict-gaming-terms@1.0.9': - resolution: {integrity: sha512-AVIrZt3YiUnxsUzzGYTZ1XqgtkgwGEO0LWIlEf+SiDUEVLtv4CYmmyXFQ+WXDN0pyJ0wOwDazWrP0Cu7avYQmQ==} + '@cspell/dict-gaming-terms@1.1.2': + resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} - '@cspell/dict-git@3.0.3': - resolution: {integrity: sha512-LSxB+psZ0qoj83GkyjeEH/ZViyVsGEF/A6BAo8Nqc0w0HjD2qX/QR4sfA6JHUgQ3Yi/ccxdK7xNIo67L2ScW5A==} + '@cspell/dict-git@3.0.7': + resolution: {integrity: sha512-odOwVKgfxCQfiSb+nblQZc4ErXmnWEnv8XwkaI4sNJ7cNmojnvogYVeMqkXPjvfrgEcizEEA4URRD2Ms5PDk1w==} - '@cspell/dict-golang@6.0.17': - resolution: {integrity: sha512-uDDLEJ/cHdLiqPw4+5BnmIo2i/TSR+uDvYd6JlBjTmjBKpOCyvUgYRztH7nv5e7virsN5WDiUWah4/ATQGz4Pw==} + '@cspell/dict-golang@6.0.23': + resolution: {integrity: sha512-oXqUh/9dDwcmVlfUF5bn3fYFqbUzC46lXFQmi5emB0vYsyQXdNWsqi6/yH3uE7bdRE21nP7Yo0mR1jjFNyLamg==} - '@cspell/dict-google@1.0.4': - resolution: {integrity: sha512-JThUT9eiguCja1mHHLwYESgxkhk17Gv7P3b1S7ZJzXw86QyVHPrbpVoMpozHk0C9o+Ym764B7gZGKmw9uMGduQ==} + '@cspell/dict-google@1.0.9': + resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} - '@cspell/dict-haskell@4.0.4': - resolution: {integrity: sha512-EwQsedEEnND/vY6tqRfg9y7tsnZdxNqOxLXSXTsFA6JRhUlr8Qs88iUUAfsUzWc4nNmmzQH2UbtT25ooG9x4nA==} + '@cspell/dict-haskell@4.0.6': + resolution: {integrity: sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==} - '@cspell/dict-html-symbol-entities@4.0.3': - resolution: {integrity: sha512-aABXX7dMLNFdSE8aY844X4+hvfK7977sOWgZXo4MTGAmOzR8524fjbJPswIBK7GaD3+SgFZ2yP2o0CFvXDGF+A==} + '@cspell/dict-html-symbol-entities@4.0.4': + resolution: {integrity: sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==} - '@cspell/dict-html@4.0.10': - resolution: {integrity: sha512-I9uRAcdtHbh0wEtYZlgF0TTcgH0xaw1B54G2CW+tx4vHUwlde/+JBOfIzird4+WcMv4smZOfw+qHf7puFUbI5g==} + '@cspell/dict-html@4.0.12': + resolution: {integrity: sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==} - '@cspell/dict-java@5.0.10': - resolution: {integrity: sha512-pVNcOnmoGiNL8GSVq4WbX/Vs2FGS0Nej+1aEeGuUY9CU14X8yAVCG+oih5ZoLt1jaR8YfR8byUF8wdp4qG4XIw==} + '@cspell/dict-java@5.0.12': + resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} - '@cspell/dict-julia@1.0.4': - resolution: {integrity: sha512-bFVgNX35MD3kZRbXbJVzdnN7OuEqmQXGpdOi9jzB40TSgBTlJWA4nxeAKV4CPCZxNRUGnLH0p05T/AD7Aom9/w==} + '@cspell/dict-julia@1.1.1': + resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} - '@cspell/dict-k8s@1.0.9': - resolution: {integrity: sha512-Q7GELSQIzo+BERl2ya/nBEnZeQC+zJP19SN1pI6gqDYraM51uYJacbbcWLYYO2Y+5joDjNt/sd/lJtLaQwoSlA==} + '@cspell/dict-k8s@1.0.12': + resolution: {integrity: sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==} - '@cspell/dict-latex@4.0.3': - resolution: {integrity: sha512-2KXBt9fSpymYHxHfvhUpjUFyzrmN4c4P8mwIzweLyvqntBT3k0YGZJSriOdjfUjwSygrfEwiuPI1EMrvgrOMJw==} + '@cspell/dict-kotlin@1.1.1': + resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} - '@cspell/dict-lorem-ipsum@4.0.3': - resolution: {integrity: sha512-WFpDi/PDYHXft6p0eCXuYnn7mzMEQLVeqpO+wHSUd+kz5ADusZ4cpslAA4wUZJstF1/1kMCQCZM6HLZic9bT8A==} + '@cspell/dict-latex@4.0.4': + resolution: {integrity: sha512-YdTQhnTINEEm/LZgTzr9Voz4mzdOXH7YX+bSFs3hnkUHCUUtX/mhKgf1CFvZ0YNM2afjhQcmLaR9bDQVyYBvpA==} - '@cspell/dict-lua@4.0.6': - resolution: {integrity: sha512-Jwvh1jmAd9b+SP9e1GkS2ACbqKKRo9E1f9GdjF/ijmooZuHU0hPyqvnhZzUAxO1egbnNjxS/J2T6iUtjAUK2KQ==} + '@cspell/dict-lorem-ipsum@4.0.5': + resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} - '@cspell/dict-makefile@1.0.3': - resolution: {integrity: sha512-R3U0DSpvTs6qdqfyBATnePj9Q/pypkje0Nj26mQJ8TOBQutCRAJbr2ZFAeDjgRx5EAJU/+8txiyVF97fbVRViw==} + '@cspell/dict-lua@4.0.8': + resolution: {integrity: sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==} - '@cspell/dict-markdown@2.0.7': - resolution: {integrity: sha512-F9SGsSOokFn976DV4u/1eL4FtKQDSgJHSZ3+haPRU5ki6OEqojxKa8hhj4AUrtNFpmBaJx/WJ4YaEzWqG7hgqg==} + '@cspell/dict-makefile@1.0.5': + resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} + + '@cspell/dict-markdown@2.0.12': + resolution: {integrity: sha512-ufwoliPijAgWkD/ivAMC+A9QD895xKiJRF/fwwknQb7kt7NozTLKFAOBtXGPJAB4UjhGBpYEJVo2elQ0FCAH9A==} peerDependencies: - '@cspell/dict-css': ^4.0.16 - '@cspell/dict-html': ^4.0.10 - '@cspell/dict-html-symbol-entities': ^4.0.3 - '@cspell/dict-typescript': ^3.1.11 + '@cspell/dict-css': ^4.0.18 + '@cspell/dict-html': ^4.0.12 + '@cspell/dict-html-symbol-entities': ^4.0.4 + '@cspell/dict-typescript': ^3.2.3 - '@cspell/dict-monkeyc@1.0.9': - resolution: {integrity: sha512-Jvf6g5xlB4+za3ThvenYKREXTEgzx5gMUSzrAxIiPleVG4hmRb/GBSoSjtkGaibN3XxGx5x809gSTYCA/IHCpA==} + '@cspell/dict-monkeyc@1.0.11': + resolution: {integrity: sha512-7Q1Ncu0urALI6dPTrEbSTd//UK0qjRBeaxhnm8uY5fgYNFYAG+u4gtnTIo59S6Bw5P++4H3DiIDYoQdY/lha8w==} - '@cspell/dict-node@5.0.5': - resolution: {integrity: sha512-7NbCS2E8ZZRZwlLrh2sA0vAk9n1kcTUiRp/Nia8YvKaItGXLfxYqD2rMQ3HpB1kEutal6hQLVic3N2Yi1X7AaA==} + '@cspell/dict-node@5.0.8': + resolution: {integrity: sha512-AirZcN2i84ynev3p2/1NCPEhnNsHKMz9zciTngGoqpdItUb2bDt1nJBjwlsrFI78GZRph/VaqTVFwYikmncpXg==} - '@cspell/dict-npm@5.1.19': - resolution: {integrity: sha512-ygpKeCXKURqymycqZEF9r/TytkWZxedDehudqiJLtPI6OZJhx3Kxy3hysiRq7RYpHiK+LSX39bwpxGM/h0Ghnw==} + '@cspell/dict-npm@5.2.17': + resolution: {integrity: sha512-0yp7lBXtN3CtxBrpvTu/yAuPdOHR2ucKzPxdppc3VKO068waZNpKikn1NZCzBS3dIAFGVITzUPtuTXxt9cxnSg==} - '@cspell/dict-php@4.0.13': - resolution: {integrity: sha512-P6sREMZkhElzz/HhXAjahnICYIqB/HSGp1EhZh+Y6IhvC15AzgtDP8B8VYCIsQof6rPF1SQrFwunxOv8H1e2eg==} + '@cspell/dict-php@4.0.15': + resolution: {integrity: sha512-iepGB2gtToMWSTvybesn4/lUp4LwXcEm0s8vasJLP76WWVkq1zYjmeS+WAIzNgsuURyZ/9mGqhS0CWMuo74ODw==} - '@cspell/dict-powershell@5.0.13': - resolution: {integrity: sha512-0qdj0XZIPmb77nRTynKidRJKTU0Fl+10jyLbAhFTuBWKMypVY06EaYFnwhsgsws/7nNX8MTEQuewbl9bWFAbsg==} + '@cspell/dict-powershell@5.0.15': + resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} - '@cspell/dict-public-licenses@2.0.11': - resolution: {integrity: sha512-rR5KjRUSnVKdfs5G+gJ4oIvQvm8+NJ6cHWY2N+GE69/FSGWDOPHxulCzeGnQU/c6WWZMSimG9o49i9r//lUQyA==} + '@cspell/dict-public-licenses@2.0.15': + resolution: {integrity: sha512-cJEOs901H13Pfy0fl4dCD1U+xpWIMaEPq8MeYU83FfDZvellAuSo4GqWCripfIqlhns/L6+UZEIJSOZnjgy7Wg==} - '@cspell/dict-python@4.2.13': - resolution: {integrity: sha512-mZIcmo9qif8LkJ6N/lqTZawcOk2kVTcuWIUOSbMcjyomO0XZ7iWz15TfONyr03Ea/l7o5ULV+MZ4vx76bAUb7w==} + '@cspell/dict-python@4.2.19': + resolution: {integrity: sha512-9S2gTlgILp1eb6OJcVZeC8/Od83N8EqBSg5WHVpx97eMMJhifOzePkE0kDYjyHMtAFznCQTUu0iQEJohNQ5B0A==} - '@cspell/dict-r@2.0.4': - resolution: {integrity: sha512-cBpRsE/U0d9BRhiNRMLMH1PpWgw+N+1A2jumgt1if9nBGmQw4MUpg2u9I0xlFVhstTIdzXiLXMxP45cABuiUeQ==} + '@cspell/dict-r@2.1.1': + resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} - '@cspell/dict-ruby@5.0.7': - resolution: {integrity: sha512-4/d0hcoPzi5Alk0FmcyqlzFW9lQnZh9j07MJzPcyVO62nYJJAGKaPZL2o4qHeCS/od/ctJC5AHRdoUm0ktsw6Q==} + '@cspell/dict-ruby@5.0.9': + resolution: {integrity: sha512-H2vMcERMcANvQshAdrVx0XoWaNX8zmmiQN11dZZTQAZaNJ0xatdJoSqY8C8uhEMW89bfgpN+NQgGuDXW2vmXEw==} - '@cspell/dict-rust@4.0.10': - resolution: {integrity: sha512-6o5C8566VGTTctgcwfF3Iy7314W0oMlFFSQOadQ0OEdJ9Z9ERX/PDimrzP3LGuOrvhtEFoK8pj+BLnunNwRNrw==} + '@cspell/dict-rust@4.0.12': + resolution: {integrity: sha512-z2QiH+q9UlNhobBJArvILRxV8Jz0pKIK7gqu4TgmEYyjiu1TvnGZ1tbYHeu9w3I/wOP6UMDoCBTty5AlYfW0mw==} - '@cspell/dict-scala@5.0.6': - resolution: {integrity: sha512-tl0YWAfjUVb4LyyE4JIMVE8DlLzb1ecHRmIWc4eT6nkyDqQgHKzdHsnusxFEFMVLIQomgSg0Zz6hJ5S1E4W4ww==} + '@cspell/dict-scala@5.0.8': + resolution: {integrity: sha512-YdftVmumv8IZq9zu1gn2U7A4bfM2yj9Vaupydotyjuc+EEZZSqAafTpvW/jKLWji2TgybM1L2IhmV0s/Iv9BTw==} - '@cspell/dict-software-terms@4.1.21': - resolution: {integrity: sha512-LXoFLHzqPeehPMpu4mLpUoP+UVgT8aDfMuuvpsowvDc/nYaMq0UvnPVo632VOi5SUOzFX6NHsQ4x5eP3TRUOFA==} + '@cspell/dict-shell@1.1.1': + resolution: {integrity: sha512-T37oYxE7OV1x/1D4/13Y8JZGa1QgDCXV7AVt3HLXjn0Fe3TaNDvf5sU0fGnXKmBPqFFrHdpD3uutAQb1dlp15g==} - '@cspell/dict-sql@2.1.8': - resolution: {integrity: sha512-dJRE4JV1qmXTbbGm6WIcg1knmR6K5RXnQxF4XHs5HA3LAjc/zf77F95i5LC+guOGppVF6Hdl66S2UyxT+SAF3A==} + '@cspell/dict-software-terms@5.1.8': + resolution: {integrity: sha512-iwCHLP11OmVHEX2MzE8EPxpPw7BelvldxWe5cJ3xXIDL8TjF2dBTs2noGcrqnZi15SLYIlO8897BIOa33WHHZA==} - '@cspell/dict-svelte@1.0.5': - resolution: {integrity: sha512-sseHlcXOqWE4Ner9sg8KsjxwSJ2yssoJNqFHR9liWVbDV+m7kBiUtn2EB690TihzVsEmDr/0Yxrbb5Bniz70mA==} + '@cspell/dict-sql@2.2.1': + resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} - '@cspell/dict-swift@2.0.4': - resolution: {integrity: sha512-CsFF0IFAbRtYNg0yZcdaYbADF5F3DsM8C4wHnZefQy8YcHP/qjAF/GdGfBFBLx+XSthYuBlo2b2XQVdz3cJZBw==} + '@cspell/dict-svelte@1.0.7': + resolution: {integrity: sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==} - '@cspell/dict-terraform@1.0.6': - resolution: {integrity: sha512-Sqm5vGbXuI9hCFcr4w6xWf4Y25J9SdleE/IqfM6RySPnk8lISEmVdax4k6+Kinv9qaxyvnIbUUN4WFLWcBPQAg==} + '@cspell/dict-swift@2.0.6': + resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} - '@cspell/dict-typescript@3.1.11': - resolution: {integrity: sha512-FwvK5sKbwrVpdw0e9+1lVTl8FPoHYvfHRuQRQz2Ql5XkC0gwPPkpoyD1zYImjIyZRoYXk3yp9j8ss4iz7A7zoQ==} + '@cspell/dict-terraform@1.1.3': + resolution: {integrity: sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==} - '@cspell/dict-vue@3.0.3': - resolution: {integrity: sha512-akmYbrgAGumqk1xXALtDJcEcOMYBYMnkjpmGzH13Ozhq1mkPF4VgllFQlm1xYde+BUKNnzMgPEzxrL2qZllgYA==} + '@cspell/dict-typescript@3.2.3': + resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} - '@cspell/dynamic-import@8.17.1': - resolution: {integrity: sha512-XQtr2olYOtqbg49E+8SISd6I5DzfxmsKINDn0ZgaTFeLalnNdF3ewDU4gOEbApIzGffRa1mW9t19MsiVrznSDw==} - engines: {node: '>=18.0'} + '@cspell/dict-vue@3.0.5': + resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} - '@cspell/eslint-plugin@8.17.1': - resolution: {integrity: sha512-S3+NKHqba0gsrWHPcQkFNs+yCGhyPbFyO5aY8l2sETKJJutL02Qy/qTVJdmA0TYnYUeu1SvDyLL9BJbWuzJ9tA==} - engines: {node: '>=18'} + '@cspell/dynamic-import@9.2.1': + resolution: {integrity: sha512-izYQbk7ck0ffNA1gf7Gi3PkUEjj+crbYeyNK1hxHx5A+GuR416ozs0aEyp995KI2v9HZlXscOj3SC3wrWzHZeA==} + engines: {node: '>=20'} + + '@cspell/eslint-plugin@9.2.1': + resolution: {integrity: sha512-Fs6P3yXqL11MAcoKDiqWqKMwWuvLn5JaHvjAabnHi9suaYKv1o2RKTp6DIdAYL/KL8AvWKwJbWIChmJZrAJBow==} + engines: {node: '>=20'} peerDependencies: eslint: ^7 || ^8 || ^9 - '@cspell/filetypes@8.17.1': - resolution: {integrity: sha512-AxYw6j7EPYtDFAFjwybjFpMc9waXQzurfBXmEVfQ5RQRlbylujLZWwR6GnMqofeNg4oGDUpEjcAZFrgdkvMQlA==} - engines: {node: '>=18'} + '@cspell/filetypes@9.2.1': + resolution: {integrity: sha512-Dy1y1pQ+7hi2gPs+jERczVkACtYbUHcLodXDrzpipoxgOtVxMcyZuo+84WYHImfu0gtM0wU2uLObaVgMSTnytw==} + engines: {node: '>=20'} - '@cspell/strong-weak-map@8.17.1': - resolution: {integrity: sha512-8cY3vLAKdt5gQEMM3Gr57BuQ8sun2NjYNh9qTdrctC1S9gNC7XzFghTYAfHSWR4VrOUcMFLO/izMdsc1KFvFOA==} - engines: {node: '>=18'} + '@cspell/strong-weak-map@9.2.1': + resolution: {integrity: sha512-1HsQWZexvJSjDocVnbeAWjjgqWE/0op/txxzDPvDqI2sE6pY0oO4Cinj2I8z+IP+m6/E6yjPxdb23ydbQbPpJQ==} + engines: {node: '>=20'} - '@cspell/url@8.17.1': - resolution: {integrity: sha512-LMvReIndW1ckvemElfDgTt282fb2C3C/ZXfsm0pJsTV5ZmtdelCHwzmgSBmY5fDr7D66XDp8EurotSE0K6BTvw==} - engines: {node: '>=18.0'} + '@cspell/url@9.2.1': + resolution: {integrity: sha512-9EHCoGKtisPNsEdBQ28tKxKeBmiVS3D4j+AN8Yjr+Dmtu+YACKGWiMOddNZG2VejQNIdFx7FwzU00BGX68ELhA==} + engines: {node: '>=20'} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-syntax-patches-for-csstree@1.0.14': + resolution: {integrity: sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} + '@deno/shim-deno-test@0.5.0': resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} @@ -4091,14 +4140,14 @@ packages: '@emmetio/stream-reader@2.2.0': resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.5.0': + resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} @@ -4596,8 +4645,8 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -4606,20 +4655,20 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@1.52.3': - resolution: {integrity: sha512-71afQeBz0t5FqxLPfOgfQy2703t4T4tM5ooF/swIfUljCQxrFvIYivzYU67wrwLSnmkSfFJKp99bUCz7L3IP4Q==} + '@eslint-react/ast@1.53.1': + resolution: {integrity: sha512-qvUC99ewtriJp9quVEOvZ6+RHcsMLfVQ0OhZ4/LupZUDhjW7GiX1dxJsFaxHdJ9rLNLhQyLSPmbAToeqUrSruQ==} engines: {node: '>=18.18.0'} - '@eslint-react/core@1.52.3': - resolution: {integrity: sha512-N/fY3q1V0F81OzKGn0ZopmHY+OQHYQiS49MvpSWhNciL+TDxOo4CSt+wayMz5/9G/B/PwGB68eprjow0AaTYzA==} + '@eslint-react/core@1.53.1': + resolution: {integrity: sha512-8prroos5/Uvvh8Tjl1HHCpq4HWD3hV9tYkm7uXgKA6kqj0jHlgRcQzuO6ZPP7feBcK3uOeug7xrq03BuG8QKCA==} engines: {node: '>=18.18.0'} - '@eslint-react/eff@1.52.3': - resolution: {integrity: sha512-CU07yUuHrrBbb8C82via3GrAXkSMbcpxd6f18f/jjEmMAXzKbN2yq1t0GfG7iwIyZexDZ7R3QBa9ksk6iwtDAA==} + '@eslint-react/eff@1.53.1': + resolution: {integrity: sha512-uq20lPRAmsWRjIZm+mAV/2kZsU2nDqn5IJslxGWe3Vfdw23hoyhEw3S1KKlxbftwbTvsZjKvVP0iw3bZo/NUpg==} engines: {node: '>=18.18.0'} - '@eslint-react/eslint-plugin@1.52.3': - resolution: {integrity: sha512-5hR4BF4m6DRXeBKSlJ7kcFolZdXxA6tf1lyq21UbeM8jUmY/qqMBotMTfhjkUdrhqL8/kGk3HCELpntYZ5n69Q==} + '@eslint-react/eslint-plugin@1.53.1': + resolution: {integrity: sha512-JZ2ciXNCC9CtBBAqYtwWH+Jy/7ZzLw+whei8atP4Fxsbh+Scs30MfEwBzuiEbNw6uF9eZFfPidchpr5RaEhqxg==} engines: {node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4628,48 +4677,44 @@ packages: typescript: optional: true - '@eslint-react/kit@1.52.3': - resolution: {integrity: sha512-IOsfaRSih7VdL9ZDjuqc7kjOlHOQOaK6hkSENK64dUcvcl6YwHk8/JXfV/glHTp3JxXrPSazBrnZKNXk0DzjKg==} + '@eslint-react/kit@1.53.1': + resolution: {integrity: sha512-zOi2le9V4rMrJvQV4OeedGvMGvDT46OyFPOwXKs7m0tQu5vXVJ8qwIPaVQT1n/WIuvOg49OfmAVaHpGxK++xLQ==} engines: {node: '>=18.18.0'} - '@eslint-react/shared@1.52.3': - resolution: {integrity: sha512-+0/2SOkNxLKBtYVLx/BCNo5xTn+dxkzP6C63gQ2ehNudMAt3zf2DouD62cHSSbl+eSAgc0zWYg8ssm5ksLN4xw==} + '@eslint-react/shared@1.53.1': + resolution: {integrity: sha512-gomJQmFqQgQVI3Ra4vTMG/s6a4bx3JqeNiTBjxBJt4C9iGaBj458GkP4LJHX7TM6xUzX+fMSKOPX7eV3C/+UCw==} engines: {node: '>=18.18.0'} - '@eslint-react/var@1.52.3': - resolution: {integrity: sha512-i2dfgoH93MHJNXqzS0vYIIpI2e6djIfzdnpMRHUyBYjTHFSPapE7RhcHFrAVPUrd85cUxIPW3pkTKAhkhUhYeA==} + '@eslint-react/var@1.53.1': + resolution: {integrity: sha512-yzwopvPntcHU7mmDvWzRo1fb8QhjD8eDRRohD11rTV1u7nWO4QbJi0pOyugQakvte1/W11Y0Vr8Of0Ojk/A6zg==} engines: {node: '>=18.18.0'} - '@eslint/config-array@0.20.1': - resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.2.3': - resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} + '@eslint/config-helpers@0.3.1': + resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.15.0': - resolution: {integrity: sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==} + '@eslint/core@0.15.2': + resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.29.0': - resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==} + '@eslint/js@9.36.0': + resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.2': - resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} + '@eslint/plugin-kit@0.3.5': + resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@expo/bunyan@4.0.0': @@ -5207,6 +5252,9 @@ packages: resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -5544,6 +5592,9 @@ packages: '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + '@napi-rs/wasm-runtime@1.0.5': + resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} + '@netlify/functions@3.0.4': resolution: {integrity: sha512-Ox8+ABI+nsLK+c4/oC5dpquXuEIjzfTlJrdQKgQijCsDQoje7inXFAtKDLvvaGvuvE+PVpMLwQcIUL6P9Ob1hQ==} engines: {node: '>=18.0.0'} @@ -5717,53 +5768,53 @@ packages: resolution: {integrity: sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==} engines: {node: ^18.17.0 || >=20.5.0} - '@nx/nx-darwin-arm64@21.3.0': - resolution: {integrity: sha512-S+Ewxly1/vKjqAfW0j6shiJVZou9pYkj0m5vFPHjkNDFAc0b0SDwIjP6HS5pzeWVOA/LAL8L/rWsnt6zl7ENtg==} + '@nx/nx-darwin-arm64@21.5.3': + resolution: {integrity: sha512-XKOaBpkBzPd5l9in1ax7KQrAiqm4hi46pzQ/qq4Jo20/RKTpc2ZZSFujjuI8wF75oZ6+iV+cvuxSbwbuX6AxQQ==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@21.3.0': - resolution: {integrity: sha512-GaqHbx4xAw2JFhM21PxFfQuxhveKFVmiMnzMMVXvVh0f8abWOzpldIFXGBK4nTh6A0pNbnBZsw0e4fMGeEhKAQ==} + '@nx/nx-darwin-x64@21.5.3': + resolution: {integrity: sha512-auGY/gvB5B2In25gozlNV6lb4so14OIpIh/dPgXXrHL5YTuky2i6NFiTOq2D1RWtv5kkoK73rQXDbffDXUS6SA==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@21.3.0': - resolution: {integrity: sha512-S3vBZG8OqLogMO4kg4oC3Crcwum/EdkEblCcDr+ehd9ZMo9xpjElw5UmQn9uslcBvQAmyfXHxhfyU98U6fE//Q==} + '@nx/nx-freebsd-x64@21.5.3': + resolution: {integrity: sha512-IsPCC8CpIRd7dzcRQ+j1zAEZObKVkSLQ3GI7rqybEf0/vWZz6T7UbxGHNtFB7AlaecCbHshZ3Mg5mPVXYSR+iA==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@21.3.0': - resolution: {integrity: sha512-qxrcJU8qGV3IBAMmup+SaRU8mhZMnaRCc6R634CbFEOfN8a0I0GtwWdbKzL5o8A/+pBHkaKYaBIu0k33Bc770Q==} + '@nx/nx-linux-arm-gnueabihf@21.5.3': + resolution: {integrity: sha512-IDW5wy2x7KNFK5u8v94KarJ0h4Fk49pVMKcAI6imeQOJnc0lh0TwID4cqVTCg73BLJXbIV3+Ok01jDKrDsTL/w==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@21.3.0': - resolution: {integrity: sha512-XOT4XglrlZzJ2rHkhEAA1A2iKch+WKyu0H77WnbYC7bk0+2V88rTU5A/BIaZ0yrw5UY/QsppFstGq0vohV5XqQ==} + '@nx/nx-linux-arm64-gnu@21.5.3': + resolution: {integrity: sha512-GQF/xjGeqt4tYWf9jT1D0GRPrcAjajTB1QpSavUaiT1jDkByuN11WvuWeTfBdPJpYWFxvH887+r+uMEg8zRE4A==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@21.3.0': - resolution: {integrity: sha512-NJID/IApsncHOstImib3M9juIQpcTXBXbGSEcQk3Sp9bF0u+q+oQ2Ba6aC+7/orYTzsijoCwXmWnit3nSusHiw==} + '@nx/nx-linux-arm64-musl@21.5.3': + resolution: {integrity: sha512-C5j2pzfe0zoAJelHXzPdTGeU19VvvHVaoesiKPeH9EvJwLLb9FoeIn+6//x3jDUNUqIHdn4+63kMA6mdBQSpMQ==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@21.3.0': - resolution: {integrity: sha512-hmAyd3hUlv/pJnJ9y0igQR3A8ga7mZjf62MyI5yuHhQXVXAS4BsEppKUzHRpV4CqM0PFKfCpfjFaf+LoxYklQQ==} + '@nx/nx-linux-x64-gnu@21.5.3': + resolution: {integrity: sha512-HI+tdkvzFcnJQpU9m1FjvlxW7ZsJeF4os8OG4HSLRTQfFT8HCXXzp6b9sojTr+4Nfvp5r3T/J/UJM9tOJXW9Aw==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@21.3.0': - resolution: {integrity: sha512-5D1/+o3AmZo/By/ZzdzYMDbaqWo4pbl7Tap3CnaUW/t4Ncfh4FNxohkNEmK2zGEMRFgUjkYAcuDxUaMx+CTNnw==} + '@nx/nx-linux-x64-musl@21.5.3': + resolution: {integrity: sha512-ntlBqcO9wVajUjYwzBU5ru2iBORttO4nurKvjnpBbyCF1mOjSJ3uFcFMzktbp2cxpRE5JRAadGq9/pZisez1AQ==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@21.3.0': - resolution: {integrity: sha512-AyMhWfM66E1IBNgps4Q1EU78qWLfQ6dvGrSHYT1+c7p2vPxHO1Q/BtoUEea/lbfi7EuH9DPPAKNYO6EKmb4kNQ==} + '@nx/nx-win32-arm64-msvc@21.5.3': + resolution: {integrity: sha512-VgX1VnKDRgWcjIMJ0V3zZ6OPuYkvA7rzgn8wbZWyBh2/1GFFffypJJsGeXRPCZBFHjF3UFYcwjzCMoStZ35b5g==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@21.3.0': - resolution: {integrity: sha512-Ae/7HVL0FXp7j22WHrptGQxZt6lwxc+/jSCku8YKvpQBmm0brszfc0H9JiRaApAjzlTIVIvu9S5VEkUZb/fofw==} + '@nx/nx-win32-x64-msvc@21.5.3': + resolution: {integrity: sha512-bEQxvsglGInSi51HJUJ7X1lqekzn5xAOddY4tpmOzBXVadx4fuMT8X/PLDLorAAShNZ36g/7sYbtWaBuJNz3tQ==} cpu: [x64] os: [win32] @@ -5779,6 +5830,101 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + '@oxc-resolver/binding-android-arm-eabi@11.8.2': + resolution: {integrity: sha512-7hykBf8S24IRbO4ueulT9SfYQjTeSOOimKc/CQrWXIWQy1WTePXSNcPq2RkVHO7DdLM8p8X4DVPYy+850Bo93g==} + cpu: [arm] + os: [android] + + '@oxc-resolver/binding-android-arm64@11.8.2': + resolution: {integrity: sha512-y41bxENMjlFuLSLCPWd4A+1PR7T5rU9+e7+4alje3sHgrpRmS3hIU+b1Cvck4qmcUgd0I98NmYxRM65kXGEObQ==} + cpu: [arm64] + os: [android] + + '@oxc-resolver/binding-darwin-arm64@11.8.2': + resolution: {integrity: sha512-P/Zobk9OwQAblAMeiVyOtuX2LjGN8oq5HonvN3mp9S6Kx1GKxREbf5qW+g24Rvhf5WS7et+EmopUGRHSdAItGQ==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@11.8.2': + resolution: {integrity: sha512-EMAQoO9uTiz2H0z71bVzTL77eoBAlN5+KD7HUc9ayYJ5TprU+Oeaml4y4fmsFyspSPN/vGJzEvOWl5GR0adwtw==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-freebsd-x64@11.8.2': + resolution: {integrity: sha512-Fzeupf4tH9woMm6O/pirEtuzO5docwTrs747Nxqh33OSkz7GbrevyDpx1Q1pc2l3JA2BlDX4zm18tW5ys65bjA==} + cpu: [x64] + os: [freebsd] + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.2': + resolution: {integrity: sha512-r9IiPTwc5STC2JahU/rfkbO2BE14MqAVmFbtF7uW7KFaZX/lUnFltkQ5jpwAgKqcef5aIZTJI95qJ03XZw08Rg==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm-musleabihf@11.8.2': + resolution: {integrity: sha512-Q5D8FbxOyQYcWn5s9yv+DyFvcMSUXE87hmL9WG6ICdNZiMUA8DmIbzK1xEnOtDjorEFU44bwH3I9SnqL1kyOsg==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@11.8.2': + resolution: {integrity: sha512-8g2Y72gavZ8fesZD22cKo0Z8g8epynwShu7M+wpAoOq432IGUyUxPUKB2/nvyogPToaAlb1OsRiX/za8W4h8Aw==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-musl@11.8.2': + resolution: {integrity: sha512-N3BPWnIDRmHn/xPDZGKnzFwWxwH1hvs3aVnw4jvMAYarPNDZfbAY+fjHSIwkypV+ozMoJ5lK5PzRO5BOtEx2oQ==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-ppc64-gnu@11.8.2': + resolution: {integrity: sha512-AXW2AyjENmzNuZD3Z2TO1QWoZzfULWR1otDzw/+MAVMRXBy3W50XxDqNAflRiLB4o0aI0oDTwMfeyuhVv9Ur8Q==} + cpu: [ppc64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-gnu@11.8.2': + resolution: {integrity: sha512-oX+qxJdqOfrJUkGWmcNpu7wiFs6E7KH6hqUORkMAgl4yW+LZxPTz5P4DHvTqTFMywbs9hXVu2KQrdD8ROrdhMQ==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-musl@11.8.2': + resolution: {integrity: sha512-TG7LpxXjqlpD1aWnAXw6vMgY74KNV92exPixzEj4AKm4LdGsfnSWYTTJcTQ7deFMYxvBGrZ+qEy8DjGx+5w9GQ==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-s390x-gnu@11.8.2': + resolution: {integrity: sha512-1PpXMq0KMD3CQPn3v/UqU4NM2JFjry+mLIH1d3iNVL2vlwRt9lxRfpXTiyiFJrtroUIyeKhw0QbHbF2UfnZVKQ==} + cpu: [s390x] + os: [linux] + + '@oxc-resolver/binding-linux-x64-gnu@11.8.2': + resolution: {integrity: sha512-V1iYhEDbjQzj+o7JgTYVllRgNZ56Tjw0rPBWw03KJQ8Nphy00Vf7AySf22vV0K/93V1lPCgOSbI5/iunRnIfAw==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-linux-x64-musl@11.8.2': + resolution: {integrity: sha512-2hYNXEZSUM7qLEk4uuY3GmMqLU+860v+8PzbloVvRRjTWtHsLZyB5w+5p2gel38eaTcSYfZ2zvp3xcSpKDAbaw==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-wasm32-wasi@11.8.2': + resolution: {integrity: sha512-TjFqB+1siSqhd+S64Hf2qbxqWqtFIlld4DDEVotxOjj5//rX/6uwAL1HWnUHSNIni+wpcyQoXPhO3fBgppCvuA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@11.8.2': + resolution: {integrity: sha512-fs0X6RcAC/khWbXIhPaYQjFHkrFVUtC2IOw1QEx2unRoe6M11tlYbY9NHr3VFBC3nwVpodX+b14A7jGMkAQK8A==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-ia32-msvc@11.8.2': + resolution: {integrity: sha512-7oEl1ThswVePprRQFc3tzW9IZgVi5xaus/KP3k56eKi2tYpAM0hBvehD8WBsmpgBEb7pe2pI08h9OZveAddt3Q==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.8.2': + resolution: {integrity: sha512-MngRjE/gpQpg3QcnWRqxX5Nbr/vZJSG7oxhXeHUeOhdFgg+0xCuGpDtwqFmGGVKnd6FQg0gKVo1MqDAERLkEPA==} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -5881,6 +6027,10 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} @@ -6423,8 +6573,11 @@ packages: '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} - '@stylistic/eslint-plugin@4.4.1': - resolution: {integrity: sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + + '@stylistic/eslint-plugin@5.4.0': + resolution: {integrity: sha512-UG8hdElzuBDzIbjG1QDwnYH0MQ73YLXDFHgZzB4Zh/YJfnw8XNsloVtytqzx0I2Qky9THSdpTmi8Vjn/pf/Lew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' @@ -6434,19 +6587,23 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/adapter-auto@6.0.1': - resolution: {integrity: sha512-mcWud3pYGPWM2Pphdj8G9Qiq24nZ8L4LB7coCUckUEy5Y7wOWGJ/enaZ4AtJTcSm5dNK1rIkBRoqt+ae4zlxcQ==} + '@sveltejs/adapter-auto@6.1.0': + resolution: {integrity: sha512-shOuLI5D2s+0zTv2ab5M5PqfknXqWbKi+0UwB9yLTRIdzsK1R93JOO8jNhIYSHdW+IYXIYnLniu+JZqXs7h9Wg==} peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/kit@2.25.1': - resolution: {integrity: sha512-8H+fxDEp7Xq6tLFdrGdS5fLu6ONDQQ9DgyjboXpChubuFdfH9QoFX09ypssBpyNkJNZFt9eW3yLmXIc9CesPCA==} + '@sveltejs/kit@2.42.2': + resolution: {integrity: sha512-FcNICFvlSYjPiAgk8BpqTEnXkaUj6I6wDwpQBxKMpsYhUc2Q5STgsVpXOG5LqwFpUAoLAXQ4wdWul7EcAG67JQ==} engines: {node: '>=18.13'} hasBin: true peerDependencies: + '@opentelemetry/api': ^1.0.0 '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true '@sveltejs/package@2.4.0': resolution: {integrity: sha512-DZzPhkSkxJDBI2o07FbyrI7pxOMXl0j4RR5AB0aH/RVnoBC5lBl4v4FAW5WFrTRu3IC3H9y00MIia4uZ1buX+w==} @@ -6557,24 +6714,24 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 - '@tanstack/config@0.19.0': - resolution: {integrity: sha512-Ir9RF+J6BrNvPBe5t7Mh32Cj1GxCWE8sNrP0ItqhYRud7iwiKN2MNQWlMLDSkiigSh/r831n/Dfwk84qBLqjjw==} + '@tanstack/config@0.20.2': + resolution: {integrity: sha512-CWVv5kK7QdfnrAyvUo31spmqZjn+zpxKRqsyJDhGY7I4QweJeCbRJrlhzH3trv18ZyW3thRvtiHWfX1MdUr2VA==} engines: {node: '>=18'} '@tanstack/directive-functions-plugin@1.114.32': resolution: {integrity: sha512-hm5vOUWURrdibOD4JTcKPmz4U4iDjxZhRNrGVR2JEqYc7nWHb53Fb+2F1jIHyuLuhnuVt9vq5omqcegbd2oPhA==} engines: {node: '>=12'} - '@tanstack/eslint-config@0.2.0': - resolution: {integrity: sha512-KUJUDvYFaqxekc8IwgokZ7+yJUoR7LPFu788VSfCxtsbqP/wZyppuoaToC/74LIFjBKIHJQN+YdvBFedD2fqJg==} + '@tanstack/eslint-config@0.3.2': + resolution: {integrity: sha512-2g+PuGR3GuvvCiR3xZs+IMqAvnYU9bvH+jRml0BFBSxHBj22xFCTNvJWhvgj7uICFF9IchDkFUto91xDPMu5cg==} engines: {node: '>=18'} '@tanstack/match-sorter-utils@8.19.4': resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/publish-config@0.2.0': - resolution: {integrity: sha512-RC0yRBFJvGuR58tKQUIkMXVEiATXgESIc+3/NTqoCC7D2YOF4fZGmHGYIanFEPQH7EGfQ5+Bwi+H6BOtKnymtw==} + '@tanstack/publish-config@0.2.1': + resolution: {integrity: sha512-URVXmXwlZXL75AFyvyOORef1tv2f16dEaFntwLYnBHoKLQMxyWYRzQrnXooxO1xf+GidJuDSZSC6Rc9UX1aK7g==} engines: {node: '>=18'} '@tanstack/react-location@3.7.4': @@ -6592,12 +6749,12 @@ packages: resolution: {integrity: sha512-l4RonnJM8gOLeyzThSEd/ZTDhrMGQGm9ZdXtmoLPF17L6Z6neJkNmfYSvVXPPUpL9aQOVncAR0OWDgZgsxIjFw==} engines: {node: '>=12'} - '@tanstack/typedoc-config@0.2.0': - resolution: {integrity: sha512-1ak0ZirlLRxd3dNNOFnMoYORBeC83nK4C+OiXpE0dxsO8ZVrBqCtNCKr8SG+W9zICXcWGiFu9qYLsgNKTayOqw==} + '@tanstack/typedoc-config@0.2.1': + resolution: {integrity: sha512-3miLBNiyWX54bQKBNnh7Fj6otWX8ZDiU6/ffOsNnikwBdKjFkA7ddrBtC5/JQkLCE6CBIqcJvtNIwI+DZu4y1Q==} engines: {node: '>=18'} - '@tanstack/vite-config@0.2.0': - resolution: {integrity: sha512-WpL1C9iR5/U7g3GpvHIssN5QvKnDnWhW05BQhaD6bAqoPCkQyBepxUF8ZRO4IGZRGVAZeMVqTbUA05BAQH/88g==} + '@tanstack/vite-config@0.2.1': + resolution: {integrity: sha512-werDRwJSqzY28fbOBQ+wP7pQ6jl6Y+EJ8mA/dABOJEq2iBbGLXAzGPywRji7x4zULhjBDS3chQrR3nE7NVcoDw==} engines: {node: '>=18'} '@testing-library/angular@18.0.0': @@ -6613,8 +6770,8 @@ packages: resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} - '@testing-library/jest-dom@6.6.3': - resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} + '@testing-library/jest-dom@6.8.0': + resolution: {integrity: sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} '@testing-library/react-render-stream@2.0.0': @@ -6676,6 +6833,9 @@ packages: resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -6700,6 +6860,9 @@ packages: '@types/braces@3.0.4': resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} @@ -6709,6 +6872,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -6828,217 +6994,166 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.34.1': - resolution: {integrity: sha512-STXcN6ebF6li4PxwNeFnqF8/2BNDvBupf2OPx2yWNzr6mKNGF7q49VM00Pz5FaomJyqvbXpY6PhO+T9w139YEQ==} + '@typescript-eslint/eslint-plugin@8.44.0': + resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.34.1 + '@typescript-eslint/parser': ^8.44.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.34.1': - resolution: {integrity: sha512-4O3idHxhyzjClSMJ0a29AcoK0+YwnEqzI6oz3vlRf3xw0zbzt15MzXwItOlnr5nIth6zlY2RENLsOPvhyrKAQA==} + '@typescript-eslint/parser@8.44.0': + resolution: {integrity: sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.37.0': - resolution: {integrity: sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==} + '@typescript-eslint/project-service@8.44.0': + resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.34.1': - resolution: {integrity: sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/project-service@8.37.0': - resolution: {integrity: sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/rule-tester@8.37.0': - resolution: {integrity: sha512-jOdNuyQO6XROMk9yRB6uqA6R/kqwQXM77zgfC4tfDNaPnen5pvqEj5vuouFXoiJs77ZQsGsebJhcPMJeDFuWCw==} + '@typescript-eslint/rule-tester@8.44.0': + resolution: {integrity: sha512-yjE4dUeT8iqd5W3Ip8RerkTGWGIo1aiaf/McBD8RjEYWA9P/kZOUeHzpsk6HtTxHCPauBcuj78xX1N8J5qNRaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/scope-manager@8.34.1': - resolution: {integrity: sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/scope-manager@8.37.0': - resolution: {integrity: sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==} + '@typescript-eslint/scope-manager@8.44.0': + resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.34.1': - resolution: {integrity: sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==} + '@typescript-eslint/tsconfig-utils@8.44.0': + resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.37.0': - resolution: {integrity: sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/type-utils@8.34.1': - resolution: {integrity: sha512-Tv7tCCr6e5m8hP4+xFugcrwTOucB8lshffJ6zf1mF1TbU67R+ntCc6DzLNKM+s/uzDyv8gLq7tufaAhIBYeV8g==} + '@typescript-eslint/type-utils@8.44.0': + resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.37.0': - resolution: {integrity: sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/types@8.34.1': - resolution: {integrity: sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==} + '@typescript-eslint/types@8.44.0': + resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.37.0': - resolution: {integrity: sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.34.1': - resolution: {integrity: sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==} + '@typescript-eslint/typescript-estree@8.44.0': + resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.37.0': - resolution: {integrity: sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.34.1': - resolution: {integrity: sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==} + '@typescript-eslint/utils@8.44.0': + resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.37.0': - resolution: {integrity: sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/visitor-keys@8.34.1': - resolution: {integrity: sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.37.0': - resolution: {integrity: sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==} + '@typescript-eslint/visitor-keys@8.44.0': + resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@unrs/resolver-binding-android-arm-eabi@1.9.1': - resolution: {integrity: sha512-dd7yIp1hfJFX9ZlVLQRrh/Re9WMUHHmF9hrKD1yIvxcyNr2BhQ3xc1upAVhy8NijadnCswAxWQu8MkkSMC1qXQ==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.9.1': - resolution: {integrity: sha512-EzUPcMFtDVlo5yrbzMqUsGq3HnLXw+3ZOhSd7CUaDmbTtnrzM+RO2ntw2dm2wjbbc5djWj3yX0wzbbg8pLhx8g==} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.9.1': - resolution: {integrity: sha512-nB+dna3q4kOleKFcSZJ/wDXIsAd1kpMO9XrVAt8tG3RDWJ6vi+Ic6bpz4cmg5tWNeCfHEY4KuqJCB+pKejPEmQ==} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.9.1': - resolution: {integrity: sha512-aKWHCrOGaCGwZcekf3TnczQoBxk5w//W3RZ4EQyhux6rKDwBPgDU9Y2yGigCV1Z+8DWqZgVGQi+hdpnlSy3a1w==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.9.1': - resolution: {integrity: sha512-4dIEMXrXt0UqDVgrsUd1I+NoIzVQWXy/CNhgpfS75rOOMK/4Abn0Mx2M2gWH4Mk9+ds/ASAiCmqoUFynmMY5hA==} + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': - resolution: {integrity: sha512-vtvS13IXPs1eE8DuS/soiosqMBeyh50YLRZ+p7EaIKAPPeevRnA9G/wu/KbVt01ZD5qiGjxS+CGIdVC7I6gTOw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': - resolution: {integrity: sha512-BfdnN6aZ7NcX8djW8SR6GOJc+K+sFhWRF4vJueVE0vbUu5N1bLnBpxJg1TGlhSyo+ImC4SR0jcNiKN0jdoxt+A==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': - resolution: {integrity: sha512-Jhge7lFtH0QqfRz2PyJjJXWENqywPteITd+nOS0L6AhbZli+UmEyGBd2Sstt1c+l9C+j/YvKTl9wJo9PPmsFNg==} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.9.1': - resolution: {integrity: sha512-ofdK/ow+ZSbSU0pRoB7uBaiRHeaAOYQFU5Spp87LdcPL/P1RhbCTMSIYVb61XWzsVEmYKjHFtoIE0wxP6AFvrA==} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': - resolution: {integrity: sha512-eC8SXVn8de67HacqU7PoGdHA+9tGbqfEdD05AEFRAB81ejeQtNi5Fx7lPcxpLH79DW0BnMAHau3hi4RVkHfSCw==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': - resolution: {integrity: sha512-fIkwvAAQ41kfoGWfzeJ33iLGShl0JEDZHrMnwTHMErUcPkaaZRJYjQjsFhMl315NEQ4mmTlC+2nfK/J2IszDOw==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': - resolution: {integrity: sha512-RAAszxImSOFLk44aLwnSqpcOdce8sBcxASledSzuFAd8Q5ZhhVck472SisspnzHdc7THCvGXiUeZ2hOC7NUoBQ==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': - resolution: {integrity: sha512-QoP9vkY+THuQdZi05bA6s6XwFd6HIz3qlx82v9bTOgxeqin/3C12Ye7f7EOD00RQ36OtOPWnhEMMm84sv7d1XQ==} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.9.1': - resolution: {integrity: sha512-/p77cGN/h9zbsfCseAP5gY7tK+7+DdM8fkPfr9d1ye1fsF6bmtGbtZN6e/8j4jCZ9NEIBBkT0GhdgixSelTK9g==} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.9.1': - resolution: {integrity: sha512-wInTqT3Bu9u50mDStEig1v8uxEL2Ht+K8pir/YhyyrM5ordJtxoqzsL1vR/CQzOJuDunUTrDkMM0apjW/d7/PA==} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.9.1': - resolution: {integrity: sha512-eNwqO5kUa+1k7yFIircwwiniKWA0UFHo2Cfm8LYgkh9km7uMad+0x7X7oXbQonJXlqfitBTSjhA0un+DsHIrhw==} + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': - resolution: {integrity: sha512-Eaz1xMUnoa2mFqh20mPqSdbYl6crnk8HnIXDu6nsla9zpgZJZO8w3c1gvNN/4Eb0RXRq3K9OG6mu8vw14gIqiA==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': - resolution: {integrity: sha512-H/+d+5BGlnEQif0gnwWmYbYv7HJj563PUKJfn8PlmzF8UmF+8KxdvXdwCsoOqh4HHnENnoLrav9NYBrv76x1wQ==} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.9.1': - resolution: {integrity: sha512-rS86wI4R6cknYM3is3grCb/laE8XBEbpWAMSIPjYfmYp75KL5dT87jXF2orDa4tQYg5aajP5G8Fgh34dRyR+Rw==} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} cpu: [x64] os: [win32] @@ -7121,10 +7236,10 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 - '@vitest/coverage-istanbul@3.1.3': - resolution: {integrity: sha512-S6zpofFh7ykVM01KpCbsdPRKBG4SCP/ErvrakFBJEUhiN/nRgsuCsi68VSe8rWstz6V1cJ/Sa/PDttr6FRZuNg==} + '@vitest/coverage-istanbul@3.2.4': + resolution: {integrity: sha512-IDlpuFJiWU9rhcKLkpzj8mFu/lpe64gVgnV15ZOrYx1iFzxxrxCzbExiUEKtwwXRvEiEMUS6iZeYgnMxgbqbxQ==} peerDependencies: - vitest: 3.1.3 + vitest: 3.2.4 '@vitest/eslint-plugin@1.1.36': resolution: {integrity: sha512-IjBV/fcL9NJRxGw221ieaDsqKqj8qUo7rvSupDxMjTXyhsCusHC6M+jFUNqBp4PCkYFcf5bjrKxeZoCEWoPxig==} @@ -7139,34 +7254,34 @@ packages: vitest: optional: true - '@vitest/expect@3.1.3': - resolution: {integrity: sha512-7FTQQuuLKmN1Ig/h+h/GO+44Q1IlglPlR2es4ab7Yvfx+Uk5xsv+Ykk+MEt/M2Yn/xGmzaLKxGw2lgy2bwuYqg==} + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/mocker@3.1.3': - resolution: {integrity: sha512-PJbLjonJK82uCWHjzgBJZuR7zmAOrSvKk1QBxrennDIgtH4uK0TB1PvYmc0XBCigxxtiAVPfWtAdy4lpz8SQGQ==} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@3.1.3': - resolution: {integrity: sha512-i6FDiBeJUGLDKADw2Gb01UtUNb12yyXAqC/mmRWuYl+m/U9GS7s8us5ONmGkGpUUo7/iAYzI2ePVfOZTYvUifA==} + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/runner@3.1.3': - resolution: {integrity: sha512-Tae+ogtlNfFei5DggOsSUvkIaSuVywujMj6HzR97AHK6XK8i3BuVyIifWAm/sE3a15lF5RH9yQIrbXYuo0IFyA==} + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/snapshot@3.1.3': - resolution: {integrity: sha512-XVa5OPNTYUsyqG9skuUkFzAeFnEzDp8hQu7kZ0N25B1+6KjGm4hWLtURyBbsIAOekfWQ7Wuz/N/XXzgYO3deWQ==} + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - '@vitest/spy@3.1.3': - resolution: {integrity: sha512-x6w+ctOEmEXdWaa6TO4ilb7l9DxPR5bwEb6hILKuxfU1NqWT2mpJD9NJN7t3OTfxmVlOMrvtoFJGdgyzZ605lQ==} + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/utils@3.1.3': - resolution: {integrity: sha512-2Ltrpht4OmHO9+c/nmHtF09HWiyWdworqnHIwjfvDyWjuwKbdkcS9AnhsDn+8E2RM4x++foD1/tNuLPVvWG1Rg==} + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} '@volar/kit@2.4.12': resolution: {integrity: sha512-f9JE8oy9C2rBcCWxUYKUF23hOXz4mwgVXFjk7nHhxzplaoVjEOsKpBm8NI2nBH7Cwu8DRxDwBsbIxMl/8wlLxw==} @@ -7916,6 +8031,9 @@ packages: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} + bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} @@ -8157,10 +8275,6 @@ packages: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -8609,34 +8723,34 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - cspell-config-lib@8.17.1: - resolution: {integrity: sha512-x1S7QWprgUcwuwiJB1Ng0ZTBC4G50qP9qQyg/aroMkcdMsHfk26E8jUGRPNt4ftHFzS4YMhwtXuJQ9IgRUuNPA==} - engines: {node: '>=18'} + cspell-config-lib@9.2.1: + resolution: {integrity: sha512-qqhaWW+0Ilc7493lXAlXjziCyeEmQbmPMc1XSJw2EWZmzb+hDvLdFGHoX18QU67yzBtu5hgQsJDEDZKvVDTsRA==} + engines: {node: '>=20'} - cspell-dictionary@8.17.1: - resolution: {integrity: sha512-zSl9l3wii+x16yc2NVZl/+CMLeLBAiuEd5YoFkOYPcbTJnfPwdjMNcj71u7wBvNJ+qwbF+kGbutEt15yHW3NBw==} - engines: {node: '>=18'} + cspell-dictionary@9.2.1: + resolution: {integrity: sha512-0hQVFySPsoJ0fONmDPwCWGSG6SGj4ERolWdx4t42fzg5zMs+VYGXpQW4BJneQ5Tfxy98Wx8kPhmh/9E8uYzLTw==} + engines: {node: '>=20'} - cspell-glob@8.17.1: - resolution: {integrity: sha512-cUwM5auSt0RvLX7UkP2GEArJRWc85l51B1voArl+3ZIKeMZwcJpJgN3qvImtF8yRTZwYeYCs1sgsihb179q+mg==} - engines: {node: '>=18'} + cspell-glob@9.2.1: + resolution: {integrity: sha512-CrT/6ld3rXhB36yWFjrx1SrMQzwDrGOLr+wYEnrWI719/LTYWWCiMFW7H+qhsJDTsR+ku8+OAmfRNBDXvh9mnQ==} + engines: {node: '>=20'} - cspell-grammar@8.17.1: - resolution: {integrity: sha512-H5tLcBuW7aUj9L0rR+FSbnWPEsWb8lWppHVidtqw9Ll1CUHWOZC9HTB2RdrhJZrsz/8DJbM2yNbok0Xt0VAfdw==} - engines: {node: '>=18'} + cspell-grammar@9.2.1: + resolution: {integrity: sha512-10RGFG7ZTQPdwyW2vJyfmC1t8813y8QYRlVZ8jRHWzer9NV8QWrGnL83F+gTPXiKR/lqiW8WHmFlXR4/YMV+JQ==} + engines: {node: '>=20'} hasBin: true - cspell-io@8.17.1: - resolution: {integrity: sha512-liIOsblt7oVItifzRAbuxiYrwlgw1VOqKppMxVKtYoAn2VUuuEpjCj6jLWpoTqSszR/38o7ChsHY1LHakhJZmw==} - engines: {node: '>=18'} + cspell-io@9.2.1: + resolution: {integrity: sha512-v9uWXtRzB+RF/Mzg5qMzpb8/yt+1bwtTt2rZftkLDLrx5ybVvy6rhRQK05gFWHmWVtWEe0P/pIxaG2Vz92C8Ag==} + engines: {node: '>=20'} - cspell-lib@8.17.1: - resolution: {integrity: sha512-66n83Q7bK5tnvkDH7869/pBY/65AKmZVfCOAlsbhJn3YMDbNHFCHR0d1oNMlqG+n65Aco89VGwYfXxImZY+/mA==} - engines: {node: '>=18'} + cspell-lib@9.2.1: + resolution: {integrity: sha512-KeB6NHcO0g1knWa7sIuDippC3gian0rC48cvO0B0B0QwhOxNxWVp8cSmkycXjk4ijBZNa++IwFjeK/iEqMdahQ==} + engines: {node: '>=20'} - cspell-trie-lib@8.17.1: - resolution: {integrity: sha512-13WNa5s75VwOjlGzWprmfNbBFIfXyA7tYYrbV+LugKkznyNZJeJPojHouEudcLq3SYb2Q6tJ7qyWcuT5bR9qPA==} - engines: {node: '>=18'} + cspell-trie-lib@9.2.1: + resolution: {integrity: sha512-qOtbL+/tUzGFHH0Uq2wi7sdB9iTy66QNx85P7DKeRdX9ZH53uQd7qC4nEk+/JPclx1EgXX26svxr0jTGISJhLw==} + engines: {node: '>=20'} css-in-js-utils@3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} @@ -8647,6 +8761,10 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-vendor@2.0.8: resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} @@ -8666,6 +8784,10 @@ packages: resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} engines: {node: '>=18'} + cssstyle@5.3.1: + resolution: {integrity: sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==} + engines: {node: '>=20'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -8676,6 +8798,10 @@ packages: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} + data-urls@6.0.0: + resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==} + engines: {node: '>=20'} + data-view-buffer@1.0.1: resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} engines: {node: '>= 0.4'} @@ -8742,8 +8868,8 @@ packages: supports-color: optional: true - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -8862,8 +8988,8 @@ packages: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} - devalue@5.1.1: - resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + devalue@5.3.2: + resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -8968,9 +9094,6 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - easy-table@1.2.0: - resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -9170,8 +9293,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-import-context@0.1.8: - resolution: {integrity: sha512-bq+F7nyc65sKpZGT09dY0S0QrOnQtuDVIfyTGQ8uuvtMIF7oHp6CEP3mouN0rrnYF3Jqo6Ke0BfU/5wASZue1w==} + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} peerDependencies: unrs-resolver: ^1.0.0 @@ -9188,8 +9311,8 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@4.15.2: - resolution: {integrity: sha512-J5gx7sN6DTm0LRT//eP3rVVQ2Yi4hrX0B+DbWxa5er8PZ6JjLo9GUBwogIFvEDdwJaSqZplpQT+haK/cXhb7VQ==} + eslint-plugin-import-x@4.16.1: + resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/utils': ^8.0.0 @@ -9207,14 +9330,14 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-n@17.20.0: - resolution: {integrity: sha512-IRSoatgB/NQJZG5EeTbv/iAx1byOGdbbyhQrNvWdCfTnmPxUT0ao9/eGOeG7ljD8wJBsxwE8f6tES5Db0FRKEw==} + eslint-plugin-n@17.23.1: + resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-react-debug@1.52.3: - resolution: {integrity: sha512-mbyk+K0/NqydAHpTGj/6w8Py8unOpUCqhg42NnxQtFCL9G7pTEiEk2eDjnQAi4Up00THP4nYvjfnuiTf1ZKaIw==} + eslint-plugin-react-debug@1.53.1: + resolution: {integrity: sha512-WNOiQ6jhodJE88VjBU/IVDM+2Zr9gKHlBFDUSA3fQ0dMB5RiBVj5wMtxbxRuipK/GqNJbteqHcZoYEod7nfddg==} engines: {node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9223,8 +9346,8 @@ packages: typescript: optional: true - eslint-plugin-react-dom@1.52.3: - resolution: {integrity: sha512-HUMzOYrgRdT6di+OMMJWBCbIB9yY3YUkLvDhExsfap0HX3X1EpZutEWdQg4CMthF2rslYMMF2cnN5pOVrQ5Rkw==} + eslint-plugin-react-dom@1.53.1: + resolution: {integrity: sha512-UYrWJ2cS4HpJ1A5XBuf1HfMpPoLdfGil+27g/ldXfGemb4IXqlxHt4ANLyC8l2CWcE3SXGJW7mTslL34MG0qTQ==} engines: {node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9233,8 +9356,8 @@ packages: typescript: optional: true - eslint-plugin-react-hooks-extra@1.52.3: - resolution: {integrity: sha512-1UXAhkgbFsMlY+eEII6rLSksRIvnlnNEZxRqUTixNf4e05u5+48RUqqZr7rRdkfVhr+1DPO1sIx8wQGAiN7IoQ==} + eslint-plugin-react-hooks-extra@1.53.1: + resolution: {integrity: sha512-fshTnMWNn9NjFLIuy7HzkRgGK29vKv4ZBO9UMr+kltVAfKLMeXXP6021qVKk66i/XhQjbktiS+vQsu1Rd3ZKvg==} engines: {node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9243,14 +9366,15 @@ packages: typescript: optional: true - eslint-plugin-react-hooks@6.0.0-rc.1: - resolution: {integrity: sha512-7C4c7bdtd/B7Q+HruZxYhGjwZVvJawvQpilEYlRG1Jncuk1ZNqrFy9bO8SJNieyj3iDh8WPQA7BzzPO7sNAyEA==} + eslint-plugin-react-hooks@6.0.0: + resolution: {integrity: sha512-NyC3yIC9fazLitYiN8eHykV5wLp/SMuUZMh+sdPSHIeN4ReXIc7if40jtGjDplAgVL/4OkN1d9gneWe9lFZgag==} engines: {node: '>=18'} + deprecated: This stable release was published by accident, please use 6.0.0-rc.1 instead. peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-naming-convention@1.52.3: - resolution: {integrity: sha512-sfemWPC9VX5T7TVJk6OKQkTux8pnyVIwBOZbDntWnfCqV6B74MIvY2nGr9TEn8DFVWbMoTxVQY0MGlREcrbZsA==} + eslint-plugin-react-naming-convention@1.53.1: + resolution: {integrity: sha512-rvZ/B/CSVF8d34HQ4qIt90LRuxotVx+KUf3i1OMXAyhsagEFMRe4gAlPJiRufZ+h9lnuu279bEdd+NINsXOteA==} engines: {node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9259,8 +9383,8 @@ packages: typescript: optional: true - eslint-plugin-react-web-api@1.52.3: - resolution: {integrity: sha512-Hd05kVsGmSHBZpQsQDueobfLHDywXP6Ne+dPf24Ev3mMKi5XMkLZ/sD+JmJKyNYvkWMwB1Wn4gl1aIz7HneKeQ==} + eslint-plugin-react-web-api@1.53.1: + resolution: {integrity: sha512-INVZ3Cbl9/b+sizyb43ChzEPXXYuDsBGU9BIg7OVTNPyDPloCXdI+dQFAcSlDocZhPrLxhPV3eT6+gXbygzYXg==} engines: {node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9269,8 +9393,8 @@ packages: typescript: optional: true - eslint-plugin-react-x@1.52.3: - resolution: {integrity: sha512-Sds4CXHtdgaCdzoypcY3DSshS0JtK2Eh+QbpUAPUqs0UWQ3qtQKxY0nntTSYeF+GXDfOdAYDkl/8+VFpHQwIKg==} + eslint-plugin-react-x@1.53.1: + resolution: {integrity: sha512-MwMNnVwiPem0U6SlejDF/ddA4h/lmP6imL1RDZ2m3pUBrcdcOwOx0gyiRVTA3ENnhRlWfHljHf5y7m8qDSxMEg==} engines: {node: '>=18.18.0'} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -9322,8 +9446,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.29.0: - resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==} + eslint@9.36.0: + resolution: {integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -9514,8 +9638,8 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-equals@5.0.1: - resolution: {integrity: sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==} + fast-equals@5.2.2: + resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} engines: {node: '>=6.0.0'} fast-fifo@1.3.2: @@ -9556,8 +9680,12 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} - fdir@6.4.4: - resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -9695,6 +9823,11 @@ packages: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} + hasBin: true + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -9886,8 +10019,8 @@ packages: resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} engines: {node: '>=18'} - globals@16.2.0: - resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} globalthis@1.0.4: @@ -10233,8 +10366,8 @@ packages: resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} engines: {node: '>=4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} import-lazy@4.0.0: @@ -10246,8 +10379,8 @@ packages: engines: {node: '>=8'} hasBin: true - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -10697,8 +10830,8 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true jju@1.4.0: @@ -10766,6 +10899,15 @@ packages: canvas: optional: true + jsdom@27.0.0: + resolution: {integrity: sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==} + engines: {node: '>=20'} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -10819,8 +10961,8 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} @@ -10881,8 +11023,8 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - knip@5.50.2: - resolution: {integrity: sha512-TGpfeeSMlaRd5wUkcb4HsVGSiQrE289LZF9qtW2TLHkAZbB2rM53wVQbXSf1KjOvJfBSZYSyYQ6q79lufrwsPw==} + knip@5.63.1: + resolution: {integrity: sha512-wSznedUAzcU4o9e0O2WPqDnP7Jttu8cesq/R23eregRY8QYQ9NLJ3aGt9fadJfRzPBoU4tRyutwVQu6chhGDlA==} engines: {node: '>=18.18.0'} hasBin: true peerDependencies: @@ -11173,8 +11315,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -11182,6 +11324,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.1: + resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -11321,6 +11467,9 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -11731,8 +11880,8 @@ packages: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} - napi-postinstall@0.2.4: - resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + napi-postinstall@0.3.3: + resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true @@ -11986,8 +12135,8 @@ packages: nwsapi@2.2.13: resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} - nx@21.3.0: - resolution: {integrity: sha512-dMmnxVb3KJNHr+rs+G/EbduPgguJ7fmDwByKNS9/X4F42jzQ2IUgQpcH5auzaafm5V4M28l7jcFLzD/AP+IwtA==} + nx@21.5.3: + resolution: {integrity: sha512-+XwzK3OWZw/7zLdhNHBms9VdAA8F6w6QsX8qFQ3+3CnbqEy0IDmVxTXb8c711LDMbEtNn94EiWvSV6C00FKw9Q==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -12153,6 +12302,9 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + oxc-resolver@11.8.2: + resolution: {integrity: sha512-SM31gnF1l4T8YA7dkAcBhA+jc336bc8scy0Tetz6ndzGmV6c0R99SRnx6In0V5ffwvn1Isjo9I9EGSLF4xi3TA==} + p-event@5.0.1: resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -12209,8 +12361,8 @@ packages: resolution: {integrity: sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==} engines: {node: '>=16'} - p-map@7.0.2: - resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} + p-map@7.0.3: + resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} engines: {node: '>=18'} p-queue@6.6.2: @@ -12240,8 +12392,8 @@ packages: package-json-from-dist@1.0.0: resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - package-manager-detector@1.1.0: - resolution: {integrity: sha512-Y8f9qUlBzW8qauJjd/eu6jlpJZsuPJm2ZAV0cDVd420o4EdpH5RPdoCv+60/TdJflGatr4sDfpAL6ArWZbM5tA==} + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} pacote@21.0.0: resolution: {integrity: sha512-lcqexq73AMv6QNLo7SOpz0JJoaGdS3rBFgF122NZVl1bApo2mfu+XzUBU/X/XsiJu+iUmKpekRayqQYAs+PhkA==} @@ -12284,10 +12436,6 @@ packages: parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - parse-ms@4.0.0: - resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} - engines: {node: '>=18'} - parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} @@ -12308,8 +12456,8 @@ packages: parse5-sax-parser@7.0.0: resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==} - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} @@ -12418,6 +12566,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pidtree@0.5.0: resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==} engines: {node: '>=0.10'} @@ -12631,10 +12783,6 @@ packages: resolution: {integrity: sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - pretty-ms@9.1.0: - resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} - engines: {node: '>=18'} - prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -12701,8 +12849,8 @@ packages: public-encrypt@4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} - publint@0.3.12: - resolution: {integrity: sha512-1w3MMtL9iotBjm1mmXtG3Nk06wnq9UhGNRpQ2j6n1Zq7YAD6gnxMMZMIxlRPAydVjVbjSm+n0lhwqsD1m4LD5w==} + publint@0.3.13: + resolution: {integrity: sha512-NC+lph09+BRO9LJgKlIy3WQXyu6/6WDQ0dCA60KALUwdKVf3PfGuC6fY8I+oKB/5kEPh50aOSUz+6yWy1n4EfA==} engines: {node: '>=18'} hasBin: true @@ -13256,6 +13404,9 @@ packages: rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -13561,8 +13712,8 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - smol-toml@1.3.1: - resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} + smol-toml@1.4.2: + resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} engines: {node: '>= 18'} snapdragon-node@2.1.1: @@ -13651,6 +13802,7 @@ packages: source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -13702,8 +13854,8 @@ packages: ssri@6.0.2: resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} - stable-hash-x@0.1.1: - resolution: {integrity: sha512-l0x1D6vhnsNUGPFVDx45eif0y6eedVC8nm5uACTrVFJFtl2mLRW17aWtVyxFCpn5t94VUPkjU8vSLwIuwwqtJQ==} + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} engines: {node: '>=12.0.0'} stack-utils@2.0.6: @@ -13855,8 +14007,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-json-comments@5.0.1: - resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} + strip-json-comments@5.0.2: + resolution: {integrity: sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g==} engines: {node: '>=14.16'} strip-literal@3.0.0: @@ -13946,8 +14098,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@4.3.0: - resolution: {integrity: sha512-Iz8dFXzBNAM7XlEIsUjUGQhbEE+Pvv9odb9+0+ITTgFWZBGeJRRYqHUUglwe2EkLD5LIsQaAc4IUJyvtKuOO5w==} + svelte-check@4.3.1: + resolution: {integrity: sha512-lkh8gff5gpHLjxIV+IaApMxQhTGnir2pNUAqcNgeKkvK5bT/30Ey/nzBxNLDlkztCH4dP7PixkMt9SWEKFPBWg==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: @@ -13969,13 +14121,17 @@ packages: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.36.8: - resolution: {integrity: sha512-8JbZWQu96hMjH/oYQPxXW6taeC6Awl6muGHeZzJTxQx7NGRQ/J9wN1hkzRKLOlSDlbS2igiFg7p5xyTp5uXG3A==} + svelte@5.39.3: + resolution: {integrity: sha512-7Jwus6iXviGZAvhqbeYu3NNHA6LGyQ8EbmjdAhJUDade5rrW6g9VnBbRhUuYX4pMZLHozijsFolt88zvKPfsbQ==} engines: {node: '>=18'} symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.9.2: resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -14120,29 +14276,36 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} tldts-core@6.1.64: resolution: {integrity: sha512-uqnl8vGV16KsyflHOzqrYjjArjfXaU6rMPXYy2/ZWoRKCkXtghgB4VwTDXUG+t0OTGeSewNAG31/x1gCTfLt+Q==} + tldts-core@7.0.15: + resolution: {integrity: sha512-YBkp2VfS9VTRMPNL2PA6PMESmxV1JEVoAr5iBlZnB5JG3KUrWzNCB3yNNkRa2FZkqClaBgfNYCp8PgpYmpjkZw==} + tldts@6.1.64: resolution: {integrity: sha512-ph4AE5BXWIOsSy9stpoeo7bYe/Cy7VfpciIH4RhVZUPItCJmhqWCN0EVzxd8BOHiyNb42vuJc6NWTjJkg91Tuw==} hasBin: true + tldts@7.0.15: + resolution: {integrity: sha512-heYRCiGLhtI+U/D0V8YM3QRwPfsLJiP+HX+YwiHZTnWzjIKC+ZCxQRYlzvOoTEc6KIP62B1VeAN63diGCng2hg==} + hasBin: true + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -14189,6 +14352,10 @@ packages: resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} engines: {node: '>=16'} + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + engines: {node: '>=16'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -14199,6 +14366,10 @@ packages: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} + tr46@6.0.0: + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} + engines: {node: '>=20'} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -14240,8 +14411,8 @@ packages: '@swc/wasm': optional: true - ts-pattern@5.7.1: - resolution: {integrity: sha512-EGs8PguQqAAUIcQfK4E9xdXxB6s2GK4sJfT/vcc9V1ELIvC4LH/zXu2t/5fajtv6oiRCxdv7BgtVK3vWgROxag==} + ts-pattern@5.8.0: + resolution: {integrity: sha512-kIjN2qmWiHnhgr5DAkAafF9fwb0T5OhMVSWrm8XEdTFnX6+wfXwYOFjeF86UZ54vduqiR7BfqScFmXSzSaH8oA==} tsconfck@3.1.5: resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} @@ -14379,12 +14550,12 @@ packages: typescript-auto-import-cache@0.3.3: resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@8.34.1: - resolution: {integrity: sha512-XjS+b6Vg9oT1BaIUfkW3M3LvqZE++rbzAMEHuccCfO/YkP43ha6w3jTEMilQxMF92nVOYCcdjv1ZUhAa1D/0ow==} + typescript-eslint@8.44.0: + resolution: {integrity: sha512-ib7mCkYuIzYonCq9XWF5XNw+fkj2zg629PSa9KNIQ47RXFF763S5BIX4wqz1+FLPogTZoiw8KmCiRPRa8bL3qw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} @@ -14596,8 +14767,8 @@ packages: resolution: {integrity: sha512-Qp+iiD+qCRnUek+nDoYvtWX7tfnYyXsrOnJ452FRTgOyKmTM7TUJ3l+PLPJOOWPTUyKISKp4isC5JJPSXUjGgw==} engines: {node: '>=18.12.0'} - unrs-resolver@1.9.1: - resolution: {integrity: sha512-4AZVxP05JGN6DwqIkSP4VKLOcwQa5l37SWHF/ahcuqBMbfxbpN1L1QKafEhWCziHhzKex9H/AR09H0OuVyU+9g==} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} unset-value@1.0.0: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} @@ -14783,8 +14954,8 @@ packages: resolution: {integrity: sha512-4sL2SMrRzdzClapP44oXdGjCE1oq7/DagsbjY5A09EibmoIO4LP8ScRVdh03lfXxKRk7nCWK7n7dqKvm+fp/9w==} hasBin: true - vite-node@3.1.3: - resolution: {integrity: sha512-uHV4plJ2IxCl4u1up1FQRrqclylKAogbtBfOTwcuJ28xFi+89PZ57BRh+naIRvH70HPwxy5QHYzg1OrEaC7AbA==} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -14901,6 +15072,46 @@ packages: yaml: optional: true + vite@6.3.6: + resolution: {integrity: sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@1.0.6: resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} peerDependencies: @@ -14909,16 +15120,16 @@ packages: vite: optional: true - vitest@3.1.3: - resolution: {integrity: sha512-188iM4hAHQ0km23TN/adso1q5hhwKqUpv+Sd6p5sOuh6FhQnRNW3IsiIpvxqahtBabsJ2SLZgmGSpcYK4wQYJw==} + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.3 - '@vitest/ui': 3.1.3 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -15049,8 +15260,8 @@ packages: vscode-uri@2.1.2: resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} vue-demi@0.14.10: resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} @@ -15063,8 +15274,8 @@ packages: '@vue/composition-api': optional: true - vue-eslint-parser@10.1.3: - resolution: {integrity: sha512-dbCBnd2e02dYWsXoqX5yKUZlOt+ExIpq7hmHKPb5ZqKcjf++Eo0hMseFTZMLKThrUk61m+Uv6A2YSBve6ZvuDQ==} + vue-eslint-parser@10.2.0: + resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -15101,6 +15312,10 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -15144,6 +15359,10 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + webidl-conversions@8.0.0: + resolution: {integrity: sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==} + engines: {node: '>=20'} + webpack-cli@4.10.0: resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} engines: {node: '>=10.13.0'} @@ -15237,6 +15456,10 @@ packages: resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} engines: {node: '>=18'} + whatwg-url@15.1.0: + resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} + engines: {node: '>=20'} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -15352,8 +15575,8 @@ packages: utf-8-validate: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -15435,8 +15658,8 @@ packages: resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} engines: {node: '>= 14'} - yaml@2.8.0: - resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} engines: {node: '>= 14.6'} hasBin: true @@ -15512,11 +15735,11 @@ packages: peerDependencies: zod: ^3.18.0 - zod@3.24.2: - resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.0.5: - resolution: {integrity: sha512-/5UuuRPStvHXu7RS+gmvRf4NXrNxpSllGwDnCBcJZtQsKrviYXm54yDGV2KYNLT5kq0lHGcl7lqWJLgSaG+tgA==} + zod@4.1.11: + resolution: {integrity: sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==} zone.js@0.15.0: resolution: {integrity: sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==} @@ -15591,7 +15814,7 @@ snapshots: '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@20.0.0(844ad0815c96efce5f2f2b398318e0de)': + '@angular/build@20.0.0(acb5aa01214ee6710bd4379588c92364)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2000.0(chokidar@4.0.3) @@ -15601,7 +15824,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.10(@types/node@22.15.3) - '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@vitejs/plugin-basic-ssl': 2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) beasties: 0.3.4 browserslist: 4.24.4 esbuild: 0.25.5 @@ -15621,7 +15844,7 @@ snapshots: tinyglobby: 0.2.13 tslib: 2.8.1 typescript: 5.8.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) watchpack: 2.4.2 optionalDependencies: '@angular/core': 20.0.0(@angular/compiler@20.0.0)(rxjs@7.8.2)(zone.js@0.15.0) @@ -15630,7 +15853,7 @@ snapshots: lmdb: 3.3.0 postcss: 8.5.6 tailwindcss: 4.0.14 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - chokidar @@ -15745,6 +15968,23 @@ snapshots: typescript: 5.3.3 validate-npm-package-name: 5.0.1 + '@asamuzakjp/css-color@4.0.4': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + lru-cache: 11.2.1 + + '@asamuzakjp/dom-selector@6.5.5': + dependencies: + '@asamuzakjp/nwsapi': 2.3.9 + bidi-js: 1.0.3 + css-tree: 3.1.0 + is-potential-custom-element-name: 1.0.1 + + '@asamuzakjp/nwsapi@2.3.9': {} + '@astrojs/check@0.9.4(prettier@3.6.2)(typescript@5.8.3)': dependencies: '@astrojs/language-server': 2.15.4(prettier@3.6.2)(typescript@5.8.3) @@ -15779,7 +16019,7 @@ snapshots: volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.12) volar-service-yaml: 0.0.62(@volar/language-service@2.4.12) vscode-html-languageservice: 5.3.0 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 optionalDependencies: prettier: 3.6.2 transitivePeerDependencies: @@ -15792,7 +16032,7 @@ snapshots: github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 - import-meta-resolve: 4.1.0 + import-meta-resolve: 4.2.0 js-yaml: 4.1.0 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 @@ -15802,7 +16042,7 @@ snapshots: remark-rehype: 11.1.1 remark-smartypants: 3.0.2 shiki: 3.2.1 - smol-toml: 1.3.1 + smol-toml: 1.4.2 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -15811,10 +16051,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))': + '@astrojs/node@9.1.3(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))': dependencies: '@astrojs/internal-helpers': 0.6.1 - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1) send: 1.2.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -15824,11 +16064,11 @@ snapshots: dependencies: prismjs: 1.29.0 - '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)': + '@astrojs/solid-js@5.0.7(@testing-library/jest-dom@6.8.0)(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)': dependencies: solid-js: 1.9.7 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -15844,9 +16084,9 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': + '@astrojs/tailwind@6.0.2(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)))(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3))': dependencies: - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1) autoprefixer: 10.4.21(postcss@8.5.6) postcss: 8.5.6 postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) @@ -15866,16 +16106,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.1.3(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.36.8)(vue@3.4.35(typescript@5.8.3))': + '@astrojs/vercel@8.1.3(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1))(encoding@0.1.13)(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(rollup@4.40.2)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3))': dependencies: '@astrojs/internal-helpers': 0.6.1 - '@vercel/analytics': 1.5.0(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.36.8)(vue@3.4.35(typescript@5.8.3)) + '@vercel/analytics': 1.5.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3)) '@vercel/edge': 1.2.1 '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.40.2) '@vercel/routing-utils': 5.0.4 - astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) + astro: 5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1) esbuild: 0.25.5 - tinyglobby: 0.2.13 + tinyglobby: 0.2.15 transitivePeerDependencies: - '@remix-run/react' - '@sveltejs/kit' @@ -15890,7 +16130,7 @@ snapshots: '@astrojs/yaml2ts@0.2.2': dependencies: - yaml: 2.8.0 + yaml: 2.8.1 '@babel/code-frame@7.10.4': dependencies: @@ -16847,217 +17087,250 @@ snapshots: '@floating-ui/dom': 1.6.8 solid-js: 1.9.7 - '@cspell/cspell-bundled-dicts@8.17.1': - dependencies: - '@cspell/dict-ada': 4.0.5 - '@cspell/dict-al': 1.0.3 - '@cspell/dict-aws': 4.0.7 - '@cspell/dict-bash': 4.1.8 - '@cspell/dict-companies': 3.1.10 - '@cspell/dict-cpp': 6.0.2 - '@cspell/dict-cryptocurrencies': 5.0.3 - '@cspell/dict-csharp': 4.0.5 - '@cspell/dict-css': 4.0.16 - '@cspell/dict-dart': 2.2.4 - '@cspell/dict-django': 4.1.3 - '@cspell/dict-docker': 1.1.11 - '@cspell/dict-dotnet': 5.0.8 - '@cspell/dict-elixir': 4.0.6 - '@cspell/dict-en-common-misspellings': 2.0.7 - '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.3.28 - '@cspell/dict-filetypes': 3.0.9 - '@cspell/dict-flutter': 1.0.3 - '@cspell/dict-fonts': 4.0.3 - '@cspell/dict-fsharp': 1.0.4 - '@cspell/dict-fullstack': 3.2.3 - '@cspell/dict-gaming-terms': 1.0.9 - '@cspell/dict-git': 3.0.3 - '@cspell/dict-golang': 6.0.17 - '@cspell/dict-google': 1.0.4 - '@cspell/dict-haskell': 4.0.4 - '@cspell/dict-html': 4.0.10 - '@cspell/dict-html-symbol-entities': 4.0.3 - '@cspell/dict-java': 5.0.10 - '@cspell/dict-julia': 1.0.4 - '@cspell/dict-k8s': 1.0.9 - '@cspell/dict-latex': 4.0.3 - '@cspell/dict-lorem-ipsum': 4.0.3 - '@cspell/dict-lua': 4.0.6 - '@cspell/dict-makefile': 1.0.3 - '@cspell/dict-markdown': 2.0.7(@cspell/dict-css@4.0.16)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.10)(@cspell/dict-typescript@3.1.11) - '@cspell/dict-monkeyc': 1.0.9 - '@cspell/dict-node': 5.0.5 - '@cspell/dict-npm': 5.1.19 - '@cspell/dict-php': 4.0.13 - '@cspell/dict-powershell': 5.0.13 - '@cspell/dict-public-licenses': 2.0.11 - '@cspell/dict-python': 4.2.13 - '@cspell/dict-r': 2.0.4 - '@cspell/dict-ruby': 5.0.7 - '@cspell/dict-rust': 4.0.10 - '@cspell/dict-scala': 5.0.6 - '@cspell/dict-software-terms': 4.1.21 - '@cspell/dict-sql': 2.1.8 - '@cspell/dict-svelte': 1.0.5 - '@cspell/dict-swift': 2.0.4 - '@cspell/dict-terraform': 1.0.6 - '@cspell/dict-typescript': 3.1.11 - '@cspell/dict-vue': 3.0.3 - - '@cspell/cspell-pipe@8.17.1': {} - - '@cspell/cspell-resolver@8.17.1': + '@cspell/cspell-bundled-dicts@9.2.1': + dependencies: + '@cspell/dict-ada': 4.1.1 + '@cspell/dict-al': 1.1.1 + '@cspell/dict-aws': 4.0.15 + '@cspell/dict-bash': 4.2.1 + '@cspell/dict-companies': 3.2.5 + '@cspell/dict-cpp': 6.0.12 + '@cspell/dict-cryptocurrencies': 5.0.5 + '@cspell/dict-csharp': 4.0.7 + '@cspell/dict-css': 4.0.18 + '@cspell/dict-dart': 2.3.1 + '@cspell/dict-data-science': 2.0.9 + '@cspell/dict-django': 4.1.5 + '@cspell/dict-docker': 1.1.16 + '@cspell/dict-dotnet': 5.0.10 + '@cspell/dict-elixir': 4.0.8 + '@cspell/dict-en-common-misspellings': 2.1.6 + '@cspell/dict-en-gb-mit': 3.1.9 + '@cspell/dict-en_us': 4.4.19 + '@cspell/dict-filetypes': 3.0.13 + '@cspell/dict-flutter': 1.1.1 + '@cspell/dict-fonts': 4.0.5 + '@cspell/dict-fsharp': 1.1.1 + '@cspell/dict-fullstack': 3.2.7 + '@cspell/dict-gaming-terms': 1.1.2 + '@cspell/dict-git': 3.0.7 + '@cspell/dict-golang': 6.0.23 + '@cspell/dict-google': 1.0.9 + '@cspell/dict-haskell': 4.0.6 + '@cspell/dict-html': 4.0.12 + '@cspell/dict-html-symbol-entities': 4.0.4 + '@cspell/dict-java': 5.0.12 + '@cspell/dict-julia': 1.1.1 + '@cspell/dict-k8s': 1.0.12 + '@cspell/dict-kotlin': 1.1.1 + '@cspell/dict-latex': 4.0.4 + '@cspell/dict-lorem-ipsum': 4.0.5 + '@cspell/dict-lua': 4.0.8 + '@cspell/dict-makefile': 1.0.5 + '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-monkeyc': 1.0.11 + '@cspell/dict-node': 5.0.8 + '@cspell/dict-npm': 5.2.17 + '@cspell/dict-php': 4.0.15 + '@cspell/dict-powershell': 5.0.15 + '@cspell/dict-public-licenses': 2.0.15 + '@cspell/dict-python': 4.2.19 + '@cspell/dict-r': 2.1.1 + '@cspell/dict-ruby': 5.0.9 + '@cspell/dict-rust': 4.0.12 + '@cspell/dict-scala': 5.0.8 + '@cspell/dict-shell': 1.1.1 + '@cspell/dict-software-terms': 5.1.8 + '@cspell/dict-sql': 2.2.1 + '@cspell/dict-svelte': 1.0.7 + '@cspell/dict-swift': 2.0.6 + '@cspell/dict-terraform': 1.1.3 + '@cspell/dict-typescript': 3.2.3 + '@cspell/dict-vue': 3.0.5 + + '@cspell/cspell-pipe@9.2.1': {} + + '@cspell/cspell-resolver@9.2.1': dependencies: global-directory: 4.0.1 - '@cspell/cspell-service-bus@8.17.1': {} + '@cspell/cspell-service-bus@9.2.1': {} - '@cspell/cspell-types@8.17.1': {} + '@cspell/cspell-types@9.2.1': {} - '@cspell/dict-ada@4.0.5': {} + '@cspell/dict-ada@4.1.1': {} - '@cspell/dict-al@1.0.3': {} + '@cspell/dict-al@1.1.1': {} - '@cspell/dict-aws@4.0.7': {} + '@cspell/dict-aws@4.0.15': {} - '@cspell/dict-bash@4.1.8': {} + '@cspell/dict-bash@4.2.1': + dependencies: + '@cspell/dict-shell': 1.1.1 + + '@cspell/dict-companies@3.2.5': {} - '@cspell/dict-companies@3.1.10': {} + '@cspell/dict-cpp@6.0.12': {} - '@cspell/dict-cpp@6.0.2': {} + '@cspell/dict-cryptocurrencies@5.0.5': {} - '@cspell/dict-cryptocurrencies@5.0.3': {} + '@cspell/dict-csharp@4.0.7': {} - '@cspell/dict-csharp@4.0.5': {} + '@cspell/dict-css@4.0.18': {} - '@cspell/dict-css@4.0.16': {} + '@cspell/dict-dart@2.3.1': {} - '@cspell/dict-dart@2.2.4': {} + '@cspell/dict-data-science@2.0.9': {} - '@cspell/dict-data-science@2.0.5': {} + '@cspell/dict-django@4.1.5': {} - '@cspell/dict-django@4.1.3': {} + '@cspell/dict-docker@1.1.16': {} - '@cspell/dict-docker@1.1.11': {} + '@cspell/dict-dotnet@5.0.10': {} - '@cspell/dict-dotnet@5.0.8': {} + '@cspell/dict-elixir@4.0.8': {} - '@cspell/dict-elixir@4.0.6': {} + '@cspell/dict-en-common-misspellings@2.1.6': {} - '@cspell/dict-en-common-misspellings@2.0.7': {} + '@cspell/dict-en-gb-mit@3.1.9': {} - '@cspell/dict-en-gb@1.1.33': {} + '@cspell/dict-en_us@4.4.19': {} - '@cspell/dict-en_us@4.3.28': {} + '@cspell/dict-filetypes@3.0.13': {} - '@cspell/dict-filetypes@3.0.9': {} + '@cspell/dict-flutter@1.1.1': {} - '@cspell/dict-flutter@1.0.3': {} + '@cspell/dict-fonts@4.0.5': {} - '@cspell/dict-fonts@4.0.3': {} + '@cspell/dict-fsharp@1.1.1': {} - '@cspell/dict-fsharp@1.0.4': {} + '@cspell/dict-fullstack@3.2.7': {} - '@cspell/dict-fullstack@3.2.3': {} + '@cspell/dict-gaming-terms@1.1.2': {} - '@cspell/dict-gaming-terms@1.0.9': {} + '@cspell/dict-git@3.0.7': {} - '@cspell/dict-git@3.0.3': {} + '@cspell/dict-golang@6.0.23': {} - '@cspell/dict-golang@6.0.17': {} + '@cspell/dict-google@1.0.9': {} - '@cspell/dict-google@1.0.4': {} + '@cspell/dict-haskell@4.0.6': {} - '@cspell/dict-haskell@4.0.4': {} + '@cspell/dict-html-symbol-entities@4.0.4': {} - '@cspell/dict-html-symbol-entities@4.0.3': {} + '@cspell/dict-html@4.0.12': {} - '@cspell/dict-html@4.0.10': {} + '@cspell/dict-java@5.0.12': {} - '@cspell/dict-java@5.0.10': {} + '@cspell/dict-julia@1.1.1': {} - '@cspell/dict-julia@1.0.4': {} + '@cspell/dict-k8s@1.0.12': {} - '@cspell/dict-k8s@1.0.9': {} + '@cspell/dict-kotlin@1.1.1': {} - '@cspell/dict-latex@4.0.3': {} + '@cspell/dict-latex@4.0.4': {} - '@cspell/dict-lorem-ipsum@4.0.3': {} + '@cspell/dict-lorem-ipsum@4.0.5': {} - '@cspell/dict-lua@4.0.6': {} + '@cspell/dict-lua@4.0.8': {} - '@cspell/dict-makefile@1.0.3': {} + '@cspell/dict-makefile@1.0.5': {} - '@cspell/dict-markdown@2.0.7(@cspell/dict-css@4.0.16)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.10)(@cspell/dict-typescript@3.1.11)': + '@cspell/dict-markdown@2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3)': dependencies: - '@cspell/dict-css': 4.0.16 - '@cspell/dict-html': 4.0.10 - '@cspell/dict-html-symbol-entities': 4.0.3 - '@cspell/dict-typescript': 3.1.11 + '@cspell/dict-css': 4.0.18 + '@cspell/dict-html': 4.0.12 + '@cspell/dict-html-symbol-entities': 4.0.4 + '@cspell/dict-typescript': 3.2.3 - '@cspell/dict-monkeyc@1.0.9': {} + '@cspell/dict-monkeyc@1.0.11': {} - '@cspell/dict-node@5.0.5': {} + '@cspell/dict-node@5.0.8': {} - '@cspell/dict-npm@5.1.19': {} + '@cspell/dict-npm@5.2.17': {} - '@cspell/dict-php@4.0.13': {} + '@cspell/dict-php@4.0.15': {} - '@cspell/dict-powershell@5.0.13': {} + '@cspell/dict-powershell@5.0.15': {} - '@cspell/dict-public-licenses@2.0.11': {} + '@cspell/dict-public-licenses@2.0.15': {} - '@cspell/dict-python@4.2.13': + '@cspell/dict-python@4.2.19': dependencies: - '@cspell/dict-data-science': 2.0.5 + '@cspell/dict-data-science': 2.0.9 - '@cspell/dict-r@2.0.4': {} + '@cspell/dict-r@2.1.1': {} - '@cspell/dict-ruby@5.0.7': {} + '@cspell/dict-ruby@5.0.9': {} - '@cspell/dict-rust@4.0.10': {} + '@cspell/dict-rust@4.0.12': {} - '@cspell/dict-scala@5.0.6': {} + '@cspell/dict-scala@5.0.8': {} - '@cspell/dict-software-terms@4.1.21': {} + '@cspell/dict-shell@1.1.1': {} - '@cspell/dict-sql@2.1.8': {} + '@cspell/dict-software-terms@5.1.8': {} - '@cspell/dict-svelte@1.0.5': {} + '@cspell/dict-sql@2.2.1': {} - '@cspell/dict-swift@2.0.4': {} + '@cspell/dict-svelte@1.0.7': {} - '@cspell/dict-terraform@1.0.6': {} + '@cspell/dict-swift@2.0.6': {} - '@cspell/dict-typescript@3.1.11': {} + '@cspell/dict-terraform@1.1.3': {} - '@cspell/dict-vue@3.0.3': {} + '@cspell/dict-typescript@3.2.3': {} - '@cspell/dynamic-import@8.17.1': + '@cspell/dict-vue@3.0.5': {} + + '@cspell/dynamic-import@9.2.1': dependencies: - '@cspell/url': 8.17.1 - import-meta-resolve: 4.1.0 + '@cspell/url': 9.2.1 + import-meta-resolve: 4.2.0 - '@cspell/eslint-plugin@8.17.1(eslint@9.29.0(jiti@2.4.2))': + '@cspell/eslint-plugin@9.2.1(eslint@9.36.0(jiti@2.5.1))': dependencies: - '@cspell/cspell-types': 8.17.1 - '@cspell/url': 8.17.1 - cspell-lib: 8.17.1 - eslint: 9.29.0(jiti@2.4.2) - synckit: 0.9.2 + '@cspell/cspell-types': 9.2.1 + '@cspell/url': 9.2.1 + cspell-lib: 9.2.1 + eslint: 9.36.0(jiti@2.5.1) + synckit: 0.11.11 - '@cspell/filetypes@8.17.1': {} + '@cspell/filetypes@9.2.1': {} - '@cspell/strong-weak-map@8.17.1': {} + '@cspell/strong-weak-map@9.2.1': {} - '@cspell/url@8.17.1': {} + '@cspell/url@9.2.1': {} '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 optional: true + '@csstools/color-helpers@5.1.0': {} + + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/color-helpers': 5.1.0 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-syntax-patches-for-csstree@1.0.14(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@csstools/css-tokenizer@3.0.4': {} + '@deno/shim-deno-test@0.5.0': {} '@deno/shim-deno@0.19.2': @@ -17094,16 +17367,16 @@ snapshots: '@emmetio/stream-reader@2.2.0': {} - '@emnapi/core@1.4.3': + '@emnapi/core@1.5.0': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 @@ -17415,106 +17688,106 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(jiti@2.5.1))': dependencies: - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint-react/ast@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/ast@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-react/eff': 1.52.3 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/core@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/type-utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/core@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': + dependencies: + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) birecord: 0.1.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/eff@1.52.3': {} - - '@eslint-react/eslint-plugin@1.52.3(eslint@9.29.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3)': - dependencies: - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/type-utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) - eslint-plugin-react-debug: 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-dom: 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-hooks-extra: 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-naming-convention: 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-web-api: 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-react-x: 1.52.3(eslint@9.29.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) + '@eslint-react/eff@1.53.1': {} + + '@eslint-react/eslint-plugin@1.53.1(eslint@9.36.0(jiti@2.5.1))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3)': + dependencies: + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) + eslint-plugin-react-debug: 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint-plugin-react-dom: 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint-plugin-react-hooks-extra: 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint-plugin-react-naming-convention: 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint-plugin-react-web-api: 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint-plugin-react-x: 1.53.1(eslint@9.36.0(jiti@2.5.1))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - ts-api-utils - '@eslint-react/kit@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/kit@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-react/eff': 1.52.3 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - ts-pattern: 5.7.1 - zod: 4.0.5 + '@eslint-react/eff': 1.53.1 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + ts-pattern: 5.8.0 + zod: 4.1.11 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/shared@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/shared@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - ts-pattern: 5.7.1 - zod: 4.0.5 + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + ts-pattern: 5.8.0 + zod: 4.1.11 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-react/var@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@eslint-react/var@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint/config-array@0.20.1': + '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.1 @@ -17522,13 +17795,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.3': {} + '@eslint/config-helpers@0.3.1': {} - '@eslint/core@0.14.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.15.0': + '@eslint/core@0.15.2': dependencies: '@types/json-schema': 7.0.15 @@ -17539,20 +17808,20 @@ snapshots: espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.29.0': {} + '@eslint/js@9.36.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.2': + '@eslint/plugin-kit@0.3.5': dependencies: - '@eslint/core': 0.15.0 + '@eslint/core': 0.15.2 levn: 0.4.1 '@expo/bunyan@4.0.0': @@ -17634,7 +17903,7 @@ snapshots: undici: 6.21.0 unique-string: 2.0.0 wrap-ansi: 7.0.0 - ws: 8.18.0 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - encoding @@ -18015,12 +18284,12 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.5.0 optional: true '@img/sharp-wasm32@0.34.1': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.5.0 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -18286,6 +18555,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -18642,17 +18916,24 @@ snapshots: '@napi-rs/wasm-runtime@0.2.11': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 '@tybys/wasm-util': 0.9.0 optional: true '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 '@tybys/wasm-util': 0.9.0 + '@napi-rs/wasm-runtime@1.0.5': + dependencies: + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 + '@tybys/wasm-util': 0.10.1 + optional: true + '@netlify/functions@3.0.4': dependencies: '@netlify/serverless-functions-api': 1.36.0 @@ -18805,34 +19086,34 @@ snapshots: - bluebird - supports-color - '@nx/nx-darwin-arm64@21.3.0': + '@nx/nx-darwin-arm64@21.5.3': optional: true - '@nx/nx-darwin-x64@21.3.0': + '@nx/nx-darwin-x64@21.5.3': optional: true - '@nx/nx-freebsd-x64@21.3.0': + '@nx/nx-freebsd-x64@21.5.3': optional: true - '@nx/nx-linux-arm-gnueabihf@21.3.0': + '@nx/nx-linux-arm-gnueabihf@21.5.3': optional: true - '@nx/nx-linux-arm64-gnu@21.3.0': + '@nx/nx-linux-arm64-gnu@21.5.3': optional: true - '@nx/nx-linux-arm64-musl@21.3.0': + '@nx/nx-linux-arm64-musl@21.5.3': optional: true - '@nx/nx-linux-x64-gnu@21.3.0': + '@nx/nx-linux-x64-gnu@21.5.3': optional: true - '@nx/nx-linux-x64-musl@21.3.0': + '@nx/nx-linux-x64-musl@21.5.3': optional: true - '@nx/nx-win32-arm64-msvc@21.3.0': + '@nx/nx-win32-arm64-msvc@21.5.3': optional: true - '@nx/nx-win32-x64-msvc@21.3.0': + '@nx/nx-win32-x64-msvc@21.5.3': optional: true '@open-draft/deferred-promise@2.2.0': {} @@ -18846,6 +19127,65 @@ snapshots: '@oslojs/encoding@1.1.0': {} + '@oxc-resolver/binding-android-arm-eabi@11.8.2': + optional: true + + '@oxc-resolver/binding-android-arm64@11.8.2': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.8.2': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.8.2': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.8.2': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.8.2': + dependencies: + '@napi-rs/wasm-runtime': 1.0.5 + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.8.2': + optional: true + + '@oxc-resolver/binding-win32-ia32-msvc@11.8.2': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.8.2': + optional: true + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -18921,6 +19261,8 @@ snapshots: '@pkgr/core@0.1.1': {} + '@pkgr/core@0.2.9': {} + '@polka/url@1.0.0-next.28': {} '@popperjs/core@2.11.8': {} @@ -19182,10 +19524,10 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@4.40.2) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.4(picomatch@4.0.2) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 magic-string: 0.30.17 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.40.2 @@ -19232,7 +19574,7 @@ snapshots: dependencies: '@types/estree': 1.0.7 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.40.2 @@ -19569,11 +19911,11 @@ snapshots: dependencies: solid-js: 1.9.7 - '@solidjs/start@1.1.3(@testing-library/jest-dom@6.6.3)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(yaml@2.8.0)': + '@solidjs/start@1.1.3(@testing-library/jest-dom@6.8.0)(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(solid-js@1.9.7)(terser@5.39.1)(tsx@4.20.1)(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(yaml@2.8.1)': dependencies: - '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) - '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@tanstack/server-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.11 @@ -19583,9 +19925,9 @@ snapshots: shiki: 1.29.2 source-map-js: 1.2.1 terracotta: 1.0.5(solid-js@1.9.7) - tinyglobby: 0.2.13 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + tinyglobby: 0.2.15 + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vite-plugin-solid: 2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) transitivePeerDependencies: - '@testing-library/jest-dom' - '@types/node' @@ -19613,34 +19955,35 @@ snapshots: '@speed-highlight/core@1.2.7': {} - '@stylistic/eslint-plugin@4.4.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@standard-schema/spec@1.0.0': {} + + '@stylistic/eslint-plugin@5.4.0(eslint@9.36.0(jiti@2.5.1))': dependencies: - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) + '@typescript-eslint/types': 8.44.0 + eslint: 9.36.0(jiti@2.5.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.2 - transitivePeerDependencies: - - supports-color - - typescript + picomatch: 4.0.3 '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': dependencies: acorn: 8.15.0 - '@sveltejs/adapter-auto@6.0.1(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))': + '@sveltejs/adapter-auto@6.1.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))': dependencies: - '@sveltejs/kit': 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@sveltejs/kit': 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) - '@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: + '@standard-schema/spec': 1.0.0 '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 0.6.0 - devalue: 5.1.1 + devalue: 5.3.2 esm-env: 1.2.2 kleur: 4.1.5 magic-string: 0.30.17 @@ -19648,39 +19991,39 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 - svelte: 5.36.8 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + svelte: 5.39.3 + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@sveltejs/package@2.4.0(svelte@5.36.8)(typescript@5.8.3)': + '@sveltejs/package@2.4.0(svelte@5.39.3)(typescript@5.8.3)': dependencies: chokidar: 4.0.3 kleur: 4.1.5 sade: 1.8.1 semver: 7.7.2 - svelte: 5.36.8 - svelte2tsx: 0.7.35(svelte@5.36.8)(typescript@5.8.3) + svelte: 5.39.3 + svelte2tsx: 0.7.35(svelte@5.39.3)(typescript@5.8.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) debug: 4.4.1 - svelte: 5.36.8 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + svelte: 5.39.3 + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) debug: 4.4.1 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 - svelte: 5.36.8 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + svelte: 5.39.3 + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vitefu: 1.0.6(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) transitivePeerDependencies: - supports-color @@ -19698,7 +20041,7 @@ snapshots: '@tailwindcss/node@4.0.14': dependencies: enhanced-resolve: 5.18.1 - jiti: 2.4.2 + jiti: 2.5.1 tailwindcss: 4.0.14 '@tailwindcss/oxide-android-arm64@4.0.14': @@ -19748,20 +20091,20 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.0.14 '@tailwindcss/oxide-win32-x64-msvc': 4.0.14 - '@tailwindcss/vite@4.0.14(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@tailwindcss/vite@4.0.14(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: '@tailwindcss/node': 4.0.14 '@tailwindcss/oxide': 4.0.14 lightningcss: 1.29.2 tailwindcss: 4.0.14 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@tanstack/config@0.19.0(@types/node@22.15.3)(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@tanstack/config@0.20.2(@types/node@22.15.3)(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@tanstack/eslint-config': 0.2.0(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@tanstack/publish-config': 0.2.0 - '@tanstack/typedoc-config': 0.2.0(typescript@5.8.3) - '@tanstack/vite-config': 0.2.0(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@tanstack/eslint-config': 0.3.2(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@tanstack/publish-config': 0.2.1 + '@tanstack/typedoc-config': 0.2.1(typescript@5.8.3) + '@tanstack/vite-config': 0.2.1(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) transitivePeerDependencies: - '@types/node' - '@typescript-eslint/utils' @@ -19772,7 +20115,7 @@ snapshots: - typescript - vite - '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)': + '@tanstack/directive-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.1 @@ -19785,7 +20128,7 @@ snapshots: babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 - vite: 6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.1.3(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -19801,15 +20144,15 @@ snapshots: - tsx - yaml - '@tanstack/eslint-config@0.2.0(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@tanstack/eslint-config@0.3.2(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint/js': 9.29.0 - '@stylistic/eslint-plugin': 4.4.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint-plugin-import-x: 4.15.2(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)) - eslint-plugin-n: 17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - globals: 16.2.0 - typescript-eslint: 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - vue-eslint-parser: 10.1.3(eslint@9.29.0(jiti@2.4.2)) + '@eslint/js': 9.36.0 + '@stylistic/eslint-plugin': 5.4.0(eslint@9.36.0(jiti@2.5.1)) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1)) + eslint-plugin-n: 17.23.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + globals: 16.4.0 + typescript-eslint: 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + vue-eslint-parser: 10.2.0(eslint@9.36.0(jiti@2.5.1)) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint @@ -19821,10 +20164,10 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/publish-config@0.2.0': + '@tanstack/publish-config@0.2.1': dependencies: '@commitlint/parse': 19.8.1 - jsonfile: 6.1.0 + jsonfile: 6.2.0 semver: 7.7.2 simple-git: 3.28.0 transitivePeerDependencies: @@ -19844,7 +20187,7 @@ snapshots: ansis: 3.17.0 diff: 7.0.0 - '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)': + '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.27.1 @@ -19853,7 +20196,7 @@ snapshots: '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 - '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + '@tanstack/directive-functions-plugin': 1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) babel-dead-code-elimination: 1.0.10 dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 @@ -19872,7 +20215,7 @@ snapshots: - tsx - yaml - '@tanstack/typedoc-config@0.2.0(typescript@5.8.3)': + '@tanstack/typedoc-config@0.2.1(typescript@5.8.3)': dependencies: typedoc: 0.27.9(typescript@5.8.3) typedoc-plugin-frontmatter: 1.2.1(typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.8.3))) @@ -19880,12 +20223,12 @@ snapshots: transitivePeerDependencies: - typescript - '@tanstack/vite-config@0.2.0(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@tanstack/vite-config@0.2.1(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: rollup-plugin-preserve-directives: 0.4.0(rollup@4.40.2) - vite-plugin-dts: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) - vite-plugin-externalize-deps: 0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) - vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + vite-plugin-dts: 4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + vite-plugin-externalize-deps: 0.9.0(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + vite-tsconfig-paths: 5.1.4(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) transitivePeerDependencies: - '@types/node' - rollup @@ -19913,14 +20256,13 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.6.3': + '@testing-library/jest-dom@6.8.0': dependencies: '@adobe/css-tools': 4.4.0 aria-query: 5.3.2 - chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 - lodash: 4.17.21 + picocolors: 1.1.1 redent: 3.0.0 '@testing-library/react-render-stream@2.0.0(@jest/globals@29.7.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(expect@29.7.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': @@ -19951,13 +20293,13 @@ snapshots: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@testing-library/svelte@5.2.8(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@testing-library/svelte@5.2.8(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: '@testing-library/dom': 10.4.0 - svelte: 5.36.8 + svelte: 5.39.3 optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) '@tsconfig/node10@1.0.11': optional: true @@ -19980,6 +20322,11 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.5 + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 @@ -20011,6 +20358,10 @@ snapshots: '@types/braces@3.0.4': {} + '@types/chai@5.2.2': + dependencies: + '@types/deep-eql': 4.0.2 + '@types/conventional-commits-parser@5.0.0': dependencies: '@types/node': 22.15.3 @@ -20021,6 +20372,8 @@ snapshots: dependencies: '@types/ms': 0.7.34 + '@types/deep-eql@4.0.2': {} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -20150,15 +20503,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.34.1 - '@typescript-eslint/type-utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.1 - eslint: 9.29.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.44.0 + eslint: 9.36.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.3 natural-compare: 1.4.0 @@ -20167,55 +20520,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.34.1 - '@typescript-eslint/types': 8.34.1 - '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.34.1 + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.44.0 debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/project-service@8.44.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.37.0 + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.34.1(typescript@5.8.3)': + '@typescript-eslint/rule-tester@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - debug: 4.4.1 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.37.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - debug: 4.4.1 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/rule-tester@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/parser': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) ajv: 6.12.6 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.7.2 @@ -20223,73 +20555,35 @@ snapshots: - supports-color - typescript - '@typescript-eslint/scope-manager@8.34.1': - dependencies: - '@typescript-eslint/types': 8.34.1 - '@typescript-eslint/visitor-keys': 8.34.1 - - '@typescript-eslint/scope-manager@8.37.0': - dependencies: - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/visitor-keys': 8.37.0 - - '@typescript-eslint/tsconfig-utils@8.34.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/tsconfig-utils@8.37.0(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.44.0': dependencies: - typescript: 5.8.3 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 - '@typescript-eslint/type-utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.34.1': {} - - '@typescript-eslint/types@8.37.0': {} - - '@typescript-eslint/typescript-estree@8.34.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.34.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.8.3) - '@typescript-eslint/types': 8.34.1 - '@typescript-eslint/visitor-keys': 8.34.1 - debug: 4.4.1 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.44.0': {} - '@typescript-eslint/typescript-estree@8.37.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.44.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.37.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/visitor-keys': 8.37.0 + '@typescript-eslint/project-service': 8.44.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -20300,97 +20594,81 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.34.1 - '@typescript-eslint/types': 8.34.1 - '@typescript-eslint/typescript-estree': 8.34.1(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/visitor-keys@8.44.0': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.34.1': - dependencies: - '@typescript-eslint/types': 8.34.1 - eslint-visitor-keys: 4.2.1 - - '@typescript-eslint/visitor-keys@8.37.0': - dependencies: - '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/types': 8.44.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.2.0': {} - '@unrs/resolver-binding-android-arm-eabi@1.9.1': + '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true - '@unrs/resolver-binding-android-arm64@1.9.1': + '@unrs/resolver-binding-android-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-arm64@1.9.1': + '@unrs/resolver-binding-darwin-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-x64@1.9.1': + '@unrs/resolver-binding-darwin-x64@1.11.1': optional: true - '@unrs/resolver-binding-freebsd-x64@1.9.1': + '@unrs/resolver-binding-freebsd-x64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.9.1': + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.9.1': + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.9.1': + '@unrs/resolver-binding-linux-x64-musl@1.11.1': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.9.1': + '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: '@napi-rs/wasm-runtime': 0.2.11 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.9.1': + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true '@urql/core@5.0.8(graphql@16.9.0)': @@ -20405,12 +20683,12 @@ snapshots: '@urql/core': 5.0.8(graphql@16.9.0) wonka: 6.3.4 - '@vercel/analytics@1.5.0(@sveltejs/kit@2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.36.8)(vue@3.4.35(typescript@5.8.3))': + '@vercel/analytics@1.5.0(@sveltejs/kit@2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(next@15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0))(react@19.0.0)(svelte@5.39.3)(vue@3.4.35(typescript@5.8.3))': optionalDependencies: - '@sveltejs/kit': 2.25.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)))(svelte@5.36.8)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@sveltejs/kit': 2.42.2(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)))(svelte@5.39.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) next: 15.3.1(@babel/core@7.27.1)(babel-plugin-react-compiler@0.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.88.0) react: 19.0.0 - svelte: 5.36.8 + svelte: 5.39.3 vue: 3.4.35(typescript@5.8.3) '@vercel/edge@1.2.1': {} @@ -20427,7 +20705,7 @@ snapshots: glob: 10.4.5 graceful-fs: 4.2.11 node-gyp-build: 4.8.1 - picomatch: 4.0.2 + picomatch: 4.0.3 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -20461,7 +20739,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: '@babel/parser': 7.27.1 acorn: 8.15.0 @@ -20472,40 +20750,40 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) acorn: 8.15.0 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.15.0) astring: 1.8.6 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vinxi: 0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@vitejs/plugin-basic-ssl@2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@vitejs/plugin-basic-ssl@2.0.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@vitejs/plugin-react@4.3.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@vitejs/plugin-react@4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: '@babel/core': 7.27.1 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.27.1) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.27.1) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))(vue@3.4.35(typescript@5.8.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(vue@3.4.35(typescript@5.8.3))': dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) vue: 3.4.35(typescript@5.8.3) - '@vitest/coverage-istanbul@3.1.3(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@vitest/coverage-istanbul@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.1 @@ -20517,57 +20795,59 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@vitest/eslint-plugin@1.1.36(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) optionalDependencies: typescript: 5.8.3 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@vitest/expect@3.1.3': + '@vitest/expect@3.2.4': dependencies: - '@vitest/spy': 3.1.3 - '@vitest/utils': 3.1.3 + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: - '@vitest/spy': 3.1.3 + '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.6.6(@types/node@22.15.3)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - '@vitest/pretty-format@3.1.3': + '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.1.3': + '@vitest/runner@3.2.4': dependencies: - '@vitest/utils': 3.1.3 + '@vitest/utils': 3.2.4 pathe: 2.0.3 + strip-literal: 3.0.0 - '@vitest/snapshot@3.1.3': + '@vitest/snapshot@3.2.4': dependencies: - '@vitest/pretty-format': 3.1.3 + '@vitest/pretty-format': 3.2.4 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.1.3': + '@vitest/spy@3.2.4': dependencies: - tinyspy: 3.0.2 + tinyspy: 4.0.4 - '@vitest/utils@3.1.3': + '@vitest/utils@3.2.4': dependencies: - '@vitest/pretty-format': 3.1.3 - loupe: 3.1.3 + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 tinyrainbow: 2.0.0 '@volar/kit@2.4.12(typescript@5.8.3)': @@ -20577,7 +20857,7 @@ snapshots: typesafe-path: 0.2.2 typescript: 5.8.3 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 '@volar/language-core@2.4.12': dependencies: @@ -20593,14 +20873,14 @@ snapshots: vscode-languageserver: 9.0.1 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 '@volar/language-service@2.4.12': dependencies: '@volar/language-core': 2.4.12 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 '@volar/source-map@2.4.12': {} @@ -20608,7 +20888,7 @@ snapshots: dependencies: '@volar/language-core': 2.4.12 path-browserify: 1.0.1 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 '@vscode/emmet-helper@2.9.3': dependencies: @@ -21237,7 +21517,7 @@ snapshots: astring@1.8.6: {} - astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0): + astro@5.5.6(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(rollup@4.40.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1): dependencies: '@astrojs/compiler': 2.11.0 '@astrojs/internal-helpers': 0.6.1 @@ -21256,7 +21536,7 @@ snapshots: cssesc: 3.0.0 debug: 4.4.1 deterministic-object-hash: 2.0.2 - devalue: 5.1.1 + devalue: 5.3.2 diff: 5.2.0 dlv: 1.1.3 dset: 3.1.4 @@ -21275,27 +21555,27 @@ snapshots: neotraverse: 0.6.18 p-limit: 6.2.0 p-queue: 8.1.0 - package-manager-detector: 1.1.0 - picomatch: 4.0.2 + package-manager-detector: 1.3.0 + picomatch: 4.0.3 prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.2 shiki: 3.2.1 tinyexec: 0.3.2 - tinyglobby: 0.2.13 + tinyglobby: 0.2.15 tsconfck: 3.1.5(typescript@5.8.3) ultrahtml: 1.5.3 unist-util-visit: 5.0.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) vfile: 6.0.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vitefu: 1.0.6(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.1 - zod: 3.24.2 - zod-to-json-schema: 3.24.5(zod@3.24.2) - zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.24.2) + zod: 3.25.76 + zod-to-json-schema: 3.24.5(zod@3.25.76) + zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.76) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: @@ -21572,6 +21852,10 @@ snapshots: dependencies: open: 8.4.2 + bidi-js@1.0.3: + dependencies: + require-from-string: 2.0.2 + big-integer@1.6.52: {} big.js@5.2.2: {} @@ -21785,7 +22069,7 @@ snapshots: dotenv: 16.4.7 exsolve: 1.0.4 giget: 2.0.0 - jiti: 2.4.2 + jiti: 2.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 @@ -21839,7 +22123,7 @@ snapshots: minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - p-map: 7.0.2 + p-map: 7.0.3 ssri: 12.0.0 tar: 7.4.3 unique-filename: 4.0.0 @@ -21905,7 +22189,7 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 + loupe: 3.2.1 pathval: 2.0.0 chalk@2.4.2: @@ -21914,11 +22198,6 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -21957,7 +22236,7 @@ snapshots: domutils: 3.2.2 encoding-sniffer: 0.2.0 htmlparser2: 9.1.0 - parse5: 7.2.1 + parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 undici: 6.21.0 @@ -22330,7 +22609,7 @@ snapshots: cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 @@ -22437,65 +22716,66 @@ snapshots: crypto-random-string@2.0.0: {} - cspell-config-lib@8.17.1: + cspell-config-lib@9.2.1: dependencies: - '@cspell/cspell-types': 8.17.1 + '@cspell/cspell-types': 9.2.1 comment-json: 4.2.5 - yaml: 2.8.0 + smol-toml: 1.4.2 + yaml: 2.8.1 - cspell-dictionary@8.17.1: + cspell-dictionary@9.2.1: dependencies: - '@cspell/cspell-pipe': 8.17.1 - '@cspell/cspell-types': 8.17.1 - cspell-trie-lib: 8.17.1 - fast-equals: 5.0.1 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-types': 9.2.1 + cspell-trie-lib: 9.2.1 + fast-equals: 5.2.2 - cspell-glob@8.17.1: + cspell-glob@9.2.1: dependencies: - '@cspell/url': 8.17.1 - micromatch: 4.0.8 + '@cspell/url': 9.2.1 + picomatch: 4.0.3 - cspell-grammar@8.17.1: + cspell-grammar@9.2.1: dependencies: - '@cspell/cspell-pipe': 8.17.1 - '@cspell/cspell-types': 8.17.1 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-types': 9.2.1 - cspell-io@8.17.1: + cspell-io@9.2.1: dependencies: - '@cspell/cspell-service-bus': 8.17.1 - '@cspell/url': 8.17.1 + '@cspell/cspell-service-bus': 9.2.1 + '@cspell/url': 9.2.1 - cspell-lib@8.17.1: + cspell-lib@9.2.1: dependencies: - '@cspell/cspell-bundled-dicts': 8.17.1 - '@cspell/cspell-pipe': 8.17.1 - '@cspell/cspell-resolver': 8.17.1 - '@cspell/cspell-types': 8.17.1 - '@cspell/dynamic-import': 8.17.1 - '@cspell/filetypes': 8.17.1 - '@cspell/strong-weak-map': 8.17.1 - '@cspell/url': 8.17.1 + '@cspell/cspell-bundled-dicts': 9.2.1 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-resolver': 9.2.1 + '@cspell/cspell-types': 9.2.1 + '@cspell/dynamic-import': 9.2.1 + '@cspell/filetypes': 9.2.1 + '@cspell/strong-weak-map': 9.2.1 + '@cspell/url': 9.2.1 clear-module: 4.1.2 comment-json: 4.2.5 - cspell-config-lib: 8.17.1 - cspell-dictionary: 8.17.1 - cspell-glob: 8.17.1 - cspell-grammar: 8.17.1 - cspell-io: 8.17.1 - cspell-trie-lib: 8.17.1 + cspell-config-lib: 9.2.1 + cspell-dictionary: 9.2.1 + cspell-glob: 9.2.1 + cspell-grammar: 9.2.1 + cspell-io: 9.2.1 + cspell-trie-lib: 9.2.1 env-paths: 3.0.0 - fast-equals: 5.0.1 + fast-equals: 5.2.2 gensequence: 7.0.0 - import-fresh: 3.3.0 + import-fresh: 3.3.1 resolve-from: 5.0.0 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 xdg-basedir: 5.1.0 - cspell-trie-lib@8.17.1: + cspell-trie-lib@9.2.1: dependencies: - '@cspell/cspell-pipe': 8.17.1 - '@cspell/cspell-types': 8.17.1 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-types': 9.2.1 gensequence: 7.0.0 css-in-js-utils@3.1.0: @@ -22518,6 +22798,11 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + css-vendor@2.0.8: dependencies: '@babel/runtime': 7.26.10 @@ -22533,6 +22818,14 @@ snapshots: dependencies: rrweb-cssom: 0.7.1 + cssstyle@5.3.1(postcss@8.5.6): + dependencies: + '@asamuzakjp/css-color': 4.0.4 + '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6) + css-tree: 3.1.0 + transitivePeerDependencies: + - postcss + csstype@3.1.3: {} cyclist@1.0.2: {} @@ -22542,6 +22835,11 @@ snapshots: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 + data-urls@6.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 15.1.0 + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 @@ -22581,7 +22879,7 @@ snapshots: dependencies: ms: 2.1.3 - decimal.js@10.4.3: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.0.2: dependencies: @@ -22681,7 +22979,7 @@ snapshots: dependencies: base-64: 1.0.0 - devalue@5.1.1: {} + devalue@5.3.2: {} devlop@1.1.0: dependencies: @@ -22791,12 +23089,6 @@ snapshots: eastasianwidth@0.2.0: {} - easy-table@1.2.0: - dependencies: - ansi-regex: 5.0.1 - optionalDependencies: - wcwidth: 1.0.1 - ee-first@1.1.1: {} electron-to-chromium@1.5.84: {} @@ -23082,17 +23374,17 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.29.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.36.0(jiti@2.5.1)): dependencies: - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) semver: 7.7.2 - eslint-import-context@0.1.8(unrs-resolver@1.9.1): + eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: get-tsconfig: 4.10.1 - stable-hash-x: 0.1.1 + stable-hash-x: 0.2.0 optionalDependencies: - unrs-resolver: 1.9.1 + unrs-resolver: 1.11.1 eslint-import-resolver-node@0.3.9: dependencies: @@ -23103,39 +23395,39 @@ snapshots: - supports-color optional: true - eslint-plugin-es-x@7.8.0(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.36.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.29.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.29.0(jiti@2.4.2)) + eslint: 9.36.0(jiti@2.5.1) + eslint-compat-utils: 0.5.1(eslint@9.36.0(jiti@2.5.1)) - eslint-plugin-import-x@4.15.2(@typescript-eslint/utils@8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.36.0(jiti@2.5.1)): dependencies: - '@typescript-eslint/types': 8.37.0 + '@typescript-eslint/types': 8.44.0 comment-parser: 1.4.1 debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) - eslint-import-context: 0.1.8(unrs-resolver@1.9.1) + eslint: 9.36.0(jiti@2.5.1) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.0.1 semver: 7.7.2 - stable-hash-x: 0.1.1 - unrs-resolver: 1.9.1 + stable-hash-x: 0.2.0 + unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@50.5.0(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-jsdoc@50.5.0(eslint@9.36.0(jiti@2.5.1)): dependencies: '@es-joy/jsdoccomment': 0.49.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.4.1 escape-string-regexp: 4.0.0 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) espree: 10.4.0 esquery: 1.6.0 parse-imports: 2.1.1 @@ -23145,185 +23437,183 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-n@17.20.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-n@17.23.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) enhanced-resolve: 5.18.1 - eslint: 9.29.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.29.0(jiti@2.4.2)) + eslint: 9.36.0(jiti@2.5.1) + eslint-plugin-es-x: 7.8.0(eslint@9.36.0(jiti@2.5.1)) get-tsconfig: 4.10.1 globals: 15.14.0 + globrex: 0.1.2 ignore: 5.3.2 - minimatch: 9.0.5 semver: 7.7.2 ts-declaration-location: 1.0.7(typescript@5.8.3) transitivePeerDependencies: - - supports-color - typescript - eslint-plugin-react-debug@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): - dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/type-utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-react-debug@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/core': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-dom@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): - dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-dom@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/core': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) compare-versions: 6.1.1 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): - dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/type-utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-react-hooks-extra@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/core': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@6.0.0-rc.1(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-react-hooks@6.0.0(eslint@9.36.0(jiti@2.5.1)): dependencies: '@babel/core': 7.27.1 '@babel/parser': 7.27.1 '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1) - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) hermes-parser: 0.25.1 - zod: 3.24.2 - zod-validation-error: 3.3.0(zod@3.24.2) + zod: 3.25.76 + zod-validation-error: 3.3.0(zod@3.25.76) transitivePeerDependencies: - supports-color - eslint-plugin-react-naming-convention@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): - dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/type-utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-react-naming-convention@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/core': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-web-api@1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): - dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + eslint-plugin-react-web-api@1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/core': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.52.3(eslint@9.29.0(jiti@2.4.2))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3): - dependencies: - '@eslint-react/ast': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/core': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/eff': 1.52.3 - '@eslint-react/kit': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/shared': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@eslint-react/var': 1.52.3(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.37.0 - '@typescript-eslint/type-utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/types': 8.37.0 - '@typescript-eslint/utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint-plugin-react-x@1.53.1(eslint@9.36.0(jiti@2.5.1))(ts-api-utils@2.1.0(typescript@5.8.3))(typescript@5.8.3): + dependencies: + '@eslint-react/ast': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/core': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/eff': 1.53.1 + '@eslint-react/kit': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/shared': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@eslint-react/var': 1.53.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) compare-versions: 6.1.1 - eslint: 9.29.0(jiti@2.4.2) - is-immutable-type: 5.0.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) + is-immutable-type: 5.0.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) string-ts: 2.2.1 - ts-pattern: 5.7.1 + ts-pattern: 5.8.0 optionalDependencies: ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - eslint-plugin-svelte@3.11.0(eslint@9.29.0(jiti@2.4.2))(svelte@5.36.8)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): + eslint-plugin-svelte@3.11.0(eslint@9.36.0(jiti@2.5.1))(svelte@5.39.3)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) esutils: 2.0.3 - globals: 16.2.0 + globals: 16.4.0 known-css-properties: 0.37.0 postcss: 8.5.6 postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.2 - svelte-eslint-parser: 1.3.0(svelte@5.36.8) + svelte-eslint-parser: 1.3.0(svelte@5.39.3) optionalDependencies: - svelte: 5.36.8 + svelte: 5.39.3 transitivePeerDependencies: - ts-node - eslint-plugin-vue@9.27.0(eslint@9.29.0(jiti@2.4.2)): + eslint-plugin-vue@9.27.0(eslint@9.36.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) - eslint: 9.29.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) + eslint: 9.36.0(jiti@2.5.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.1 semver: 7.7.2 - vue-eslint-parser: 9.4.3(eslint@9.29.0(jiti@2.4.2)) + vue-eslint-parser: 9.4.3(eslint@9.36.0(jiti@2.5.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -23352,16 +23642,16 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.29.0(jiti@2.4.2): + eslint@9.36.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.1 - '@eslint/config-helpers': 0.2.3 - '@eslint/core': 0.14.0 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.3.1 + '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.29.0 - '@eslint/plugin-kit': 0.3.2 + '@eslint/js': 9.36.0 + '@eslint/plugin-kit': 0.3.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -23390,7 +23680,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 transitivePeerDependencies: - supports-color @@ -23634,7 +23924,7 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-equals@5.0.1: {} + fast-equals@5.2.2: {} fast-fifo@1.3.2: {} @@ -23684,9 +23974,13 @@ snapshots: transitivePeerDependencies: - encoding - fdir@6.4.4(picomatch@4.0.2): + fd-package-json@2.0.0: + dependencies: + walk-up-path: 4.0.0 + + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 fetch-retry@4.1.1: {} @@ -23820,6 +24114,10 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + formatly@0.3.0: + dependencies: + fd-package-json: 2.0.0 + fraction.js@4.3.7: {} fragment-cache@0.2.1: @@ -23859,14 +24157,14 @@ snapshots: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.0 universalify: 1.0.0 fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.0 universalify: 2.0.1 fs-minipass@2.1.0: @@ -24018,7 +24316,7 @@ snapshots: globals@15.14.0: {} - globals@16.2.0: {} + globals@16.4.0: {} globalthis@1.0.4: dependencies: @@ -24165,7 +24463,7 @@ snapshots: '@types/hast': 3.0.4 devlop: 1.1.0 hast-util-from-parse5: 8.0.2 - parse5: 7.2.1 + parse5: 7.3.0 vfile: 6.0.3 vfile-message: 4.0.2 @@ -24197,7 +24495,7 @@ snapshots: hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - parse5: 7.2.1 + parse5: 7.3.0 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 vfile: 6.0.3 @@ -24463,7 +24761,7 @@ snapshots: caller-path: 2.0.0 resolve-from: 3.0.0 - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -24475,7 +24773,7 @@ snapshots: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - import-meta-resolve@4.1.0: {} + import-meta-resolve@4.2.0: {} imurmurhash@0.1.4: {} @@ -24641,10 +24939,10 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-immutable-type@5.0.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): + is-immutable-type@5.0.1(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/type-utils': 8.37.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + '@typescript-eslint/type-utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.8.3) ts-declaration-location: 1.0.7(typescript@5.8.3) typescript: 5.8.3 @@ -24952,7 +25250,7 @@ snapshots: jiti@1.21.6: {} - jiti@2.4.2: {} + jiti@2.5.1: {} jju@1.4.0: {} @@ -25037,14 +25335,14 @@ snapshots: dependencies: cssstyle: 4.1.0 data-urls: 5.0.0 - decimal.js: 10.4.3 + decimal.js: 10.6.0 form-data: 4.0.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.13 - parse5: 7.2.1 + parse5: 7.3.0 rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -25054,10 +25352,38 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 - ws: 8.18.0 + ws: 8.18.3 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsdom@27.0.0(postcss@8.5.6): + dependencies: + '@asamuzakjp/dom-selector': 6.5.5 + cssstyle: 5.3.1(postcss@8.5.6) + data-urls: 6.0.0 + decimal.js: 10.6.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + parse5: 7.3.0 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 6.0.0 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 8.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 15.1.0 + ws: 8.18.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil + - postcss - supports-color - utf-8-validate @@ -25095,7 +25421,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.1.0: + jsonfile@6.2.0: dependencies: universalify: 2.0.1 optionalDependencies: @@ -25171,24 +25497,23 @@ snapshots: klona@2.0.6: {} - knip@5.50.2(@types/node@22.15.3)(typescript@5.8.3): + knip@5.63.1(@types/node@22.15.3)(typescript@5.8.3): dependencies: '@nodelib/fs.walk': 1.2.8 '@types/node': 22.15.3 - easy-table: 1.2.0 - enhanced-resolve: 5.18.1 fast-glob: 3.3.3 - jiti: 2.4.2 + formatly: 0.3.0 + jiti: 2.5.1 js-yaml: 4.1.0 minimist: 1.2.8 + oxc-resolver: 11.8.2 picocolors: 1.1.1 - picomatch: 4.0.2 - pretty-ms: 9.1.0 - smol-toml: 1.3.1 - strip-json-comments: 5.0.1 + picomatch: 4.0.3 + smol-toml: 1.4.2 + strip-json-comments: 5.0.2 typescript: 5.8.3 - zod: 3.24.2 - zod-validation-error: 3.3.0(zod@3.24.2) + zod: 3.25.76 + zod-validation-error: 3.3.0(zod@3.25.76) knitwork@1.2.0: {} @@ -25347,7 +25672,7 @@ snapshots: get-port-please: 3.1.2 h3: 1.15.1 http-shutdown: 1.2.2 - jiti: 2.4.2 + jiti: 2.5.1 mlly: 1.7.4 node-forge: 1.3.1 pathe: 1.1.2 @@ -25476,7 +25801,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} + loupe@3.2.1: {} lower-case@2.0.2: dependencies: @@ -25484,6 +25809,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.1: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -25744,6 +26071,8 @@ snapshots: dependencies: '@types/mdast': 4.0.4 + mdn-data@2.12.2: {} + mdurl@2.0.0: {} memoize-one@5.2.1: {} @@ -26413,7 +26742,7 @@ snapshots: transitivePeerDependencies: - supports-color - napi-postinstall@0.2.4: {} + napi-postinstall@0.3.3: {} natural-compare@1.4.0: {} @@ -26558,7 +26887,7 @@ snapshots: hookable: 5.5.3 httpxy: 0.1.7 ioredis: 5.6.0 - jiti: 2.4.2 + jiti: 2.5.1 klona: 2.0.6 knitwork: 1.2.0 listhen: 1.9.0 @@ -26833,7 +27162,7 @@ snapshots: nwsapi@2.2.13: {} - nx@21.3.0: + nx@21.5.3: dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 @@ -26867,20 +27196,20 @@ snapshots: tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - yaml: 2.8.0 + yaml: 2.8.1 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 21.3.0 - '@nx/nx-darwin-x64': 21.3.0 - '@nx/nx-freebsd-x64': 21.3.0 - '@nx/nx-linux-arm-gnueabihf': 21.3.0 - '@nx/nx-linux-arm64-gnu': 21.3.0 - '@nx/nx-linux-arm64-musl': 21.3.0 - '@nx/nx-linux-x64-gnu': 21.3.0 - '@nx/nx-linux-x64-musl': 21.3.0 - '@nx/nx-win32-arm64-msvc': 21.3.0 - '@nx/nx-win32-x64-msvc': 21.3.0 + '@nx/nx-darwin-arm64': 21.5.3 + '@nx/nx-darwin-x64': 21.5.3 + '@nx/nx-freebsd-x64': 21.5.3 + '@nx/nx-linux-arm-gnueabihf': 21.5.3 + '@nx/nx-linux-arm64-gnu': 21.5.3 + '@nx/nx-linux-arm64-musl': 21.5.3 + '@nx/nx-linux-x64-gnu': 21.5.3 + '@nx/nx-linux-x64-musl': 21.5.3 + '@nx/nx-win32-arm64-msvc': 21.5.3 + '@nx/nx-win32-x64-msvc': 21.5.3 transitivePeerDependencies: - debug @@ -27080,6 +27409,30 @@ snapshots: outvariant@1.4.3: {} + oxc-resolver@11.8.2: + dependencies: + napi-postinstall: 0.3.3 + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.8.2 + '@oxc-resolver/binding-android-arm64': 11.8.2 + '@oxc-resolver/binding-darwin-arm64': 11.8.2 + '@oxc-resolver/binding-darwin-x64': 11.8.2 + '@oxc-resolver/binding-freebsd-x64': 11.8.2 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.8.2 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.8.2 + '@oxc-resolver/binding-linux-arm64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-arm64-musl': 11.8.2 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-riscv64-musl': 11.8.2 + '@oxc-resolver/binding-linux-s390x-gnu': 11.8.2 + '@oxc-resolver/binding-linux-x64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-x64-musl': 11.8.2 + '@oxc-resolver/binding-wasm32-wasi': 11.8.2 + '@oxc-resolver/binding-win32-arm64-msvc': 11.8.2 + '@oxc-resolver/binding-win32-ia32-msvc': 11.8.2 + '@oxc-resolver/binding-win32-x64-msvc': 11.8.2 + p-event@5.0.1: dependencies: p-timeout: 5.1.0 @@ -27132,7 +27485,7 @@ snapshots: p-map@6.0.0: {} - p-map@7.0.2: {} + p-map@7.0.3: {} p-queue@6.6.2: dependencies: @@ -27156,7 +27509,7 @@ snapshots: package-json-from-dist@1.0.0: {} - package-manager-detector@1.1.0: {} + package-manager-detector@1.3.0: {} pacote@21.0.0: dependencies: @@ -27237,8 +27590,6 @@ snapshots: unist-util-visit-children: 3.0.0 vfile: 6.0.3 - parse-ms@4.0.0: {} - parse-node-version@1.0.1: optional: true @@ -27249,25 +27600,25 @@ snapshots: parse5-html-rewriting-stream@7.1.0: dependencies: entities: 6.0.0 - parse5: 7.2.1 + parse5: 7.3.0 parse5-sax-parser: 7.0.0 parse5-htmlparser2-tree-adapter@7.1.0: dependencies: domhandler: 5.0.3 - parse5: 7.2.1 + parse5: 7.3.0 parse5-parser-stream@7.1.2: dependencies: - parse5: 7.2.1 + parse5: 7.3.0 parse5-sax-parser@7.0.0: dependencies: - parse5: 7.2.1 + parse5: 7.3.0 - parse5@7.2.1: + parse5@7.3.0: dependencies: - entities: 4.5.0 + entities: 6.0.0 parseurl@1.3.3: {} @@ -27345,6 +27696,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.3: {} + pidtree@0.5.0: {} pify@2.3.0: {} @@ -27416,19 +27769,19 @@ snapshots: postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.15.3)(typescript@5.8.3)): dependencies: lilconfig: 3.1.2 - yaml: 2.8.0 + yaml: 2.8.1 optionalDependencies: postcss: 8.5.6 ts-node: 10.9.2(@types/node@22.15.3)(typescript@5.8.3) - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(yaml@2.8.0): + postcss-load-config@6.0.1(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(yaml@2.8.1): dependencies: lilconfig: 3.1.2 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 postcss: 8.5.6 tsx: 4.20.1 - yaml: 2.8.0 + yaml: 2.8.1 postcss-media-query-parser@0.2.3: {} @@ -27479,10 +27832,10 @@ snapshots: premove@4.0.0: {} - prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.36.8): + prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.39.3): dependencies: prettier: 3.6.2 - svelte: 5.36.8 + svelte: 5.39.3 prettier@2.8.7: optional: true @@ -27532,10 +27885,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-ms@9.1.0: - dependencies: - parse-ms: 4.0.0 - prismjs@1.29.0: {} proc-log@4.2.0: {} @@ -27595,10 +27944,10 @@ snapshots: randombytes: 2.1.0 safe-buffer: 5.2.1 - publint@0.3.12: + publint@0.3.13: dependencies: '@publint/pack': 0.1.2 - package-manager-detector: 1.1.0 + package-manager-detector: 1.3.0 picocolors: 1.1.1 sade: 1.8.1 @@ -28257,7 +28606,7 @@ snapshots: rollup-plugin-visualizer@5.14.0(rollup@4.40.2): dependencies: open: 8.4.2 - picomatch: 4.0.2 + picomatch: 4.0.3 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: @@ -28300,6 +28649,8 @@ snapshots: rrweb-cssom@0.7.1: {} + rrweb-cssom@0.8.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -28719,7 +29070,7 @@ snapshots: smob@1.5.0: {} - smol-toml@1.3.1: {} + smol-toml@1.4.2: {} snapdragon-node@2.1.1: dependencies: @@ -28874,7 +29225,7 @@ snapshots: dependencies: figgy-pudding: 3.5.2 - stable-hash-x@0.1.1: {} + stable-hash-x@0.2.0: {} stack-utils@2.0.6: dependencies: @@ -29025,7 +29376,7 @@ snapshots: strip-json-comments@3.1.1: {} - strip-json-comments@5.0.1: {} + strip-json-comments@5.0.2: {} strip-literal@3.0.0: dependencies: @@ -29105,19 +29456,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.0(picomatch@4.0.2)(svelte@5.36.8)(typescript@5.8.3): + svelte-check@4.3.1(picomatch@4.0.3)(svelte@5.39.3)(typescript@5.8.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.3 - fdir: 6.4.4(picomatch@4.0.2) + fdir: 6.5.0(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.36.8 + svelte: 5.39.3 typescript: 5.8.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.3.0(svelte@5.36.8): + svelte-eslint-parser@1.3.0(svelte@5.39.3): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -29126,18 +29477,18 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.0 optionalDependencies: - svelte: 5.36.8 + svelte: 5.39.3 - svelte2tsx@0.7.35(svelte@5.36.8)(typescript@5.8.3): + svelte2tsx@0.7.35(svelte@5.39.3)(typescript@5.8.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.36.8 + svelte: 5.39.3 typescript: 5.8.3 - svelte@5.36.8: + svelte@5.39.3: dependencies: - '@ampproject/remapping': 2.3.0 + '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.0 '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) '@types/estree': 1.0.7 @@ -29154,6 +29505,10 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + synckit@0.9.2: dependencies: '@pkgr/core': 0.1.1 @@ -29337,26 +29692,32 @@ snapshots: tinyglobby@0.2.13: dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 - tinypool@1.0.2: {} + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} - tinyspy@3.0.2: {} + tinyspy@4.0.4: {} tldts-core@6.1.64: {} + tldts-core@7.0.15: {} + tldts@6.1.64: dependencies: tldts-core: 6.1.64 + tldts@7.0.15: + dependencies: + tldts-core: 7.0.15 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -29402,6 +29763,10 @@ snapshots: dependencies: tldts: 6.1.64 + tough-cookie@6.0.0: + dependencies: + tldts: 7.0.15 + tr46@0.0.3: {} tr46@1.0.1: @@ -29412,6 +29777,10 @@ snapshots: dependencies: punycode: 2.3.1 + tr46@6.0.0: + dependencies: + punycode: 2.3.1 + tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -29424,7 +29793,7 @@ snapshots: ts-declaration-location@1.0.7(typescript@5.8.3): dependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 typescript: 5.8.3 ts-expose-internals-conditionally@1.0.0-empty.0: {} @@ -29450,7 +29819,7 @@ snapshots: yn: 3.1.1 optional: true - ts-pattern@5.7.1: {} + ts-pattern@5.8.0: {} tsconfck@3.1.5(typescript@5.8.3): optionalDependencies: @@ -29464,16 +29833,16 @@ snapshots: tslib@2.8.1: {} - tsup-preset-solid@2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0)): + tsup-preset-solid@2.2.0(esbuild@0.25.5)(solid-js@1.9.7)(tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1)): dependencies: esbuild-plugin-solid: 0.5.0(esbuild@0.25.5)(solid-js@1.9.7) - tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0) + tsup: 8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1) transitivePeerDependencies: - esbuild - solid-js - supports-color - tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.0): + tsup@8.4.0(@microsoft/api-extractor@7.48.1(@types/node@22.15.3))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(typescript@5.8.3)(yaml@2.8.1): dependencies: bundle-require: 5.1.0(esbuild@0.25.5) cac: 6.7.14 @@ -29483,13 +29852,13 @@ snapshots: esbuild: 0.25.5 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.6)(tsx@4.20.1)(yaml@2.8.0) + postcss-load-config: 6.0.1(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.1)(yaml@2.8.1) resolve-from: 5.0.0 rollup: 4.40.2 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: '@microsoft/api-extractor': 7.48.1(@types/node@22.15.3) @@ -29578,7 +29947,7 @@ snapshots: typedoc-plugin-frontmatter@1.2.1(typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.8.3))): dependencies: typedoc-plugin-markdown: 4.4.2(typedoc@0.27.9(typescript@5.8.3)) - yaml: 2.8.0 + yaml: 2.8.1 typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.8.3)): dependencies: @@ -29591,7 +29960,7 @@ snapshots: markdown-it: 14.1.0 minimatch: 9.0.5 typescript: 5.8.3 - yaml: 2.8.0 + yaml: 2.8.1 typesafe-path@0.2.2: {} @@ -29599,12 +29968,13 @@ snapshots: dependencies: semver: 7.7.2 - typescript-eslint@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.34.1(@typescript-eslint/parser@8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.34.1(eslint@9.29.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.29.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.44.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.5.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -29709,11 +30079,11 @@ snapshots: magic-string: 0.30.17 mlly: 1.7.4 pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 pkg-types: 2.1.0 scule: 1.3.0 strip-literal: 3.0.0 - tinyglobby: 0.2.13 + tinyglobby: 0.2.15 unplugin: 2.2.2 unplugin-utils: 0.2.4 @@ -29809,7 +30179,7 @@ snapshots: unplugin-utils@0.2.4: dependencies: pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 unplugin@1.12.0: dependencies: @@ -29823,29 +30193,29 @@ snapshots: acorn: 8.15.0 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.9.1: + unrs-resolver@1.11.1: dependencies: - napi-postinstall: 0.2.4 + napi-postinstall: 0.3.3 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.9.1 - '@unrs/resolver-binding-android-arm64': 1.9.1 - '@unrs/resolver-binding-darwin-arm64': 1.9.1 - '@unrs/resolver-binding-darwin-x64': 1.9.1 - '@unrs/resolver-binding-freebsd-x64': 1.9.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.9.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.9.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.9.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-x64-musl': 1.9.1 - '@unrs/resolver-binding-wasm32-wasi': 1.9.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.9.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.9.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.9.1 + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 unset-value@1.0.0: dependencies: @@ -29877,7 +30247,7 @@ snapshots: dependencies: citty: 0.1.6 defu: 6.1.4 - jiti: 2.4.2 + jiti: 2.5.1 knitwork: 1.2.0 scule: 1.3.0 @@ -29989,7 +30359,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): + vinxi@0.5.3(@types/node@22.15.3)(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1): dependencies: '@babel/core': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) @@ -30023,8 +30393,8 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unstorage: 1.15.0(db0@0.3.1)(idb-keyval@6.2.1)(ioredis@5.6.0) - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - zod: 3.24.2 + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -30067,13 +30437,13 @@ snapshots: - xml2js - yaml - vite-node@3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): + vite-node@3.2.4(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -30088,7 +30458,7 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): + vite-plugin-dts@4.2.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)): dependencies: '@microsoft/api-extractor': 7.47.7(@types/node@22.15.3) '@rollup/pluginutils': 5.1.4(rollup@4.40.2) @@ -30101,17 +30471,17 @@ snapshots: magic-string: 0.30.17 typescript: 5.8.3 optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.9.0(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): + vite-plugin-externalize-deps@0.9.0(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)): dependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) - vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.6.3)(solid-js@1.9.7)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): + vite-plugin-solid@2.11.6(@testing-library/jest-dom@6.8.0)(solid-js@1.9.7)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)): dependencies: '@babel/core': 7.27.1 '@types/babel__core': 7.20.5 @@ -30119,25 +30489,25 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.7 solid-refresh: 0.6.3(solid-js@1.9.7) - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vitefu: 1.0.6(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) optionalDependencies: - '@testing-library/jest-dom': 6.6.3 + '@testing-library/jest-dom': 6.8.0 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)): dependencies: debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript - vite@6.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): + vite@6.1.3(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1): dependencies: esbuild: 0.24.2 postcss: 8.5.6 @@ -30145,64 +30515,85 @@ snapshots: optionalDependencies: '@types/node': 22.15.3 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 less: 4.3.0 lightningcss: 1.29.2 sass: 1.88.0 terser: 5.39.1 tsx: 4.20.1 - yaml: 2.8.0 + yaml: 2.8.1 - vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): + vite@6.3.5(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1): dependencies: esbuild: 0.25.5 - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.40.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.15.3 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 less: 4.3.0 lightningcss: 1.29.2 sass: 1.88.0 terser: 5.39.1 tsx: 4.20.1 - yaml: 2.8.0 + yaml: 2.8.1 - vitefu@1.0.6(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)): + vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1): + dependencies: + esbuild: 0.25.5 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.40.2 + tinyglobby: 0.2.15 optionalDependencies: - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + '@types/node': 22.15.3 + fsevents: 2.3.3 + jiti: 2.5.1 + less: 4.3.0 + lightningcss: 1.29.2 + sass: 1.88.0 + terser: 5.39.1 + tsx: 4.20.1 + yaml: 2.8.1 - vitest@3.1.3(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(jsdom@25.0.1)(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0): - dependencies: - '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0)) - '@vitest/pretty-format': 3.1.3 - '@vitest/runner': 3.1.3 - '@vitest/snapshot': 3.1.3 - '@vitest/spy': 3.1.3 - '@vitest/utils': 3.1.3 + vitefu@1.0.6(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)): + optionalDependencies: + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.29.2)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1): + dependencies: + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 chai: 5.2.0 debug: 4.4.1 expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 + picomatch: 4.0.3 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tinypool: 1.0.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) - vite-node: 3.1.3(@types/node@22.15.3)(jiti@2.4.2)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.0) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.29.2)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 '@types/node': 22.15.3 - jsdom: 25.0.1 + jsdom: 27.0.0(postcss@8.5.6) transitivePeerDependencies: - jiti - less @@ -30225,7 +30616,7 @@ snapshots: dependencies: vscode-css-languageservice: 6.3.0 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.12 @@ -30234,7 +30625,7 @@ snapshots: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.9.3 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.12 @@ -30242,20 +30633,20 @@ snapshots: dependencies: vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.12 volar-service-prettier@0.0.62(@volar/language-service@2.4.12)(prettier@3.6.2): dependencies: - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.12 prettier: 3.6.2 volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.12): dependencies: - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.12 @@ -30266,13 +30657,13 @@ snapshots: typescript-auto-import-cache: 0.3.3 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.12 volar-service-yaml@0.0.62(@volar/language-service@2.4.12): dependencies: - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 yaml-language-server: 1.15.0 optionalDependencies: '@volar/language-service': 2.4.12 @@ -30282,14 +30673,14 @@ snapshots: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 vscode-html-languageservice@5.3.0: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 vscode-json-languageservice@4.1.8: dependencies: @@ -30297,7 +30688,7 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-nls: 5.2.0 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 vscode-jsonrpc@6.0.0: {} @@ -30331,7 +30722,7 @@ snapshots: vscode-uri@2.1.2: {} - vscode-uri@3.0.8: {} + vscode-uri@3.1.0: {} vue-demi@0.14.10(@vue/composition-api@1.7.2(vue@3.4.35(typescript@5.8.3)))(vue@3.4.35(typescript@5.8.3)): dependencies: @@ -30339,23 +30730,22 @@ snapshots: optionalDependencies: '@vue/composition-api': 1.7.2(vue@3.4.35(typescript@5.8.3)) - vue-eslint-parser@10.1.3(eslint@9.29.0(jiti@2.4.2)): + vue-eslint-parser@10.2.0(eslint@9.36.0(jiti@2.5.1)): dependencies: debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 esquery: 1.6.0 - lodash: 4.17.21 semver: 7.7.2 transitivePeerDependencies: - supports-color - vue-eslint-parser@9.4.3(eslint@9.29.0(jiti@2.4.2)): + vue-eslint-parser@9.4.3(eslint@9.36.0(jiti@2.5.1)): dependencies: debug: 4.4.1 - eslint: 9.29.0(jiti@2.4.2) + eslint: 9.36.0(jiti@2.5.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -30392,6 +30782,8 @@ snapshots: dependencies: xml-name-validator: 5.0.0 + walk-up-path@4.0.0: {} + walker@1.0.8: dependencies: makeerror: 1.0.12 @@ -30439,6 +30831,8 @@ snapshots: webidl-conversions@7.0.0: {} + webidl-conversions@8.0.0: {} + webpack-cli@4.10.0(webpack@4.44.2): dependencies: '@discoveryjs/json-ext': 0.5.7 @@ -30568,6 +30962,11 @@ snapshots: tr46: 5.0.0 webidl-conversions: 7.0.0 + whatwg-url@15.1.0: + dependencies: + tr46: 6.0.0 + webidl-conversions: 8.0.0 + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -30684,7 +31083,7 @@ snapshots: ws@7.5.10: {} - ws@8.18.0: {} + ws@8.18.3: {} xcode@3.0.1: dependencies: @@ -30734,7 +31133,7 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-nls: 5.2.0 - vscode-uri: 3.0.8 + vscode-uri: 3.1.0 yaml: 2.2.2 optionalDependencies: prettier: 2.8.7 @@ -30743,7 +31142,7 @@ snapshots: yaml@2.2.2: {} - yaml@2.8.0: {} + yaml@2.8.1: {} yargs-parser@20.2.9: {} @@ -30804,22 +31203,22 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zod-to-json-schema@3.24.5(zod@3.24.2): + zod-to-json-schema@3.24.5(zod@3.25.76): dependencies: - zod: 3.24.2 + zod: 3.25.76 - zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.24.2): + zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.25.76): dependencies: typescript: 5.8.3 - zod: 3.24.2 + zod: 3.25.76 - zod-validation-error@3.3.0(zod@3.24.2): + zod-validation-error@3.3.0(zod@3.25.76): dependencies: - zod: 3.24.2 + zod: 3.25.76 - zod@3.24.2: {} + zod@3.25.76: {} - zod@4.0.5: {} + zod@4.1.11: {} zone.js@0.15.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a14435928b..c848f95b25 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,7 @@ +cleanupUnusedCatalogs: true +linkWorkspacePackages: true +preferWorkspacePackages: true + packages: - 'packages/*' - 'integrations/*' From cbf0896b7a31e74da2a3fd0f70ac58bd0d11b284 Mon Sep 17 00:00:00 2001 From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:06:18 +0900 Subject: [PATCH 418/432] ci: update checkout action (#9673) --- .github/workflows/autofix.yml | 4 +++- .github/workflows/pr.yml | 8 ++++---- .github/workflows/{ci.yml => release.yml} | 6 +++--- package.json | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) rename .github/workflows/{ci.yml => release.yml} (94%) diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 98be6a30a5..77127b1b9f 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -18,7 +18,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 + with: + fetch-depth: 0 - name: Setup Tools uses: tanstack/config/.github/setup@main - name: Fix formatting diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 611a6b7d93..8b120916ad 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -1,4 +1,4 @@ -name: pr +name: PR on: pull_request: @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Start Nx Agents @@ -30,7 +30,7 @@ jobs: - name: Setup Tools uses: tanstack/config/.github/setup@main - name: Get base and head commits for `nx affected` - uses: nrwl/nx-set-shas@v4.1.2 + uses: nrwl/nx-set-shas@v4.3.3 with: main-branch-name: main - name: Run Checks @@ -51,7 +51,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Setup Tools diff --git a/.github/workflows/ci.yml b/.github/workflows/release.yml similarity index 94% rename from .github/workflows/ci.yml rename to .github/workflows/release.yml index 466fa20d62..9f2028696d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/release.yml @@ -21,13 +21,13 @@ permissions: id-token: write jobs: - test-and-publish: - name: Test & Publish + release: + name: Release if: github.repository_owner == 'TanStack' runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Start Nx Agents diff --git a/package.json b/package.json index c32c5488a1..ba607f0c1b 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "https://github.com/TanStack/query.git" }, - "packageManager": "pnpm@10.16.1", + "packageManager": "pnpm@10.17.0", "type": "module", "scripts": { "clean": "pnpm --filter \"./packages/**\" run clean", From cd4ef5c304ebf206e4b1e836fffae30027d236b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:06:26 +0900 Subject: [PATCH 419/432] chore(deps): update marocchino/sticky-pull-request-comment digest to fd19551 (#9674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8b120916ad..a746fb0de5 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -65,7 +65,7 @@ jobs: run: | echo "COMMIT_SHA=${{ github.event.pull_request.head.sha || github.sha }}" >> $GITHUB_ENV - name: Preview Bundle Size - uses: marocchino/sticky-pull-request-comment@a071bc9e79df3f13d7cd94d06ab2ef1ec959e9fa + uses: marocchino/sticky-pull-request-comment@fd19551a2a7c0d29677c63257f86d8ef8bb24b48 with: message: | Sizes for commit ${{ env.COMMIT_SHA }}: From 49243c852b00989955b0361c395771989bb7283d Mon Sep 17 00:00:00 2001 From: hriday330 Date: Sun, 21 Sep 2025 23:38:52 -0700 Subject: [PATCH 420/432] fix(vue-query): Support infiniteQueryOptions for MaybeRef argument (#9634) * test(vue-query): add type-check test for useInfiniteQuery with infiniteQueryOptions * fix(vue-query): wrap useInfiniteQuery options in MaybeRefOrGetter * remove type problem example * test(vue-query): add test for plain options getter * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Damian Osipiuk --- .../src/__tests__/useInfiniteQuery.test-d.tsx | 32 ++++++++++++++++ packages/vue-query/src/useBaseQuery.ts | 17 +++++---- packages/vue-query/src/useInfiniteQuery.ts | 38 +++++++++---------- 3 files changed, 61 insertions(+), 26 deletions(-) diff --git a/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx b/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx index a835e20fbc..9163cd2482 100644 --- a/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx +++ b/packages/vue-query/src/__tests__/useInfiniteQuery.test-d.tsx @@ -2,6 +2,7 @@ import { describe, expectTypeOf, it } from 'vitest' import { computed, reactive } from 'vue-demi' import { sleep } from '@tanstack/query-test-utils' import { useInfiniteQuery } from '../useInfiniteQuery' +import { infiniteQueryOptions } from '../infiniteQueryOptions' import type { InfiniteData } from '@tanstack/query-core' describe('Discriminated union return type', () => { @@ -95,4 +96,35 @@ describe('Discriminated union return type', () => { expectTypeOf(query.data).toEqualTypeOf>() } }) + + it('should accept computed options using infiniteQueryOptions', () => { + const options = computed(() => + infiniteQueryOptions({ + queryKey: ['infiniteQuery'], + queryFn: () => sleep(0).then(() => 'Some data'), + getNextPageParam: () => undefined, + initialPageParam: 0, + }), + ) + const query = reactive(useInfiniteQuery(options)) + + if (query.isSuccess) { + expectTypeOf(query.data).toEqualTypeOf>() + } + }) + + it('should accept plain options using infiniteQueryOptions', () => { + const options = () => + infiniteQueryOptions({ + queryKey: ['infiniteQuery'], + queryFn: () => sleep(0).then(() => 'Some data'), + getNextPageParam: () => undefined, + initialPageParam: 0, + }) + const query = reactive(useInfiniteQuery(options)) + + if (query.isSuccess) { + expectTypeOf(query.data).toEqualTypeOf>() + } + }) }) diff --git a/packages/vue-query/src/useBaseQuery.ts b/packages/vue-query/src/useBaseQuery.ts index 1b6786837b..2e9963e5f6 100644 --- a/packages/vue-query/src/useBaseQuery.ts +++ b/packages/vue-query/src/useBaseQuery.ts @@ -22,6 +22,7 @@ import type { import type { QueryClient } from './queryClient' import type { UseQueryOptions } from './useQuery' import type { UseInfiniteQueryOptions } from './useInfiniteQuery' +import type { MaybeRefOrGetter } from './types' export type UseBaseQueryReturnType< TData, @@ -58,13 +59,15 @@ export function useBaseQuery< TPageParam, >( Observer: typeof QueryObserver, - options: UseQueryOptionsGeneric< - TQueryFnData, - TError, - TData, - TQueryData, - TQueryKey, - TPageParam + options: MaybeRefOrGetter< + UseQueryOptionsGeneric< + TQueryFnData, + TError, + TData, + TQueryData, + TQueryKey, + TPageParam + > >, queryClient?: QueryClient, ): UseBaseQueryReturnType { diff --git a/packages/vue-query/src/useInfiniteQuery.ts b/packages/vue-query/src/useInfiniteQuery.ts index c8282ea9c1..99c14c8648 100644 --- a/packages/vue-query/src/useInfiniteQuery.ts +++ b/packages/vue-query/src/useInfiniteQuery.ts @@ -72,12 +72,14 @@ export function useInfiniteQuery< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, >( - options: DefinedInitialDataInfiniteOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam + options: MaybeRefOrGetter< + DefinedInitialDataInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > >, queryClient?: QueryClient, ): UseInfiniteQueryReturnType @@ -89,12 +91,14 @@ export function useInfiniteQuery< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, >( - options: UndefinedInitialDataInfiniteOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam + options: MaybeRefOrGetter< + UndefinedInitialDataInfiniteOptions< + TQueryFnData, + TError, + TData, + TQueryKey, + TPageParam + > >, queryClient?: QueryClient, ): UseInfiniteQueryReturnType @@ -106,18 +110,14 @@ export function useInfiniteQuery< TQueryKey extends QueryKey = QueryKey, TPageParam = unknown, >( - options: UseInfiniteQueryOptions< - TQueryFnData, - TError, - TData, - TQueryKey, - TPageParam + options: MaybeRefOrGetter< + UseInfiniteQueryOptions >, queryClient?: QueryClient, ): UseInfiniteQueryReturnType export function useInfiniteQuery( - options: UseInfiniteQueryOptions, + options: MaybeRefOrGetter, queryClient?: QueryClient, ) { return useBaseQuery( From fcd23c9b1ac007b1ed5a52ebd973093fbee5728d Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Mon, 22 Sep 2025 06:41:39 +0000 Subject: [PATCH 421/432] release: v5.90.1 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 6 +++--- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 10 +++++----- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 10 +++++----- .../react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 6 +++--- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-experimental/package.json | 2 +- packages/eslint-plugin-query/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- .../query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-devtools/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 78 files changed, 137 insertions(+), 137 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index b1190e1b09..c2ff831abb 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index a313767ff8..de0f84c3ad 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.89.0", + "@tanstack/query-async-storage-persister": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 12f0418c56..870dd66412 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 51d3b04304..6b5d509c61 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index 3284fc952f..b0a9943036 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 9adbfece09..7286a46c2c 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 78f21df20e..7abc1e9c9f 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index a84be9ba06..7837029814 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index fa1285b3ae..7d5babdb3d 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 14aa1c4dbc..3e87d9ff07 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 68acdd7dd0..2abecec0d4 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.0", + "@tanstack/angular-query-experimental": "^5.90.1", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index 87cd407b28..a02be463c3 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,13 +9,13 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.89.0", + "@tanstack/eslint-plugin-query": "^5.90.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 148074307c..71a4ba1c7e 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 60397dc1ff..9006e5bf68 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 565fbdd535..4868754c60 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,15 +9,15 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.89.0", - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", - "@tanstack/react-query-persist-client": "^5.89.0", + "@tanstack/query-async-storage-persister": "^5.90.1", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query-persist-client": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.89.0", + "@tanstack/eslint-plugin-query": "^5.90.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index ab6c7d152a..47ba374aca 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 61ac6b4e78..4ce245864b 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index ad0e190935..d009e3823a 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index e0cae79304..ba581bc378 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,15 +9,15 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.89.0", - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", - "@tanstack/react-query-persist-client": "^5.89.0", + "@tanstack/query-async-storage-persister": "^5.90.1", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query-persist-client": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.89.0", + "@tanstack/eslint-plugin-query": "^5.90.1", "@types/react": "^18.2.79", "@types/react-dom": "^18.2.25", "@vitejs/plugin-react": "^4.3.4", diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index 783a7c1547..dbc984a9b1 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index b96699eeb6..250bc5440b 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index 338125a206..b7fbb854e8 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index c3a88ee739..e4444cf145 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", - "@tanstack/react-query-next-experimental": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query-next-experimental": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 46abca0a7b..2f96b1cfdd 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index ee175da661..95e5704850 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.89.0", + "@tanstack/query-async-storage-persister": "^5.90.1", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", - "@tanstack/react-query-persist-client": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query-persist-client": "^5.90.1", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index b2b2340cba..418bb18248 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 9ec96498c7..58401dca4a 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index efe9c6119a..0e52d26948 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 70bb136bb0..7de0d59d40 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 4461cba176..4f858397a1 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 73079d88f5..720c3626d7 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index a0b5e69603..e21705f554 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 454ccfc8bc..534a78847b 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 1840a04d55..992acaa0ac 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 4edf73184b..87c8a96f88 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index b06cb616f3..c4b97cca78 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 13b7285126..1586b91516 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.89.0", - "@tanstack/react-query-devtools": "^5.89.0", + "@tanstack/react-query": "^5.90.1", + "@tanstack/react-query-devtools": "^5.90.1", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index e1567026cd..a3feb6056a 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.89.0", - "@tanstack/solid-query-devtools": "^5.89.0", + "@tanstack/solid-query": "^5.90.1", + "@tanstack/solid-query-devtools": "^5.90.1", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index 5e7c2ac0bb..b4cb08eb0d 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.89.0", - "@tanstack/solid-query-devtools": "^5.89.0", + "@tanstack/solid-query": "^5.90.1", + "@tanstack/solid-query-devtools": "^5.90.1", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 695ebb33cf..eef7e705fb 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.89.0", - "@tanstack/solid-query-devtools": "^5.89.0", + "@tanstack/solid-query": "^5.90.1", + "@tanstack/solid-query-devtools": "^5.90.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index ccbda60569..571888d2c5 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.89.0", - "@tanstack/solid-query-devtools": "^5.89.0", + "@tanstack/solid-query": "^5.90.1", + "@tanstack/solid-query-devtools": "^5.90.1", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index cb86b6efa1..512f5d19d4 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,12 +8,12 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.89.0", - "@tanstack/solid-query-devtools": "^5.89.0", + "@tanstack/solid-query": "^5.90.1", + "@tanstack/solid-query-devtools": "^5.90.1", "solid-js": "^1.9.7" }, "devDependencies": { - "@tanstack/eslint-plugin-query": "^5.89.0", + "@tanstack/eslint-plugin-query": "^5.90.1", "typescript": "5.8.3", "vite": "^6.3.6", "vite-plugin-solid": "^2.11.6" diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index f5c6fe3c56..0590018f19 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.89.0", - "@tanstack/solid-query-devtools": "^5.89.0", + "@tanstack/solid-query": "^5.90.1", + "@tanstack/solid-query-devtools": "^5.90.1", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 4c46c263ad..10c0a5e9de 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0" + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index e95d7690ce..d7c3d4d995 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.89.0", - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0", - "@tanstack/svelte-query-persist-client": "^5.89.0" + "@tanstack/query-async-storage-persister": "^5.90.1", + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1", + "@tanstack/svelte-query-persist-client": "^5.90.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index ee8ffac454..4bf517cad2 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0" + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index 62631fc964..edddec5bfa 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0" + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index a6634c1b20..9c69cfa80f 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0" + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index b8a2ac631a..12268eb991 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0" + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index c389814b4b..3ab3f70326 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0" + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 71ff579bb0..81e67e1634 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.89.0", - "@tanstack/svelte-query-devtools": "^5.89.0" + "@tanstack/svelte-query": "^5.90.1", + "@tanstack/svelte-query-devtools": "^5.90.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 47fc5a2a8b..6abf7e1dba 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.89.0", + "@tanstack/vue-query": "^5.90.1", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 5729e895c9..2ae6fc173c 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.89.0", + "@tanstack/vue-query": "^5.90.1", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 2811fb65de..08bcbc6ed6 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.89.0", - "@tanstack/vue-query-devtools": "^5.89.0", + "@tanstack/vue-query": "^5.90.1", + "@tanstack/vue-query-devtools": "^5.90.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index 41c6a2bd8c..d2a4e24ce4 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.89.0", + "@tanstack/vue-query": "^5.90.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index cc6a578de4..dfae70f78e 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.89.0" + "@tanstack/vue-query": "^5.90.1" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index c3541617fa..47f90e3ca5 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.89.0", - "@tanstack/query-persist-client-core": "^5.89.0", - "@tanstack/query-sync-storage-persister": "^5.89.0", - "@tanstack/vue-query": "^5.89.0", + "@tanstack/query-core": "^5.90.1", + "@tanstack/query-persist-client-core": "^5.90.1", + "@tanstack/query-sync-storage-persister": "^5.90.1", + "@tanstack/vue-query": "^5.90.1", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 96922de3b0..7ef5bc83c9 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.89.0", - "@tanstack/vue-query-devtools": "^5.89.0", + "@tanstack/vue-query": "^5.90.1", + "@tanstack/vue-query-devtools": "^5.90.1", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 0f00efc012..9b0e584896 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.90.0", + "version": "5.90.1", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/eslint-plugin-query/package.json b/packages/eslint-plugin-query/package.json index d9c2ec1d26..7d00965c9e 100644 --- a/packages/eslint-plugin-query/package.json +++ b/packages/eslint-plugin-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/eslint-plugin-query", - "version": "5.89.0", + "version": "5.90.1", "description": "ESLint plugin for TanStack Query", "author": "Eliya Cohen", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index c398621e77..fb26fcdf3c 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.89.0", + "version": "5.90.1", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 599d1e5196..826aae1971 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.89.0", + "version": "5.90.1", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 188b77822e..6cde2baae3 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.89.0", + "version": "5.90.1", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-devtools/package.json b/packages/query-devtools/package.json index 1fc54bbc0d..0509084fbe 100644 --- a/packages/query-devtools/package.json +++ b/packages/query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-devtools", - "version": "5.87.3", + "version": "5.90.1", "description": "Developer tools to interact with and visualize the TanStack Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index be3ebfeddc..d4f99e15e4 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.89.0", + "version": "5.90.1", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index f301987095..3fa22ffa77 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.89.0", + "version": "5.90.1", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index c5529c8ba6..0987921780 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.89.0", + "version": "5.90.1", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index e31f5e2432..4e09da87d0 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.89.0", + "version": "5.90.1", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 51faba60d1..02162a5ccb 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.89.0", + "version": "5.90.1", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 20cd1f784a..0102f40965 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.89.0", + "version": "5.90.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 80fd5c7b1d..c91d2b405c 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.89.0", + "version": "5.90.1", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index 6210a7d902..e4490ba73b 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.89.0", + "version": "5.90.1", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 220bcc54d4..8c7359490a 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.89.0", + "version": "5.90.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index db4cdd7a7d..8393153a9c 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.89.0", + "version": "5.90.1", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index ebaab28389..eb0fe8bb42 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.89.0", + "version": "5.90.1", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 9877537f39..68d5d86df5 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.89.0", + "version": "5.90.1", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 0ca2af9ffb..8c003e0382 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.89.0", + "version": "5.90.1", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index adfa23f5f8..67a2e2dcfc 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.89.0", + "version": "5.90.1", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 2cf3ec9eda9220f39acfeb427f737958b8c91b2a Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Tue, 23 Sep 2025 09:35:49 +0200 Subject: [PATCH 422/432] fix(types): onMutateResult is always defined in onSuccess callback (#9677) * fix(types): onMutateResult is always defined in onSuccess callback this is guaranteed because if onMutate fails or rejects, onSuccess is never called. if onMutate is not present, the type will be unknown * chore: fix tests --- .../src/__tests__/mutation-options.test-d.ts | 4 +- .../src/__tests__/mutation.test-d.tsx | 96 +++++++++++++++++++ packages/query-core/src/mutation.ts | 2 +- packages/query-core/src/types.ts | 4 +- .../src/__tests__/mutationOptions.test-d.tsx | 4 +- 5 files changed, 101 insertions(+), 9 deletions(-) create mode 100644 packages/query-core/src/__tests__/mutation.test-d.tsx diff --git a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts index 55837e61c4..968eda7b30 100644 --- a/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/mutation-options.test-d.ts @@ -67,9 +67,7 @@ describe('mutationOptions', () => { return { name: 'onMutateResult' } }, onSuccess: (_data, _variables, onMutateResult) => { - expectTypeOf(onMutateResult).toEqualTypeOf< - { name: string } | undefined - >() + expectTypeOf(onMutateResult).toEqualTypeOf<{ name: string }>() }, }) }) diff --git a/packages/query-core/src/__tests__/mutation.test-d.tsx b/packages/query-core/src/__tests__/mutation.test-d.tsx new file mode 100644 index 0000000000..49397c3962 --- /dev/null +++ b/packages/query-core/src/__tests__/mutation.test-d.tsx @@ -0,0 +1,96 @@ +import { describe, expectTypeOf, it } from 'vitest' +import { QueryClient } from '../queryClient' +import { MutationObserver } from '../mutationObserver' + +describe('mutation', () => { + describe('onMutate', () => { + it('should have onMutateResult undefined if undefined is explicitly returned', () => { + new MutationObserver(new QueryClient(), { + mutationFn: (variables: number) => { + return Promise.resolve(String(variables)) + }, + onMutate: () => { + return undefined + }, + onSuccess: (data, variables, onMutateResult) => { + expectTypeOf(data).toEqualTypeOf() + expectTypeOf(variables).toEqualTypeOf() + expectTypeOf(onMutateResult).toEqualTypeOf() + }, + onError: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf() + }, + onSettled: (_data, _error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf() + }, + }) + }) + + it('should have unknown onMutateResult if onMutate is left out', () => { + new MutationObserver(new QueryClient(), { + mutationFn: (variables: number) => { + return Promise.resolve(String(variables)) + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf() + }, + onError: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf() + }, + onSettled: (_data, _error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf() + }, + }) + }) + + it('should infer onMutateResult', () => { + new MutationObserver(new QueryClient(), { + mutationFn: (variables: number) => { + return Promise.resolve(String(variables)) + }, + onMutate: () => { + return Promise.resolve({ foo: 'bar' }) + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf<{ foo: string }>() + }, + onError: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { foo: string } | undefined + >() + }, + onSettled: (_data, _error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { foo: string } | undefined + >() + }, + }) + }) + + it('should include undefined in the union if explicitly returned', () => { + new MutationObserver(new QueryClient(), { + mutationFn: (variables: number) => { + return Promise.resolve(String(variables)) + }, + onMutate: () => { + return Math.random() > 0.5 ? { foo: 'bar' } : undefined + }, + onSuccess: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { foo: string } | undefined + >() + }, + onError: (_data, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { foo: string } | undefined + >() + }, + onSettled: (_data, _error, _variables, onMutateResult) => { + expectTypeOf(onMutateResult).toEqualTypeOf< + { foo: string } | undefined + >() + }, + }) + }) + }) +}) diff --git a/packages/query-core/src/mutation.ts b/packages/query-core/src/mutation.ts index 4d04626088..a6b68699eb 100644 --- a/packages/query-core/src/mutation.ts +++ b/packages/query-core/src/mutation.ts @@ -244,7 +244,7 @@ export class Mutation< await this.options.onSuccess?.( data, variables, - this.state.context, + this.state.context!, mutationFnContext, ) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 54c1764477..2c56280e03 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -1113,11 +1113,11 @@ export interface MutationOptions< onMutate?: ( variables: TVariables, context: MutationFunctionContext, - ) => Promise | TOnMutateResult | undefined + ) => Promise | TOnMutateResult onSuccess?: ( data: TData, variables: TVariables, - onMutateResult: TOnMutateResult | undefined, + onMutateResult: TOnMutateResult, context: MutationFunctionContext, ) => Promise | unknown onError?: ( diff --git a/packages/react-query/src/__tests__/mutationOptions.test-d.tsx b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx index c411fe9dff..2988426d65 100644 --- a/packages/react-query/src/__tests__/mutationOptions.test-d.tsx +++ b/packages/react-query/src/__tests__/mutationOptions.test-d.tsx @@ -63,9 +63,7 @@ describe('mutationOptions', () => { return { name: 'onMutateResult' } }, onSuccess: (_data, _variables, onMutateResult) => { - expectTypeOf(onMutateResult).toEqualTypeOf< - { name: string } | undefined - >() + expectTypeOf(onMutateResult).toEqualTypeOf<{ name: string }>() }, }) }) From 0eaafe08212f1caceb67259046c53d9b1a1a4f9b Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Tue, 23 Sep 2025 07:38:07 +0000 Subject: [PATCH 423/432] release: v5.90.2 --- examples/angular/auto-refetching/package.json | 2 +- examples/angular/basic-persister/package.json | 4 ++-- examples/angular/basic/package.json | 2 +- examples/angular/devtools-panel/package.json | 2 +- .../angular/infinite-query-with-max-pages/package.json | 2 +- examples/angular/optimistic-updates/package.json | 2 +- examples/angular/pagination/package.json | 2 +- .../angular/query-options-from-a-service/package.json | 2 +- examples/angular/router/package.json | 2 +- examples/angular/rxjs/package.json | 2 +- examples/angular/simple/package.json | 2 +- examples/react/algolia/package.json | 4 ++-- examples/react/auto-refetching/package.json | 4 ++-- examples/react/basic-graphql-request/package.json | 4 ++-- examples/react/basic/package.json | 8 ++++---- examples/react/chat/package.json | 4 ++-- examples/react/default-query-function/package.json | 4 ++-- examples/react/devtools-panel/package.json | 4 ++-- examples/react/eslint-legacy/package.json | 8 ++++---- examples/react/infinite-query-with-max-pages/package.json | 4 ++-- examples/react/load-more-infinite-scroll/package.json | 4 ++-- examples/react/nextjs-app-prefetching/package.json | 4 ++-- examples/react/nextjs-suspense-streaming/package.json | 6 +++--- examples/react/nextjs/package.json | 4 ++-- examples/react/offline/package.json | 8 ++++---- examples/react/optimistic-updates-cache/package.json | 4 ++-- examples/react/optimistic-updates-ui/package.json | 4 ++-- examples/react/pagination/package.json | 4 ++-- examples/react/playground/package.json | 4 ++-- examples/react/prefetching/package.json | 4 ++-- examples/react/react-native/package.json | 4 ++-- examples/react/react-router/package.json | 4 ++-- examples/react/rick-morty/package.json | 4 ++-- examples/react/shadow-dom/package.json | 4 ++-- examples/react/simple/package.json | 4 ++-- examples/react/star-wars/package.json | 4 ++-- examples/react/suspense/package.json | 4 ++-- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- examples/svelte/auto-refetching/package.json | 4 ++-- examples/svelte/basic/package.json | 8 ++++---- examples/svelte/load-more-infinite-scroll/package.json | 4 ++-- examples/svelte/optimistic-updates/package.json | 4 ++-- examples/svelte/playground/package.json | 4 ++-- examples/svelte/simple/package.json | 4 ++-- examples/svelte/ssr/package.json | 4 ++-- examples/svelte/star-wars/package.json | 4 ++-- examples/vue/2.6-basic/package.json | 2 +- examples/vue/2.7-basic/package.json | 2 +- examples/vue/basic/package.json | 4 ++-- examples/vue/dependent-queries/package.json | 2 +- examples/vue/nuxt3/package.json | 2 +- examples/vue/persister/package.json | 8 ++++---- examples/vue/simple/package.json | 4 ++-- packages/angular-query-experimental/package.json | 2 +- packages/query-async-storage-persister/package.json | 2 +- packages/query-broadcast-client-experimental/package.json | 2 +- packages/query-core/package.json | 2 +- packages/query-persist-client-core/package.json | 2 +- packages/query-sync-storage-persister/package.json | 2 +- packages/react-query-devtools/package.json | 2 +- packages/react-query-next-experimental/package.json | 2 +- packages/react-query-persist-client/package.json | 2 +- packages/react-query/package.json | 2 +- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- packages/svelte-query-devtools/package.json | 2 +- packages/svelte-query-persist-client/package.json | 2 +- packages/svelte-query/package.json | 2 +- packages/vue-query-devtools/package.json | 2 +- packages/vue-query/package.json | 2 +- 76 files changed, 131 insertions(+), 131 deletions(-) diff --git a/examples/angular/auto-refetching/package.json b/examples/angular/auto-refetching/package.json index c2ff831abb..5fcb4c7ef1 100644 --- a/examples/angular/auto-refetching/package.json +++ b/examples/angular/auto-refetching/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic-persister/package.json b/examples/angular/basic-persister/package.json index de0f84c3ad..68f41f8322 100644 --- a/examples/angular/basic-persister/package.json +++ b/examples/angular/basic-persister/package.json @@ -13,9 +13,9 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "@tanstack/angular-query-persist-client": "^5.62.7", - "@tanstack/query-async-storage-persister": "^5.90.1", + "@tanstack/query-async-storage-persister": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/basic/package.json b/examples/angular/basic/package.json index 870dd66412..e5d1195eb7 100644 --- a/examples/angular/basic/package.json +++ b/examples/angular/basic/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/devtools-panel/package.json b/examples/angular/devtools-panel/package.json index 6b5d509c61..6d38ae24dc 100644 --- a/examples/angular/devtools-panel/package.json +++ b/examples/angular/devtools-panel/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/infinite-query-with-max-pages/package.json b/examples/angular/infinite-query-with-max-pages/package.json index b0a9943036..f364bbfc6e 100644 --- a/examples/angular/infinite-query-with-max-pages/package.json +++ b/examples/angular/infinite-query-with-max-pages/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/optimistic-updates/package.json b/examples/angular/optimistic-updates/package.json index 7286a46c2c..f9e30a0155 100644 --- a/examples/angular/optimistic-updates/package.json +++ b/examples/angular/optimistic-updates/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/pagination/package.json b/examples/angular/pagination/package.json index 7abc1e9c9f..545da60071 100644 --- a/examples/angular/pagination/package.json +++ b/examples/angular/pagination/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/query-options-from-a-service/package.json b/examples/angular/query-options-from-a-service/package.json index 7837029814..da59072bb3 100644 --- a/examples/angular/query-options-from-a-service/package.json +++ b/examples/angular/query-options-from-a-service/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/router/package.json b/examples/angular/router/package.json index 7d5babdb3d..436896f9a2 100644 --- a/examples/angular/router/package.json +++ b/examples/angular/router/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", "@angular/router": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/rxjs/package.json b/examples/angular/rxjs/package.json index 3e87d9ff07..9758199840 100644 --- a/examples/angular/rxjs/package.json +++ b/examples/angular/rxjs/package.json @@ -14,7 +14,7 @@ "@angular/core": "^20.0.0", "@angular/forms": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/angular/simple/package.json b/examples/angular/simple/package.json index 2abecec0d4..f273acb4cc 100644 --- a/examples/angular/simple/package.json +++ b/examples/angular/simple/package.json @@ -13,7 +13,7 @@ "@angular/compiler": "^20.0.0", "@angular/core": "^20.0.0", "@angular/platform-browser": "^20.0.0", - "@tanstack/angular-query-experimental": "^5.90.1", + "@tanstack/angular-query-experimental": "^5.90.2", "rxjs": "^7.8.2", "tslib": "^2.8.1", "zone.js": "0.15.0" diff --git a/examples/react/algolia/package.json b/examples/react/algolia/package.json index a02be463c3..b7eae21376 100644 --- a/examples/react/algolia/package.json +++ b/examples/react/algolia/package.json @@ -9,8 +9,8 @@ }, "dependencies": { "@algolia/client-search": "5.2.1", - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/auto-refetching/package.json b/examples/react/auto-refetching/package.json index 71a4ba1c7e..ecd3156208 100644 --- a/examples/react/auto-refetching/package.json +++ b/examples/react/auto-refetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/basic-graphql-request/package.json b/examples/react/basic-graphql-request/package.json index 9006e5bf68..8dc4fc9b05 100644 --- a/examples/react/basic-graphql-request/package.json +++ b/examples/react/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "react": "^19.0.0", diff --git a/examples/react/basic/package.json b/examples/react/basic/package.json index 4868754c60..4c030ad514 100644 --- a/examples/react/basic/package.json +++ b/examples/react/basic/package.json @@ -9,10 +9,10 @@ "test:eslint": "eslint ./src" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.1", - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", - "@tanstack/react-query-persist-client": "^5.90.1", + "@tanstack/query-async-storage-persister": "^5.90.2", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", + "@tanstack/react-query-persist-client": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/chat/package.json b/examples/react/chat/package.json index 47ba374aca..454c8ddfe3 100644 --- a/examples/react/chat/package.json +++ b/examples/react/chat/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/default-query-function/package.json b/examples/react/default-query-function/package.json index 4ce245864b..f9481ff85a 100644 --- a/examples/react/default-query-function/package.json +++ b/examples/react/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/devtools-panel/package.json b/examples/react/devtools-panel/package.json index d009e3823a..ec95285bcc 100644 --- a/examples/react/devtools-panel/package.json +++ b/examples/react/devtools-panel/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/eslint-legacy/package.json b/examples/react/eslint-legacy/package.json index ba581bc378..83d3ec1a69 100644 --- a/examples/react/eslint-legacy/package.json +++ b/examples/react/eslint-legacy/package.json @@ -9,10 +9,10 @@ "test:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint ./src/**/*.tsx" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.1", - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", - "@tanstack/react-query-persist-client": "^5.90.1", + "@tanstack/query-async-storage-persister": "^5.90.2", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", + "@tanstack/react-query-persist-client": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/infinite-query-with-max-pages/package.json b/examples/react/infinite-query-with-max-pages/package.json index dbc984a9b1..a1e8645d2e 100644 --- a/examples/react/infinite-query-with-max-pages/package.json +++ b/examples/react/infinite-query-with-max-pages/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/load-more-infinite-scroll/package.json b/examples/react/load-more-infinite-scroll/package.json index 250bc5440b..bef04b0e48 100644 --- a/examples/react/load-more-infinite-scroll/package.json +++ b/examples/react/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/react/nextjs-app-prefetching/package.json b/examples/react/nextjs-app-prefetching/package.json index b7fbb854e8..8276aac9ff 100644 --- a/examples/react/nextjs-app-prefetching/package.json +++ b/examples/react/nextjs-app-prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/react/nextjs-suspense-streaming/package.json b/examples/react/nextjs-suspense-streaming/package.json index e4444cf145..05b4f95568 100644 --- a/examples/react/nextjs-suspense-streaming/package.json +++ b/examples/react/nextjs-suspense-streaming/package.json @@ -8,9 +8,9 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", - "@tanstack/react-query-next-experimental": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", + "@tanstack/react-query-next-experimental": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/nextjs/package.json b/examples/react/nextjs/package.json index 2f96b1cfdd..9b92f7d0ce 100644 --- a/examples/react/nextjs/package.json +++ b/examples/react/nextjs/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/offline/package.json b/examples/react/offline/package.json index 95e5704850..d9084c5a6d 100644 --- a/examples/react/offline/package.json +++ b/examples/react/offline/package.json @@ -8,11 +8,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.1", + "@tanstack/query-async-storage-persister": "^5.90.2", "@tanstack/react-location": "^3.7.4", - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", - "@tanstack/react-query-persist-client": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", + "@tanstack/react-query-persist-client": "^5.90.2", "msw": "^2.6.6", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/react/optimistic-updates-cache/package.json b/examples/react/optimistic-updates-cache/package.json index 418bb18248..d28fd41d03 100755 --- a/examples/react/optimistic-updates-cache/package.json +++ b/examples/react/optimistic-updates-cache/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/optimistic-updates-ui/package.json b/examples/react/optimistic-updates-ui/package.json index 58401dca4a..f9c6b8e8bb 100755 --- a/examples/react/optimistic-updates-ui/package.json +++ b/examples/react/optimistic-updates-ui/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/pagination/package.json b/examples/react/pagination/package.json index 0e52d26948..5346140614 100644 --- a/examples/react/pagination/package.json +++ b/examples/react/pagination/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/playground/package.json b/examples/react/playground/package.json index 7de0d59d40..b97c315068 100644 --- a/examples/react/playground/package.json +++ b/examples/react/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/prefetching/package.json b/examples/react/prefetching/package.json index 4f858397a1..428487999d 100644 --- a/examples/react/prefetching/package.json +++ b/examples/react/prefetching/package.json @@ -8,8 +8,8 @@ "start": "next start" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "next": "^15.3.1", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 720c3626d7..a5ecb88f37 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -14,8 +14,8 @@ "@react-native-community/netinfo": "^11.4.1", "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "expo": "^52.0.11", "expo-constants": "^17.0.3", "expo-status-bar": "^2.0.0", diff --git a/examples/react/react-router/package.json b/examples/react/react-router/package.json index e21705f554..d46d8c4245 100644 --- a/examples/react/react-router/package.json +++ b/examples/react/react-router/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "localforage": "^1.10.0", "match-sorter": "^6.3.4", "react": "^19.0.0", diff --git a/examples/react/rick-morty/package.json b/examples/react/rick-morty/package.json index 534a78847b..d7aa9d5a58 100644 --- a/examples/react/rick-morty/package.json +++ b/examples/react/rick-morty/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/shadow-dom/package.json b/examples/react/shadow-dom/package.json index 992acaa0ac..9af5cf0a75 100644 --- a/examples/react/shadow-dom/package.json +++ b/examples/react/shadow-dom/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/simple/package.json b/examples/react/simple/package.json index 87c8a96f88..73ab626c52 100644 --- a/examples/react/simple/package.json +++ b/examples/react/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/examples/react/star-wars/package.json b/examples/react/star-wars/package.json index c4b97cca78..e519611ecf 100644 --- a/examples/react/star-wars/package.json +++ b/examples/react/star-wars/package.json @@ -12,8 +12,8 @@ "@emotion/styled": "^11.13.5", "@mui/material": "^6.1.8", "@mui/styles": "^6.1.8", - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^6.25.1", diff --git a/examples/react/suspense/package.json b/examples/react/suspense/package.json index 1586b91516..da5bf8c5e0 100644 --- a/examples/react/suspense/package.json +++ b/examples/react/suspense/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/react-query": "^5.90.1", - "@tanstack/react-query-devtools": "^5.90.1", + "@tanstack/react-query": "^5.90.2", + "@tanstack/react-query-devtools": "^5.90.2", "font-awesome": "^4.7.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index a3feb6056a..4d74687386 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.90.1", - "@tanstack/solid-query-devtools": "^5.90.1", + "@tanstack/solid-query": "^5.90.2", + "@tanstack/solid-query-devtools": "^5.90.2", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index b4cb08eb0d..bff806503b 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.1", - "@tanstack/solid-query-devtools": "^5.90.1", + "@tanstack/solid-query": "^5.90.2", + "@tanstack/solid-query-devtools": "^5.90.2", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index eef7e705fb..2022c42036 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.1", - "@tanstack/solid-query-devtools": "^5.90.1", + "@tanstack/solid-query": "^5.90.2", + "@tanstack/solid-query-devtools": "^5.90.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index 571888d2c5..f68b8b7abb 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.1", - "@tanstack/solid-query-devtools": "^5.90.1", + "@tanstack/solid-query": "^5.90.2", + "@tanstack/solid-query-devtools": "^5.90.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index 512f5d19d4..a9f7a572aa 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.1", - "@tanstack/solid-query-devtools": "^5.90.1", + "@tanstack/solid-query": "^5.90.2", + "@tanstack/solid-query-devtools": "^5.90.2", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 0590018f19..5a9b502dee 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.90.1", - "@tanstack/solid-query-devtools": "^5.90.1", + "@tanstack/solid-query": "^5.90.2", + "@tanstack/solid-query-devtools": "^5.90.2", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/examples/svelte/auto-refetching/package.json b/examples/svelte/auto-refetching/package.json index 10c0a5e9de..9e10846fb9 100644 --- a/examples/svelte/auto-refetching/package.json +++ b/examples/svelte/auto-refetching/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1" + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/basic/package.json b/examples/svelte/basic/package.json index d7c3d4d995..285a31c2a1 100644 --- a/examples/svelte/basic/package.json +++ b/examples/svelte/basic/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-async-storage-persister": "^5.90.1", - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1", - "@tanstack/svelte-query-persist-client": "^5.90.1" + "@tanstack/query-async-storage-persister": "^5.90.2", + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2", + "@tanstack/svelte-query-persist-client": "^5.90.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/load-more-infinite-scroll/package.json b/examples/svelte/load-more-infinite-scroll/package.json index 4bf517cad2..db9188ad22 100644 --- a/examples/svelte/load-more-infinite-scroll/package.json +++ b/examples/svelte/load-more-infinite-scroll/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1" + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/optimistic-updates/package.json b/examples/svelte/optimistic-updates/package.json index edddec5bfa..d625c0cf72 100644 --- a/examples/svelte/optimistic-updates/package.json +++ b/examples/svelte/optimistic-updates/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1" + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/playground/package.json b/examples/svelte/playground/package.json index 9c69cfa80f..b2f8a40155 100644 --- a/examples/svelte/playground/package.json +++ b/examples/svelte/playground/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1" + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/simple/package.json b/examples/svelte/simple/package.json index 12268eb991..4e4802d838 100644 --- a/examples/svelte/simple/package.json +++ b/examples/svelte/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1" + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.1.1", diff --git a/examples/svelte/ssr/package.json b/examples/svelte/ssr/package.json index 3ab3f70326..2b5402b4d6 100644 --- a/examples/svelte/ssr/package.json +++ b/examples/svelte/ssr/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1" + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/svelte/star-wars/package.json b/examples/svelte/star-wars/package.json index 81e67e1634..3c2d96d08d 100644 --- a/examples/svelte/star-wars/package.json +++ b/examples/svelte/star-wars/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/svelte-query": "^5.90.1", - "@tanstack/svelte-query-devtools": "^5.90.1" + "@tanstack/svelte-query": "^5.90.2", + "@tanstack/svelte-query-devtools": "^5.90.2" }, "devDependencies": { "@sveltejs/adapter-auto": "^6.1.0", diff --git a/examples/vue/2.6-basic/package.json b/examples/vue/2.6-basic/package.json index 6abf7e1dba..661575bba1 100644 --- a/examples/vue/2.6-basic/package.json +++ b/examples/vue/2.6-basic/package.json @@ -8,7 +8,7 @@ "_preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.90.1", + "@tanstack/vue-query": "^5.90.2", "@vue/composition-api": "1.7.2", "vue": "2.6.14", "vue-template-compiler": "2.6.14" diff --git a/examples/vue/2.7-basic/package.json b/examples/vue/2.7-basic/package.json index 2ae6fc173c..4fcdd6f20b 100644 --- a/examples/vue/2.7-basic/package.json +++ b/examples/vue/2.7-basic/package.json @@ -8,7 +8,7 @@ "_serve": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.90.1", + "@tanstack/vue-query": "^5.90.2", "vue": "2.7.16", "vue-template-compiler": "2.7.16" }, diff --git a/examples/vue/basic/package.json b/examples/vue/basic/package.json index 08bcbc6ed6..11e5b4fd11 100644 --- a/examples/vue/basic/package.json +++ b/examples/vue/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.90.1", - "@tanstack/vue-query-devtools": "^5.90.1", + "@tanstack/vue-query": "^5.90.2", + "@tanstack/vue-query-devtools": "^5.90.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/dependent-queries/package.json b/examples/vue/dependent-queries/package.json index d2a4e24ce4..c0dc060e30 100644 --- a/examples/vue/dependent-queries/package.json +++ b/examples/vue/dependent-queries/package.json @@ -8,7 +8,7 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.90.1", + "@tanstack/vue-query": "^5.90.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/examples/vue/nuxt3/package.json b/examples/vue/nuxt3/package.json index dfae70f78e..ffa5d83aea 100644 --- a/examples/vue/nuxt3/package.json +++ b/examples/vue/nuxt3/package.json @@ -7,7 +7,7 @@ "_start": "node .output/server/index.mjs" }, "dependencies": { - "@tanstack/vue-query": "^5.90.1" + "@tanstack/vue-query": "^5.90.2" }, "devDependencies": { "nuxt": "^3.12.4" diff --git a/examples/vue/persister/package.json b/examples/vue/persister/package.json index 47f90e3ca5..848efecfac 100644 --- a/examples/vue/persister/package.json +++ b/examples/vue/persister/package.json @@ -8,10 +8,10 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/query-core": "^5.90.1", - "@tanstack/query-persist-client-core": "^5.90.1", - "@tanstack/query-sync-storage-persister": "^5.90.1", - "@tanstack/vue-query": "^5.90.1", + "@tanstack/query-core": "^5.90.2", + "@tanstack/query-persist-client-core": "^5.90.2", + "@tanstack/query-sync-storage-persister": "^5.90.2", + "@tanstack/vue-query": "^5.90.2", "idb-keyval": "^6.2.1", "vue": "^3.4.27" }, diff --git a/examples/vue/simple/package.json b/examples/vue/simple/package.json index 7ef5bc83c9..c830ab0f81 100644 --- a/examples/vue/simple/package.json +++ b/examples/vue/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/vue-query": "^5.90.1", - "@tanstack/vue-query-devtools": "^5.90.1", + "@tanstack/vue-query": "^5.90.2", + "@tanstack/vue-query-devtools": "^5.90.2", "vue": "^3.4.27" }, "devDependencies": { diff --git a/packages/angular-query-experimental/package.json b/packages/angular-query-experimental/package.json index 9b0e584896..7bc0a606ab 100644 --- a/packages/angular-query-experimental/package.json +++ b/packages/angular-query-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/angular-query-experimental", - "version": "5.90.1", + "version": "5.90.2", "description": "Signals for managing, caching and syncing asynchronous and remote data in Angular", "author": "Arnoud de Vries", "license": "MIT", diff --git a/packages/query-async-storage-persister/package.json b/packages/query-async-storage-persister/package.json index fb26fcdf3c..19ce81430f 100644 --- a/packages/query-async-storage-persister/package.json +++ b/packages/query-async-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-async-storage-persister", - "version": "5.90.1", + "version": "5.90.2", "description": "A persister for asynchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-broadcast-client-experimental/package.json b/packages/query-broadcast-client-experimental/package.json index 826aae1971..3d562c7938 100644 --- a/packages/query-broadcast-client-experimental/package.json +++ b/packages/query-broadcast-client-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-broadcast-client-experimental", - "version": "5.90.1", + "version": "5.90.2", "description": "An experimental plugin to for broadcasting the state of your queryClient between browser tabs/windows", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-core/package.json b/packages/query-core/package.json index 6cde2baae3..e5c3a95aa4 100644 --- a/packages/query-core/package.json +++ b/packages/query-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-core", - "version": "5.90.1", + "version": "5.90.2", "description": "The framework agnostic core that powers TanStack Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-persist-client-core/package.json b/packages/query-persist-client-core/package.json index d4f99e15e4..fed60679bc 100644 --- a/packages/query-persist-client-core/package.json +++ b/packages/query-persist-client-core/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-persist-client-core", - "version": "5.90.1", + "version": "5.90.2", "description": "Set of utilities for interacting with persisters, which can save your queryClient for later use", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/query-sync-storage-persister/package.json b/packages/query-sync-storage-persister/package.json index 3fa22ffa77..87978a0a72 100644 --- a/packages/query-sync-storage-persister/package.json +++ b/packages/query-sync-storage-persister/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/query-sync-storage-persister", - "version": "5.90.1", + "version": "5.90.2", "description": "A persister for synchronous storages, to be used with TanStack/Query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-devtools/package.json b/packages/react-query-devtools/package.json index 0987921780..51f701c3a7 100644 --- a/packages/react-query-devtools/package.json +++ b/packages/react-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-devtools", - "version": "5.90.1", + "version": "5.90.2", "description": "Developer tools to interact with and visualize the TanStack/react-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-next-experimental/package.json b/packages/react-query-next-experimental/package.json index 4e09da87d0..1035b53595 100644 --- a/packages/react-query-next-experimental/package.json +++ b/packages/react-query-next-experimental/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-next-experimental", - "version": "5.90.1", + "version": "5.90.2", "description": "Hydration utils for React Query in the NextJs app directory", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query-persist-client/package.json b/packages/react-query-persist-client/package.json index 02162a5ccb..34dd88ba17 100644 --- a/packages/react-query-persist-client/package.json +++ b/packages/react-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query-persist-client", - "version": "5.90.1", + "version": "5.90.2", "description": "React bindings to work with persisters in TanStack/react-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 0102f40965..54b9616907 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/react-query", - "version": "5.90.1", + "version": "5.90.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index c91d2b405c..2d1259cf9b 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.90.1", + "version": "5.90.2", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index e4490ba73b..e423596490 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.90.1", + "version": "5.90.2", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index 8c7359490a..d7c6c0ee68 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.90.1", + "version": "5.90.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/svelte-query-devtools/package.json b/packages/svelte-query-devtools/package.json index 8393153a9c..fb43371d02 100644 --- a/packages/svelte-query-devtools/package.json +++ b/packages/svelte-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-devtools", - "version": "5.90.1", + "version": "5.90.2", "description": "Developer tools to interact with and visualize the TanStack/svelte-query cache", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query-persist-client/package.json b/packages/svelte-query-persist-client/package.json index eb0fe8bb42..84bc7b96cc 100644 --- a/packages/svelte-query-persist-client/package.json +++ b/packages/svelte-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query-persist-client", - "version": "5.90.1", + "version": "5.90.2", "description": "Svelte bindings to work with persisters in TanStack/svelte-query", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/svelte-query/package.json b/packages/svelte-query/package.json index 68d5d86df5..1a6d8b8755 100644 --- a/packages/svelte-query/package.json +++ b/packages/svelte-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/svelte-query", - "version": "5.90.1", + "version": "5.90.2", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Svelte", "author": "Lachlan Collins", "license": "MIT", diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 8c003e0382..24f1f78543 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query-devtools", - "version": "5.90.1", + "version": "5.90.2", "description": "Developer tools to interact with and visualize the TanStack/vue-query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 67a2e2dcfc..0c5cdac1c0 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/vue-query", - "version": "5.90.1", + "version": "5.90.2", "description": "Hooks for managing, caching and syncing asynchronous and remote data in Vue", "author": "Damian Osipiuk", "license": "MIT", From 865095ddfe0b0c7ed1374bbe9fe2928edeca5767 Mon Sep 17 00:00:00 2001 From: Kaung Zin Hein <83657429+Zen-cronic@users.noreply.github.com> Date: Wed, 24 Sep 2025 07:33:08 -0400 Subject: [PATCH 424/432] fix(solid-query): export `queryOptions` without type errors (#9668) * fix(solid-query): add missing generic error type * refactor(solid-query): remove unused generic type * test(solid-query): add case for error tag --------- Co-authored-by: Dominik Dorfmeister --- .../src/__tests__/queryOptions.test-d.tsx | 15 ++++++++++++++- packages/solid-query/src/queryOptions.ts | 14 ++------------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/solid-query/src/__tests__/queryOptions.test-d.tsx b/packages/solid-query/src/__tests__/queryOptions.test-d.tsx index 6fb6a7c5f2..2ba3a3f6b2 100644 --- a/packages/solid-query/src/__tests__/queryOptions.test-d.tsx +++ b/packages/solid-query/src/__tests__/queryOptions.test-d.tsx @@ -1,5 +1,10 @@ import { assertType, describe, expectTypeOf, it } from 'vitest' -import { QueryClient, dataTagSymbol, skipToken } from '@tanstack/query-core' +import { + QueryClient, + dataTagErrorSymbol, + dataTagSymbol, + skipToken, +} from '@tanstack/query-core' import { useQuery } from '../useQuery' import { queryOptions } from '../queryOptions' @@ -74,6 +79,14 @@ describe('queryOptions', () => { expectTypeOf(queryKey[dataTagSymbol]).toEqualTypeOf() }) + it('should tag the queryKey with the default error type', () => { + const { queryKey } = queryOptions({ + queryKey: ['key'], + queryFn: () => Promise.resolve(1), + }) + + expectTypeOf(queryKey[dataTagErrorSymbol]).toEqualTypeOf() + }) it('should return the proper type when passed to getQueryData', () => { const { queryKey } = queryOptions({ queryKey: ['key'], diff --git a/packages/solid-query/src/queryOptions.ts b/packages/solid-query/src/queryOptions.ts index 06ee764f9d..04bd2b9c80 100644 --- a/packages/solid-query/src/queryOptions.ts +++ b/packages/solid-query/src/queryOptions.ts @@ -29,11 +29,6 @@ export function queryOptions< TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, - TOptions extends ReturnType< - UndefinedInitialDataOptions - > = ReturnType< - UndefinedInitialDataOptions - >, >( options: ReturnType< UndefinedInitialDataOptions @@ -41,7 +36,7 @@ export function queryOptions< ): ReturnType< UndefinedInitialDataOptions > & { - queryKey: DataTag + queryKey: DataTag } export function queryOptions< @@ -49,11 +44,6 @@ export function queryOptions< TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, - TOptions extends ReturnType< - DefinedInitialDataOptions - > = ReturnType< - DefinedInitialDataOptions - >, >( options: ReturnType< DefinedInitialDataOptions @@ -61,7 +51,7 @@ export function queryOptions< ): ReturnType< DefinedInitialDataOptions > & { - queryKey: DataTag + queryKey: DataTag } export function queryOptions(options: unknown) { From 4d8da1e29e97ad5b0c151822d4962849515b4478 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Wed, 24 Sep 2025 11:40:30 +0000 Subject: [PATCH 425/432] release: v5.90.3 --- examples/solid/astro/package.json | 4 ++-- examples/solid/basic-graphql-request/package.json | 4 ++-- examples/solid/basic/package.json | 4 ++-- examples/solid/default-query-function/package.json | 4 ++-- examples/solid/simple/package.json | 4 ++-- examples/solid/solid-start-streaming/package.json | 4 ++-- packages/solid-query-devtools/package.json | 2 +- packages/solid-query-persist-client/package.json | 2 +- packages/solid-query/package.json | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/examples/solid/astro/package.json b/examples/solid/astro/package.json index 4d74687386..fa39924139 100644 --- a/examples/solid/astro/package.json +++ b/examples/solid/astro/package.json @@ -15,8 +15,8 @@ "@astrojs/solid-js": "^5.0.7", "@astrojs/tailwind": "^6.0.2", "@astrojs/vercel": "^8.1.3", - "@tanstack/solid-query": "^5.90.2", - "@tanstack/solid-query-devtools": "^5.90.2", + "@tanstack/solid-query": "^5.90.3", + "@tanstack/solid-query-devtools": "^5.90.3", "astro": "^5.5.6", "solid-js": "^1.9.7", "tailwindcss": "^3.4.7", diff --git a/examples/solid/basic-graphql-request/package.json b/examples/solid/basic-graphql-request/package.json index bff806503b..9ee0a9c42f 100644 --- a/examples/solid/basic-graphql-request/package.json +++ b/examples/solid/basic-graphql-request/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.2", - "@tanstack/solid-query-devtools": "^5.90.2", + "@tanstack/solid-query": "^5.90.3", + "@tanstack/solid-query-devtools": "^5.90.3", "graphql": "^16.9.0", "graphql-request": "^7.1.2", "solid-js": "^1.9.7" diff --git a/examples/solid/basic/package.json b/examples/solid/basic/package.json index 2022c42036..828445c51c 100644 --- a/examples/solid/basic/package.json +++ b/examples/solid/basic/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.2", - "@tanstack/solid-query-devtools": "^5.90.2", + "@tanstack/solid-query": "^5.90.3", + "@tanstack/solid-query-devtools": "^5.90.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/default-query-function/package.json b/examples/solid/default-query-function/package.json index f68b8b7abb..bfeda34e48 100644 --- a/examples/solid/default-query-function/package.json +++ b/examples/solid/default-query-function/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.2", - "@tanstack/solid-query-devtools": "^5.90.2", + "@tanstack/solid-query": "^5.90.3", + "@tanstack/solid-query-devtools": "^5.90.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/simple/package.json b/examples/solid/simple/package.json index a9f7a572aa..1a98b88d2e 100644 --- a/examples/solid/simple/package.json +++ b/examples/solid/simple/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/solid-query": "^5.90.2", - "@tanstack/solid-query-devtools": "^5.90.2", + "@tanstack/solid-query": "^5.90.3", + "@tanstack/solid-query-devtools": "^5.90.3", "solid-js": "^1.9.7" }, "devDependencies": { diff --git a/examples/solid/solid-start-streaming/package.json b/examples/solid/solid-start-streaming/package.json index 5a9b502dee..25b2a09007 100644 --- a/examples/solid/solid-start-streaming/package.json +++ b/examples/solid/solid-start-streaming/package.json @@ -12,8 +12,8 @@ "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.3", "@solidjs/start": "^1.1.3", - "@tanstack/solid-query": "^5.90.2", - "@tanstack/solid-query-devtools": "^5.90.2", + "@tanstack/solid-query": "^5.90.3", + "@tanstack/solid-query-devtools": "^5.90.3", "solid-js": "^1.9.7", "vinxi": "^0.5.3" }, diff --git a/packages/solid-query-devtools/package.json b/packages/solid-query-devtools/package.json index 2d1259cf9b..30583c749a 100644 --- a/packages/solid-query-devtools/package.json +++ b/packages/solid-query-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-devtools", - "version": "5.90.2", + "version": "5.90.3", "description": "Developer tools to interact with and visualize the TanStack/solid-query Query cache", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query-persist-client/package.json b/packages/solid-query-persist-client/package.json index e423596490..60992818de 100644 --- a/packages/solid-query-persist-client/package.json +++ b/packages/solid-query-persist-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query-persist-client", - "version": "5.90.2", + "version": "5.90.3", "description": "Solid.js bindings to work with persisters in TanStack/solid-query", "author": "tannerlinsley", "license": "MIT", diff --git a/packages/solid-query/package.json b/packages/solid-query/package.json index d7c6c0ee68..a5ac718d5b 100644 --- a/packages/solid-query/package.json +++ b/packages/solid-query/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/solid-query", - "version": "5.90.2", + "version": "5.90.3", "description": "Primitives for managing, caching and syncing asynchronous and remote data in Solid", "author": "tannerlinsley", "license": "MIT", From cd290631abacc9aa1f73e18e16f471bb2ceca94e Mon Sep 17 00:00:00 2001 From: Cam Jackson <1930451+camjackson@users.noreply.github.com> Date: Wed, 24 Sep 2025 22:41:36 +1000 Subject: [PATCH 426/432] docs(react-query): add caveat for typing getQueriesData (#9684) --- docs/framework/react/typescript.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/framework/react/typescript.md b/docs/framework/react/typescript.md index d9fe0319ed..59f56d3268 100644 --- a/docs/framework/react/typescript.md +++ b/docs/framework/react/typescript.md @@ -237,6 +237,13 @@ Without `queryOptions`, the type of `data` would be `unknown`, unless we'd pass const data = queryClient.getQueryData(['groups']) ``` +Note that type inference via `queryOptions` does _not_ work for `queryClient.getQueriesData`, because it returns an array of tuples with heterogeneous, `unknown` data. If you are sure of the type of data that your query will return, specify it explicitly: + +```ts +const entries = queryClient.getQueriesData(groupOptions().queryKey) +// ^? const entries: Array<[QueryKey, Group[] | undefined]> +``` + ## Typing Mutation Options Similarly to `queryOptions`, you can use `mutationOptions` to extract mutation options into a separate function: From 7a0f86581b2f10856b4b404eb1dce50a2f1a4247 Mon Sep 17 00:00:00 2001 From: Josiah Nunemaker Date: Wed, 24 Sep 2025 22:05:33 -0400 Subject: [PATCH 427/432] fix(query-core): allow partial query keys in `QueryFilters` and `MutationFilters` Add a type to match tuple prefixes to match partial query keys in `QueryFilters` and `MutationFilters` Fixes tanstack/query#9680 --- packages/query-core/src/types.ts | 10 ++++++++++ packages/query-core/src/utils.ts | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 2c56280e03..526a344d37 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -36,6 +36,16 @@ export type Override = { export type NoInfer = [T][T extends any ? 0 : never] +export type DropLast> = T extends readonly [ + ...infer R, + unknown, +] + ? R + : never + +export type TuplePrefixes> = + T extends readonly [] ? readonly [] : TuplePrefixes> | T + export interface Register { // defaultError: Error // queryMeta: Record diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index 2b46cc1c74..e1f8314f12 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -10,6 +10,7 @@ import type { QueryOptions, StaleTime, StaleTimeFunction, + TuplePrefixes, } from './types' import type { Mutation } from './mutation' import type { FetchOptions, Query } from './query' @@ -32,7 +33,7 @@ export interface QueryFilters { /** * Include queries matching this query key */ - queryKey?: TQueryKey + queryKey?: TuplePrefixes /** * Include or exclude stale queries */ @@ -62,7 +63,7 @@ export interface MutationFilters< /** * Include mutations matching this mutation key */ - mutationKey?: MutationKey + mutationKey?: TuplePrefixes /** * Filter by mutation status */ From a2f2b8acaa7cc502323d69d7853b326f9dfa381a Mon Sep 17 00:00:00 2001 From: Josiah Nunemaker Date: Thu, 25 Sep 2025 10:52:48 -0400 Subject: [PATCH 428/432] test(query-core): add tests for partial QueryKey matching for `QueryFilters` add tests to verify that the new partial QueryKey matching for `QueryFilters` does match partial query keys, and also doesn't allow invalid query keys. --- .../query-core/src/__tests__/utils.test-d.tsx | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/query-core/src/__tests__/utils.test-d.tsx b/packages/query-core/src/__tests__/utils.test-d.tsx index 03a7aebad3..3aacc61b81 100644 --- a/packages/query-core/src/__tests__/utils.test-d.tsx +++ b/packages/query-core/src/__tests__/utils.test-d.tsx @@ -1,4 +1,4 @@ -import { describe, expectTypeOf, it } from 'vitest' +import { assertType, describe, expectTypeOf, it } from 'vitest' import { QueryClient } from '../queryClient' import type { QueryFilters } from '../utils' import type { DataTag, QueryKey } from '../types' @@ -35,11 +35,36 @@ describe('QueryFilters', () => { } const queryClient = new QueryClient() - const data = queryClient.getQueryData(a.queryKey!) expectTypeOf(data).toEqualTypeOf() const error = queryClient.getQueryState(a.queryKey!)?.error expectTypeOf(error).toEqualTypeOf() }) + + it('should allow a partial query key to be passed', () => { + const filters: QueryFilters = { + queryKey: ['key'], + } + + expectTypeOf(filters.queryKey).toEqualTypeOf< + | undefined + | readonly [] + | ['key'] + | readonly [ + 'key', + { + a: number + b: string + }, + ] + >() + }) + + it('should error on invalid query keys', () => { + assertType>({ + // @ts-expect-error cannot pass invalid query key + queryKey: ['invalid', { a: 1, b: '1' }], + }) + }) }) From 09c0c10d4a1a1e03d9981928f89092753f9205c4 Mon Sep 17 00:00:00 2001 From: Josiah Nunemaker Date: Thu, 25 Sep 2025 19:56:08 -0400 Subject: [PATCH 429/432] fix(query-core): move tuple prefix helper types to utils.ts prevent tuple helper types from getting exported, and showing up in the public api --- packages/query-core/src/types.ts | 10 ---------- packages/query-core/src/utils.ts | 12 +++++++++++- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 526a344d37..2c56280e03 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -36,16 +36,6 @@ export type Override = { export type NoInfer = [T][T extends any ? 0 : never] -export type DropLast> = T extends readonly [ - ...infer R, - unknown, -] - ? R - : never - -export type TuplePrefixes> = - T extends readonly [] ? readonly [] : TuplePrefixes> | T - export interface Register { // defaultError: Error // queryMeta: Record diff --git a/packages/query-core/src/utils.ts b/packages/query-core/src/utils.ts index e1f8314f12..1be53edd2d 100644 --- a/packages/query-core/src/utils.ts +++ b/packages/query-core/src/utils.ts @@ -10,13 +10,23 @@ import type { QueryOptions, StaleTime, StaleTimeFunction, - TuplePrefixes, } from './types' import type { Mutation } from './mutation' import type { FetchOptions, Query } from './query' // TYPES +type DropLast> = T extends readonly [ + ...infer R, + unknown, +] + ? R + : never + +type TuplePrefixes> = T extends readonly [] + ? readonly [] + : TuplePrefixes> | T + export interface QueryFilters { /** * Filter to active queries, inactive queries or all queries From 2a15f36576b37e261b366f6984d51a97acdd245b Mon Sep 17 00:00:00 2001 From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> Date: Fri, 26 Sep 2025 17:32:23 +1000 Subject: [PATCH 430/432] ci: introduce changesets (#9502) * ci: introduce changesets * Avoid using changesets/action * Remove PR permission * Update PR template * Update link --- .changeset/config.json | 13 + .github/pull_request_template.md | 13 + .github/workflows/release.yml | 23 +- CONTRIBUTING.md | 76 +---- integrations/angular-cli-20/package.json | 3 +- package.json | 6 +- pnpm-lock.yaml | 386 ++++++++++++++++++++++- scripts/publish.ts | 119 ------- 8 files changed, 415 insertions(+), 224 deletions(-) create mode 100644 .changeset/config.json create mode 100644 .github/pull_request_template.md delete mode 100644 scripts/publish.ts diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000000..0e32a8b571 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", + "changelog": [ + "@svitejs/changesets-changelog-github-compact", + { "repo": "TanStack/query" } + ], + "commit": false, + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "fixed": [], + "linked": [] +} diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..11deb8f95f --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,13 @@ +## ๐ŸŽฏ Changes + + + +## โœ… Checklist + +- [ ] I have followed the steps in the [Contributing guide](https://github.com/TanStack/query/blob/main/CONTRIBUTING.md). +- [ ] I have tested this code locally with `pnpm test:pr`. + +## ๐Ÿš€ Release Impact + +- [ ] This change affects published code, and I have generated a [changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). +- [ ] This change is docs/CI/dev-only (no release). diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9f2028696d..d2dfa41c73 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,11 +1,6 @@ -name: ci +name: Release on: - workflow_dispatch: - inputs: - tag: - description: override release tag - required: false push: branches: [main, alpha, beta, rc, v4] @@ -39,16 +34,20 @@ jobs: - name: Stop Nx Agents if: ${{ always() }} run: npx nx-cloud stop-all-agents - - name: Publish + - name: Version Packages + run: pnpm run changeset:version + - name: Commit version files run: | git config --global user.name 'Tanner Linsley' - git config --global user.email 'tannerlinsley@users.noreply.github.com' - npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" - pnpm run cipublish + git config --global user.email 'tannerlinsley@users.noreply.github.com' git add -A + git commit -m "ci: Version Packages" + git push + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Publish Packages + run: pnpm run changeset:publish env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - TAG: ${{ inputs.tag }} - name: Upload coverage to Codecov uses: codecov/codecov-action@v4.6.0 with: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cb7ff182cc..2d90db264c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -155,79 +155,9 @@ You can use Gitpod (An Online Open Source VS Code like IDE which is free for Ope [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/TanStack/query) -## Commit message conventions +## Changesets -`TanStack/query` is using [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines). - -We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. - -### Commit Message Format - -Each commit message consists of a **header**, a **body** and a **footer**. The header has a special -format that includes a **type**, a **scope** and a **subject**: - -```text -(): - - - -