Repository: TanStack/query
Pull request #9140 (2025-05-11 13:03:03)

feat(query-core, react-query, vue-query): backport v5 some apis to v4
Initialized by https://github.com/TanStack/query/pull/8754 with @danielpza 

I added the v5 backport API to v4 based on the migration guide from [migrating to v5 guide in TanStack Query Official Docs](https://tanstack.com/query/latest/docs/framework/react/guides/migrating-to-v5).

### @tanstack/query-core
1. add MutationObserverBaseResult.isPending
2. tag keepPreviousData `@deprecated`
3. tag jsdoc `@deprecated` on unnecessary function overloads of QueryClient's methods -- isFetching, ensureQueryData, getQueriesData, setQueriesData, removeQueries, resetQueries, cancelQueries, invalidateQueries, refetchQueries, fetchQuery, prefetchQuery, fetchInfiniteQuery, prefetchInfiniteQuery
4. tag jsdoc `@deprecated` on unnecessary function overloads of QueryCache's methods -- find, findAll
5. add function overloads for QueryCache.find(filters)
6. tag jsdoc `@deprecated` on  unnecessary function overloads of useQuery, useInfiniteQuery

### @tanstack/react-query
1. add queryOptions
2. add useSuspenseQuery
3. add useSuspenseQueries

### @tanstack/vue-query
1. add function overloads for QueryCache.find(filters)

I added test cases to guarantee all use cases with these apis backported

nx-cloud[bot]: 
View your [CI Pipeline Execution ↗](https://cloud.nx.app/cipes/6820a0324242b71292fe8224?utm_source=pull-request&utm_medium=comment) for commit 86f4a4963137b85bca446e8766ac0d204703c33b.

---

☁️ [Nx Cloud](https://cloud.nx.app?utm_source=pull-request&utm_medium=comment) last updated this comment at `2025-05-11 13:03:48` UTC

<!-- NX_CLOUD_APP_COMMENT_END -->

Patch:
diff --git a/.nvmrc b/.nvmrc
index fb457f39d..1d9b7831b 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1,1 +1,1 @@
-v16.19.0
+22.12.0
diff --git a/package.json b/package.json
index d9294934c..e2922a45f 100644
--- a/package.json
+++ b/package.json
@@ -75,6 +75,7 @@
     "eslint-plugin-import": "^2.27.5",
     "eslint-plugin-react": "^7.32.2",
     "eslint-plugin-react-hooks": "^4.6.0",
+    "expect-type": "^1.2.1",
     "git-log-parser": "^1.2.0",
     "jest": "^27.5.1",
     "jsonfile": "^6.1.0",
diff --git a/packages/query-core/src/mutationObserver.ts b/packages/query-core/src/mutationObserver.ts
index 5b0c0eba4..93b814d7e 100644
--- a/packages/query-core/src/mutationObserver.ts
+++ b/packages/query-core/src/mutationObserver.ts
@@ -141,6 +141,7 @@ export class MutationObserver<
       ? this.currentMutation.state
       : getDefaultState<TData, TError, TVariables, TContext>()
 
+    const isLoading = state.status === 'loading'
     const result: MutationObserverBaseResult<
       TData,
       TError,
@@ -148,7 +149,8 @@ export class MutationObserver<
       TContext
     > = {
       ...state,
-      isLoading: state.status === 'loading',
+      isLoading,
+      isPending: isLoading,
       isSuccess: state.status === 'success',
       isError: state.status === 'error',
       isIdle: state.status === 'idle',
diff --git a/packages/query-core/src/queryCache.ts b/packages/query-core/src/queryCache.ts
index 91e66e278..47f5159d0 100644
--- a/packages/query-core/src/queryCache.ts
+++ b/packages/query-core/src/queryCache.ts
@@ -4,7 +4,7 @@ import { notifyManager } from './notifyManager'
 import { Subscribable } from './subscribable'
 import type { QueryFilters } from './utils'
 import type { Action, QueryState } from './query'
-import type { NotifyEvent, QueryKey, QueryOptions } from './types'
+import type { NotifyEvent, OmitKeyof, QueryKey, QueryOptions } from './types'
 import type { QueryClient } from './queryClient'
 import type { QueryObserver } from './queryObserver'
 
@@ -166,8 +166,21 @@ export class QueryCache extends Subscribable<QueryCacheListener> {
   }
 
   find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
-    arg1: QueryKey,
-    arg2?: QueryFilters,
+    filters: QueryFilters,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    queryKey: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    arg1: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
   ): Query<TQueryFnData, TError, TData> | undefined {
     const [filters] = parseFilterArgs(arg1, arg2)
 
@@ -178,10 +191,28 @@ export class QueryCache extends Subscribable<QueryCacheListener> {
     return this.queries.find((query) => matchQuery(filters, query))
   }
 
-  findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]
   findAll(filters?: QueryFilters): Query[]
-  findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]
-  findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[] {
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  findAll(
+    queryKey?: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query[]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  findAll(
+    arg1?: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query[]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  findAll(
+    arg1?: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): Query[] {
     const [filters] = parseFilterArgs(arg1, arg2)
     return Object.keys(filters).length > 0
       ? this.queries.filter((query) => matchQuery(filters, query))
diff --git a/packages/query-core/src/queryClient.ts b/packages/query-core/src/queryClient.ts
index cadc1fd0e..81c400289 100644
--- a/packages/query-core/src/queryClient.ts
+++ b/packages/query-core/src/queryClient.ts
@@ -14,6 +14,7 @@ import { onlineManager } from './onlineManager'
 import { notifyManager } from './notifyManager'
 import { infiniteQueryBehavior } from './infiniteQueryBehavior'
 import { defaultLogger } from './logger'
+import type { OmitKeyof } from '@tanstack/query-core'
 import type { CancelOptions, DefaultedQueryObserverOptions } from './types'
 import type { Logger } from './logger'
 import type { QueryState } from './query'
@@ -112,7 +113,16 @@ export class QueryClient {
   }
 
   isFetching(filters?: QueryFilters): number
-  isFetching(queryKey?: QueryKey, filters?: QueryFilters): number
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  isFetching(
+    queryKey?: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): number
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   isFetching(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): number {
     const [filters] = parseFilterArgs(arg1, arg2)
     filters.fetchStatus = 'fetching'
@@ -125,7 +135,20 @@ export class QueryClient {
 
   getQueryData<TQueryFnData = unknown>(
     queryKey: QueryKey,
-    filters?: QueryFilters,
+  ): TQueryFnData | undefined
+  /**
+   * @deprecated This method will accept only queryKey in the next major version.
+   */
+  getQueryData<TQueryFnData = unknown>(
+    queryKey: QueryKey,
+    filters: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): TQueryFnData | undefined
+  /**
+   * @deprecated This method will accept only queryKey in the next major version.
+   */
+  getQueryData<TQueryFnData = unknown>(
+    queryKey: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
   ): TQueryFnData | undefined {
     return this.queryCache.find<TQueryFnData>(queryKey, filters)?.state.data
   }
@@ -141,6 +164,9 @@ export class QueryClient {
       'queryKey'
     >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   ensureQueryData<
     TQueryFnData = unknown,
     TError = unknown,
@@ -148,11 +174,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: Omit<
+    options?: OmitKeyof<
       FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
       'queryKey'
     >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   ensureQueryData<
     TQueryFnData = unknown,
     TError = unknown,
@@ -161,11 +190,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: Omit<
+    options?: OmitKeyof<
       FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
       'queryKey' | 'queryFn'
     >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   ensureQueryData<
     TQueryFnData,
     TError,
@@ -192,11 +224,17 @@ export class QueryClient {
   }
 
   getQueriesData<TQueryFnData = unknown>(
-    queryKey: QueryKey,
+    filters: QueryFilters,
   ): [QueryKey, TQueryFnData | undefined][]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   getQueriesData<TQueryFnData = unknown>(
-    filters: QueryFilters,
+    queryKey: QueryKey,
   ): [QueryKey, TQueryFnData | undefined][]
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   getQueriesData<TQueryFnData = unknown>(
     queryKeyOrFilters: QueryKey | QueryFilters,
   ): [QueryKey, TQueryFnData | undefined][] {
@@ -229,17 +267,21 @@ export class QueryClient {
   }
 
   setQueriesData<TQueryFnData>(
-    queryKey: QueryKey,
+    filters: QueryFilters,
     updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
     options?: SetDataOptions,
   ): [QueryKey, TQueryFnData | undefined][]
-
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   setQueriesData<TQueryFnData>(
-    filters: QueryFilters,
+    queryKey: QueryKey,
     updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
     options?: SetDataOptions,
   ): [QueryKey, TQueryFnData | undefined][]
-
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   setQueriesData<TQueryFnData>(
     queryKeyOrFilters: QueryKey | QueryFilters,
     updater: Updater<TQueryFnData | undefined, TQueryFnData | undefined>,
@@ -257,14 +299,29 @@ export class QueryClient {
 
   getQueryState<TQueryFnData = unknown, TError = undefined>(
     queryKey: QueryKey,
-    filters?: QueryFilters,
+    /**
+     * @deprecated This filters will be removed in the next major version.
+     */
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
   ): QueryState<TQueryFnData, TError> | undefined {
     return this.queryCache.find<TQueryFnData, TError>(queryKey, filters)?.state
   }
 
   removeQueries(filters?: QueryFilters): void
-  removeQueries(queryKey?: QueryKey, filters?: QueryFilters): void
-  removeQueries(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): void {
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  removeQueries(
+    queryKey?: QueryKey,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): void
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
+  removeQueries(
+    arg1?: QueryKey | QueryFilters,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'>,
+  ): void {
     const [filters] = parseFilterArgs(arg1, arg2)
     const queryCache = this.queryCache
     notifyManager.batch(() => {
@@ -278,14 +335,20 @@ export class QueryClient {
     filters?: ResetQueryFilters<TPageData>,
     options?: ResetOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   resetQueries<TPageData = unknown>(
     queryKey?: QueryKey,
-    filters?: ResetQueryFilters<TPageData>,
+    filters?: OmitKeyof<ResetQueryFilters<TPageData>, 'queryKey'>,
     options?: ResetOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   resetQueries(
     arg1?: QueryKey | ResetQueryFilters,
-    arg2?: ResetQueryFilters | ResetOptions,
+    arg2?: OmitKeyof<ResetQueryFilters, 'queryKey'> | ResetOptions,
     arg3?: ResetOptions,
   ): Promise<void> {
     const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -305,14 +368,20 @@ export class QueryClient {
   }
 
   cancelQueries(filters?: QueryFilters, options?: CancelOptions): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   cancelQueries(
     queryKey?: QueryKey,
-    filters?: QueryFilters,
+    filters?: OmitKeyof<QueryFilters, 'queryKey'>,
     options?: CancelOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   cancelQueries(
     arg1?: QueryKey | QueryFilters,
-    arg2?: QueryFilters | CancelOptions,
+    arg2?: OmitKeyof<QueryFilters, 'queryKey'> | CancelOptions,
     arg3?: CancelOptions,
   ): Promise<void> {
     const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3)
@@ -334,14 +403,20 @@ export class QueryClient {
     filters?: InvalidateQueryFilters<TPageData>,
     options?: InvalidateOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   invalidateQueries<TPageData = unknown>(
     queryKey?: QueryKey,
-    filters?: InvalidateQueryFilters<TPageData>,
+    filters?: OmitKeyof<InvalidateQueryFilters<TPageData>, 'queryKey'>,
     options?: InvalidateOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   invalidateQueries(
     arg1?: QueryKey | InvalidateQueryFilters,
-    arg2?: InvalidateQueryFilters | InvalidateOptions,
+    arg2?: OmitKeyof<InvalidateQueryFilters, 'queryKey'> | InvalidateOptions,
     arg3?: InvalidateOptions,
   ): Promise<void> {
     const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -366,14 +441,20 @@ export class QueryClient {
     filters?: RefetchQueryFilters<TPageData>,
     options?: RefetchOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   refetchQueries<TPageData = unknown>(
     queryKey?: QueryKey,
-    filters?: RefetchQueryFilters<TPageData>,
+    filters?: OmitKeyof<RefetchQueryFilters<TPageData>, 'queryKey'>,
     options?: RefetchOptions,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   refetchQueries(
     arg1?: QueryKey | RefetchQueryFilters,
-    arg2?: RefetchQueryFilters | RefetchOptions,
+    arg2?: OmitKeyof<RefetchQueryFilters, 'queryKey'> | RefetchOptions,
     arg3?: RefetchOptions,
   ): Promise<void> {
     const [filters, options] = parseFilterArgs(arg1, arg2, arg3)
@@ -408,6 +489,9 @@ export class QueryClient {
   >(
     options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -415,8 +499,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -425,8 +515,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<TData>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchQuery<
     TQueryFnData,
     TError,
@@ -436,8 +532,14 @@ export class QueryClient {
     arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<TData> {
     const parsedOptions = parseQueryArgs(arg1, arg2, arg3)
     const defaultedOptions = this.defaultQueryOptions(parsedOptions)
@@ -462,6 +564,9 @@ export class QueryClient {
   >(
     options: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -469,8 +574,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -479,8 +590,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -490,8 +607,14 @@ export class QueryClient {
     arg1: TQueryKey | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void> {
     return this.fetchQuery(arg1 as any, arg2 as any, arg3)
       .then(noop)
@@ -506,6 +629,9 @@ export class QueryClient {
   >(
     options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<InfiniteData<TData>>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -513,8 +639,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<InfiniteData<TData>>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -523,8 +655,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<InfiniteData<TData>>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   fetchInfiniteQuery<
     TQueryFnData,
     TError,
@@ -536,8 +674,14 @@ export class QueryClient {
       | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<InfiniteData<TData>> {
     const parsedOptions = parseQueryArgs(arg1, arg2, arg3)
     parsedOptions.behavior = infiniteQueryBehavior<
@@ -556,6 +700,9 @@ export class QueryClient {
   >(
     options: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -563,8 +710,14 @@ export class QueryClient {
     TQueryKey extends QueryKey = QueryKey,
   >(
     queryKey: TQueryKey,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchInfiniteQuery<
     TQueryFnData = unknown,
     TError = unknown,
@@ -573,8 +726,14 @@ export class QueryClient {
   >(
     queryKey: TQueryKey,
     queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-    options?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+    options?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void>
+  /**
+   * @deprecated This method should be used with only one object argument.
+   */
   prefetchInfiniteQuery<
     TQueryFnData,
     TError,
@@ -586,8 +745,14 @@ export class QueryClient {
       | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     arg2?:
       | QueryFunction<TQueryFnData, TQueryKey>
-      | FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
-    arg3?: FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      | OmitKeyof<
+          FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+          'queryKey'
+        >,
+    arg3?: OmitKeyof<
+      FetchInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+      'queryKey' | 'queryFn'
+    >,
   ): Promise<void> {
     return this.fetchInfiniteQuery(arg1 as any, arg2 as any, arg3)
       .then(noop)
diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts
index cfeae31fb..8af46426b 100644
--- a/packages/query-core/src/types.ts
+++ b/packages/query-core/src/types.ts
@@ -8,6 +8,20 @@ import type { QueryCache } from './queryCache'
 import type { MutationCache } from './mutationCache'
 import type { Logger } from './logger'
 
+export type NonUndefinedGuard<T> = T extends undefined ? never : T
+
+export type OmitKeyof<
+  TObject,
+  TKey extends TStrictly extends 'safely'
+    ?
+        | keyof TObject
+        | (string & Record<never, never>)
+        | (number & Record<never, never>)
+        | (symbol & Record<never, never>)
+    : keyof TObject,
+  TStrictly extends 'strictly' | 'safely' = 'strictly',
+> = Omit<TObject, TKey>
+
 export type QueryKey = readonly unknown[]
 
 export type QueryFunction<
@@ -256,6 +270,8 @@ export interface QueryObserverOptions<
   /**
    * Set this to `true` to keep the previous `data` when fetching based on a new query key.
    * Defaults to `false`.
+   *
+   * @deprecated keepPreviousData will be removed in the next major version.
    */
   keepPreviousData?: boolean
   /**
@@ -406,6 +422,9 @@ export interface QueryObserverBaseResult<TData = unknown, TError = unknown> {
   refetch: <TPageData>(
     options?: RefetchOptions & RefetchQueryFilters<TPageData>,
   ) => Promise<QueryObserverResult<TData, TError>>
+  /**
+   * @deprecated This method will be removed in the next major version. Use `QueryClient.removeQueries` instead.
+   */
   remove: () => void
   status: QueryStatus
   fetchStatus: FetchStatus
@@ -646,6 +665,7 @@ export interface MutationObserverBaseResult<
   isError: boolean
   isIdle: boolean
   isLoading: boolean
+  isPending: boolean
   isSuccess: boolean
   mutate: MutateFunction<TData, TError, TVariables, TContext>
   reset: () => void
diff --git a/packages/react-query/src/index.ts b/packages/react-query/src/index.ts
index b13a86a66..f906c1402 100644
--- a/packages/react-query/src/index.ts
+++ b/packages/react-query/src/index.ts
@@ -11,6 +11,8 @@ export * from './types'
 export { useQueries } from './useQueries'
 export type { QueriesResults, QueriesOptions } from './useQueries'
 export { useQuery } from './useQuery'
+export { useSuspenseQuery } from './useSuspenseQuery'
+export { useSuspenseQueries } from './useSuspenseQueries'
 export {
   defaultContext,
   QueryClientProvider,
@@ -29,3 +31,4 @@ export { useIsMutating } from './useIsMutating'
 export { useMutation } from './useMutation'
 export { useInfiniteQuery } from './useInfiniteQuery'
 export { useIsRestoring, IsRestoringProvider } from './isRestoring'
+export { queryOptions } from './queryOptions'
diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts
new file mode 100644
index 000000000..730eafb2a
--- /dev/null
+++ b/packages/react-query/src/queryOptions.ts
@@ -0,0 +1,86 @@
+import type {
+  InitialDataFunction,
+  NonUndefinedGuard,
+  OmitKeyof,
+  QueryKey,
+  WithRequired,
+} from '@tanstack/query-core'
+import type { UseQueryOptions } from './types'
+
+type UseQueryOptionsOmitted<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = OmitKeyof<
+  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'onSuccess' | 'onError' | 'onSettled' | 'refetchInterval'
+>
+
+type ProhibitedQueryOptionsKeyInV5 = keyof Pick<
+  UseQueryOptionsOmitted,
+  'useErrorBoundary' | 'suspense' | 'getNextPageParam' | 'getPreviousPageParam'
+>
+
+export type UndefinedInitialDataOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = UseQueryOptionsOmitted<TQueryFnData, TError, TData, TQueryKey> & {
+  initialData?:
+    | undefined
+    | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
+    | NonUndefinedGuard<TQueryFnData>
+}
+
+export type DefinedInitialDataOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = UseQueryOptionsOmitted<TQueryFnData, TError, TData, TQueryKey> & {
+  initialData:
+    | NonUndefinedGuard<TQueryFnData>
+    | (() => NonUndefinedGuard<TQueryFnData>)
+}
+
+export function queryOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: WithRequired<
+    OmitKeyof<
+      DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+      ProhibitedQueryOptionsKeyInV5
+    >,
+    'queryKey'
+  >,
+): WithRequired<
+  DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'queryKey'
+>
+
+export function queryOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: WithRequired<
+    OmitKeyof<
+      UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+      ProhibitedQueryOptionsKeyInV5
+    >,
+    'queryKey'
+  >,
+): WithRequired<
+  UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'queryKey'
+>
+
+export function queryOptions(options: unknown) {
+  return options
+}
diff --git a/packages/react-query/src/useQueries.ts b/packages/react-query/src/useQueries.ts
index f867627c8..0b35d3ba7 100644
--- a/packages/react-query/src/useQueries.ts
+++ b/packages/react-query/src/useQueries.ts
@@ -17,8 +17,12 @@ import {
   shouldSuspend,
   willFetch,
 } from './suspense'
-import type { QueryFunction, QueryKey } from '@tanstack/query-core'
-import type { UseQueryOptions, UseQueryResult } from './types'
+import type { OmitKeyof, QueryFunction, QueryKey } from '@tanstack/query-core'
+import type {
+  DefinedUseQueryResult,
+  UseQueryOptions,
+  UseQueryResult,
+} from './types'
 
 // This defines the `UseQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.
 // - `context` is omitted as it is passed as a root-level option to `useQueries` instead.
@@ -27,7 +31,10 @@ type UseQueryOptionsForUseQueries<
   TError = unknown,
   TData = TQueryFnData,
   TQueryKey extends QueryKey = QueryKey,
-> = Omit<UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'context'>
+> = OmitKeyof<
+  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+  'context'
+>
 
 // Avoid TS depth-limit error in case of large array literal
 type MAXIMUM_DEPTH = 20
@@ -67,29 +74,46 @@ type GetOptions<T> =
     : // Fallback
       UseQueryOptionsForUseQueries
 
-type GetResults<T> =
+// A defined initialData setting should return a DefinedUseQueryResult rather than UseQueryResult
+type GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {
+  initialData?: infer TInitialData
+}
+  ? unknown extends TInitialData
+    ? UseQueryResult<TData, TError>
+    : TInitialData extends TData
+    ? DefinedUseQueryResult<TData, TError>
+    : TInitialData extends () => infer TInitialDataResult
+    ? unknown extends TInitialDataResult
+      ? UseQueryResult<TData, TError>
+      : TInitialDataResult extends TData
+      ? DefinedUseQueryResult<TData, TError>
+      : UseQueryResult<TData, TError>
+    : UseQueryResult<TData, TError>
+  : UseQueryResult<TData, TError>
+
+type GetUseQueryResult<T> =
   // Part 1: responsible for mapping explicit type parameter to function result, if object
   T extends { queryFnData: any; error?: infer TError; data: infer TData }
-    ? UseQueryResult<TData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
     : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
-    ? UseQueryResult<TQueryFnData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>
     : T extends { data: infer TData; error?: infer TError }
-    ? UseQueryResult<TData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
     : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
     T extends [any, infer TError, infer TData]
-    ? UseQueryResult<TData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TData, TError>
     : T extends [infer TQueryFnData, infer TError]
-    ? UseQueryResult<TQueryFnData, TError>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>
     : T extends [infer TQueryFnData]
-    ? UseQueryResult<TQueryFnData>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>
     : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
     T extends {
         queryFn?: QueryFunction<unknown, any>
         select: (data: any) => infer TData
       }
-    ? UseQueryResult<TData>
+    ? GetDefinedOrUndefinedQueryResult<T, TData>
     : T extends { queryFn?: QueryFunction<infer TQueryFnData, any> }
-    ? UseQueryResult<TQueryFnData>
+    ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>
     : // Fallback
       UseQueryResult
 
@@ -98,16 +122,16 @@ type GetResults<T> =
  */
 export type QueriesOptions<
   T extends any[],
-  Result extends any[] = [],
-  Depth extends ReadonlyArray<number> = [],
-> = Depth['length'] extends MAXIMUM_DEPTH
+  TResult extends any[] = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
   ? UseQueryOptionsForUseQueries[]
   : T extends []
   ? []
   : T extends [infer Head]
-  ? [...Result, GetOptions<Head>]
+  ? [...TResult, GetOptions<Head>]
   : T extends [infer Head, ...infer Tail]
-  ? QueriesOptions<[...Tail], [...Result, GetOptions<Head>], [...Depth, 1]>
+  ? QueriesOptions<[...Tail], [...TResult, GetOptions<Head>], [...TDepth, 1]>
   : unknown[] extends T
   ? T
   : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
@@ -127,16 +151,20 @@ export type QueriesOptions<
  */
 export type QueriesResults<
   T extends any[],
-  Result extends any[] = [],
-  Depth extends ReadonlyArray<number> = [],
-> = Depth['length'] extends MAXIMUM_DEPTH
+  TResults extends any[] = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
   ? UseQueryResult[]
   : T extends []
   ? []
   : T extends [infer Head]
-  ? [...Result, GetResults<Head>]
+  ? [...TResults, GetUseQueryResult<Head>]
   : T extends [infer Head, ...infer Tail]
-  ? QueriesResults<[...Tail], [...Result, GetResults<Head>], [...Depth, 1]>
+  ? QueriesResults<
+      [...Tail],
+      [...TResults, GetUseQueryResult<Head>],
+      [...TDepth, 1]
+    >
   : T extends UseQueryOptionsForUseQueries<
       infer TQueryFnData,
       infer TError,
diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts
index c6ec05abc..c9426dd8d 100644
--- a/packages/react-query/src/useQuery.ts
+++ b/packages/react-query/src/useQuery.ts
@@ -1,7 +1,17 @@
 'use client'
 import { QueryObserver, parseQueryArgs } from '@tanstack/query-core'
 import { useBaseQuery } from './useBaseQuery'
-import type { QueryFunction, QueryKey } from '@tanstack/query-core'
+import type {
+  DefinedInitialDataOptions,
+  UndefinedInitialDataOptions,
+} from './queryOptions'
+import type {
+  InitialDataFunction,
+  NonUndefinedGuard,
+  OmitKeyof,
+  QueryFunction,
+  QueryKey,
+} from '@tanstack/query-core'
 import type {
   DefinedUseQueryResult,
   UseQueryOptions,
@@ -9,31 +19,53 @@ import type {
 } from './types'
 
 // HOOK
-
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
   TQueryKey extends QueryKey = QueryKey,
 >(
-  options: Omit<
+  options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
+): DefinedUseQueryResult<TData, TError>
+export function useQuery<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'initialData'
-  > & { initialData?: () => undefined },
+  > & {
+    initialData:
+      | NonUndefinedGuard<TQueryFnData>
+      | (() => NonUndefinedGuard<TQueryFnData>)
+  },
+): DefinedUseQueryResult<TData, TError>
+export function useQuery<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(
+  options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>,
 ): UseQueryResult<TData, TError>
-
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
   TData = TQueryFnData,
   TQueryKey extends QueryKey = QueryKey,
 >(
-  options: Omit<
+  options: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'initialData'
-  > & { initialData: TQueryFnData | (() => TQueryFnData) },
-): DefinedUseQueryResult<TData, TError>
-
+  > & {
+    initialData?:
+      | undefined
+      | InitialDataFunction<NonUndefinedGuard<TQueryFnData>>
+      | NonUndefinedGuard<TQueryFnData>
+  },
+): UseQueryResult<TData, TError>
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -43,6 +75,7 @@ export function useQuery<
   options: UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
 ): UseQueryResult<TData, TError>
 
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -50,12 +83,12 @@ export function useQuery<
   TQueryKey extends QueryKey = QueryKey,
 >(
   queryKey: TQueryKey,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'initialData'
-  > & { initialData?: () => undefined },
+  >,
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -63,12 +96,12 @@ export function useQuery<
   TQueryKey extends QueryKey = QueryKey,
 >(
   queryKey: TQueryKey,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'initialData'
   > & { initialData: TQueryFnData | (() => TQueryFnData) },
 ): DefinedUseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -76,12 +109,12 @@ export function useQuery<
   TQueryKey extends QueryKey = QueryKey,
 >(
   queryKey: TQueryKey,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey'
   >,
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -90,12 +123,12 @@ export function useQuery<
 >(
   queryKey: TQueryKey,
   queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'queryFn' | 'initialData'
   > & { initialData?: () => undefined },
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -104,12 +137,12 @@ export function useQuery<
 >(
   queryKey: TQueryKey,
   queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'queryFn' | 'initialData'
   > & { initialData: TQueryFnData | (() => TQueryFnData) },
 ): DefinedUseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData = unknown,
   TError = unknown,
@@ -118,12 +151,12 @@ export function useQuery<
 >(
   queryKey: TQueryKey,
   queryFn: QueryFunction<TQueryFnData, TQueryKey>,
-  options?: Omit<
+  options?: OmitKeyof<
     UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
     'queryKey' | 'queryFn'
   >,
 ): UseQueryResult<TData, TError>
-
+/** @deprecated */
 export function useQuery<
   TQueryFnData,
   TError,
diff --git a/packages/react-query/src/useSuspenseQueries.ts b/packages/react-query/src/useSuspenseQueries.ts
new file mode 100644
index 000000000..7b70ea848
--- /dev/null
+++ b/packages/react-query/src/useSuspenseQueries.ts
@@ -0,0 +1,162 @@
+import { useQueries } from './useQueries'
+import type { UseQueryOptions } from './types'
+import type { NetworkMode, QueryFunction } from '@tanstack/query-core'
+import type {
+  UseSuspenseQueryOptions,
+  UseSuspenseQueryResult,
+} from './useSuspenseQuery'
+
+// Avoid TS depth-limit error in case of large array literal
+type MAXIMUM_DEPTH = 20
+
+type GetSuspenseOptions<T> =
+  // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }
+  T extends {
+    queryFnData: infer TQueryFnData
+    error?: infer TError
+    data: infer TData
+  }
+    ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
+    : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
+    ? UseSuspenseQueryOptions<TQueryFnData, TError>
+    : T extends { data: infer TData; error?: infer TError }
+    ? UseSuspenseQueryOptions<unknown, TError, TData>
+    : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]
+    T extends [infer TQueryFnData, infer TError, infer TData]
+    ? UseSuspenseQueryOptions<TQueryFnData, TError, TData>
+    : T extends [infer TQueryFnData, infer TError]
+    ? UseSuspenseQueryOptions<TQueryFnData, TError>
+    : T extends [infer TQueryFnData]
+    ? UseSuspenseQueryOptions<TQueryFnData>
+    : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided
+    T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
+        select?: (data: any) => infer TData
+      }
+    ? UseSuspenseQueryOptions<TQueryFnData, unknown, TData, TQueryKey>
+    : T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, infer TQueryKey>
+      }
+    ? UseSuspenseQueryOptions<TQueryFnData, unknown, TQueryFnData, TQueryKey>
+    : // Fallback
+      UseSuspenseQueryOptions
+
+type GetSuspenseResults<T> =
+  // Part 1: responsible for mapping explicit type parameter to function result, if object
+  T extends { queryFnData: any; error?: infer TError; data: infer TData }
+    ? UseSuspenseQueryResult<TData, TError>
+    : T extends { queryFnData: infer TQueryFnData; error?: infer TError }
+    ? UseSuspenseQueryResult<TQueryFnData, TError>
+    : T extends { data: infer TData; error?: infer TError }
+    ? UseSuspenseQueryResult<TData, TError>
+    : // Part 2: responsible for mapping explicit type parameter to function result, if tuple
+    T extends [any, infer TError, infer TData]
+    ? UseSuspenseQueryResult<TData, TError>
+    : T extends [infer TQueryFnData, infer TError]
+    ? UseSuspenseQueryResult<TQueryFnData, TError>
+    : T extends [infer TQueryFnData]
+    ? UseSuspenseQueryResult<TQueryFnData>
+    : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided
+    T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, any>
+        select?: (data: any) => infer TData
+      }
+    ? UseSuspenseQueryResult<unknown extends TData ? TQueryFnData : TData>
+    : T extends {
+        queryFn?: QueryFunction<infer TQueryFnData, any>
+      }
+    ? UseSuspenseQueryResult<TQueryFnData>
+    : // Fallback
+      UseSuspenseQueryResult
+
+/**
+ * SuspenseQueriesOptions reducer recursively unwraps function arguments to infer/enforce type param
+ */
+export type SuspenseQueriesOptions<
+  T extends Array<any>,
+  TResult extends Array<any> = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
+  ? Array<UseSuspenseQueryOptions>
+  : T extends []
+  ? []
+  : T extends [infer Head]
+  ? [...TResult, GetSuspenseOptions<Head>]
+  : T extends [infer Head, ...infer Tail]
+  ? SuspenseQueriesOptions<
+      [...Tail],
+      [...TResult, GetSuspenseOptions<Head>],
+      [...TDepth, 1]
+    >
+  : Array<unknown> extends T
+  ? T
+  : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogenous type!
+  // use this to infer the param types in the case of Array.map() argument
+  T extends Array<
+      UseSuspenseQueryOptions<
+        infer TQueryFnData,
+        infer TError,
+        infer TData,
+        infer TQueryKey
+      >
+    >
+  ? Array<UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>>
+  : // Fallback
+    Array<UseSuspenseQueryOptions>
+
+/**
+ * SuspenseQueriesResults reducer recursively maps type param to results
+ */
+export type SuspenseQueriesResults<
+  T extends Array<any>,
+  TResult extends Array<any> = [],
+  TDepth extends ReadonlyArray<number> = [],
+> = TDepth['length'] extends MAXIMUM_DEPTH
+  ? Array<UseSuspenseQueryResult>
+  : T extends []
+  ? []
+  : T extends [infer Head]
+  ? [...TResult, GetSuspenseResults<Head>]
+  : T extends [infer Head, ...infer Tail]
+  ? SuspenseQueriesResults<
+      [...Tail],
+      [...TResult, GetSuspenseResults<Head>],
+      [...TDepth, 1]
+    >
+  : T extends Array<
+      UseSuspenseQueryOptions<
+        infer TQueryFnData,
+        infer TError,
+        infer TData,
+        any
+      >
+    >
+  ? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
+    Array<
+      UseSuspenseQueryResult<
+        unknown extends TData ? TQueryFnData : TData,
+        TError
+      >
+    >
+  : // Fallback
+    Array<UseSuspenseQueryResult>
+
+export function useSuspenseQueries<T extends any[]>({
+  queries,
+  context,
+}: {
+  queries: readonly [...SuspenseQueriesOptions<T>]
+  context?: UseQueryOptions['context']
+}): SuspenseQueriesResults<T> {
+  return useQueries({
+    queries: queries.map((query) => ({
+      ...query,
+      enabled: true,
+      useErrorBoundary: true,
+      suspense: true,
+      placeholderData: undefined,
+      networkMode: 'always' as NetworkMode,
+    })),
+    context,
+  }) as SuspenseQueriesResults<T>
+}
diff --git a/packages/react-query/src/useSuspenseQuery.ts b/packages/react-query/src/useSuspenseQuery.ts
new file mode 100644
index 000000000..51ef5fe0e
--- /dev/null
+++ b/packages/react-query/src/useSuspenseQuery.ts
@@ -0,0 +1,58 @@
+import { QueryObserver } from '@tanstack/query-core'
+import { useBaseQuery } from './useBaseQuery'
+import type {
+  DefinedQueryObserverResult,
+  OmitKeyof,
+  QueryKey,
+} from '@tanstack/query-core'
+import type { UseQueryOptions } from './types'
+
+type DistributiveOmit<TObject, TKey extends keyof TObject> = TObject extends any
+  ? Omit<TObject, TKey>
+  : never
+
+export type UseSuspenseQueryResult<
+  TData = unknown,
+  TError = unknown,
+> = DistributiveOmit<
+  DefinedQueryObserverResult<TData, TError>,
+  'isPlaceholderData'
+>
+
+export type UseSuspenseQueryOptions<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+> = OmitKeyof<
+  UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>,
+  | 'enabled'
+  | 'useErrorBoundary'
+  | 'suspense'
+  | 'placeholderData'
+  | 'networkMode'
+  | 'onSuccess'
+  | 'onError'
+  | 'onSettled'
+  | 'getPreviousPageParam'
+  | 'getNextPageParam'
+>
+
+export function useSuspenseQuery<
+  TQueryFnData = unknown,
+  TError = unknown,
+  TData = TQueryFnData,
+  TQueryKey extends QueryKey = QueryKey,
+>(options: UseSuspenseQueryOptions<TQueryFnData, TError, TData, TQueryKey>) {
+  return useBaseQuery(
+    {
+      ...options,
+      enabled: true,
+      useErrorBoundary: true,
+      suspense: true,
+      placeholderData: undefined,
+      networkMode: 'always',
+    },
+    QueryObserver,
+  ) as UseSuspenseQueryResult<TData, TError>
+}
diff --git a/packages/vue-query/src/queryCache.ts b/packages/vue-query/src/queryCache.ts
index 1ecfa5190..87fc76eb0 100644
--- a/packages/vue-query/src/queryCache.ts
+++ b/packages/vue-query/src/queryCache.ts
@@ -5,12 +5,22 @@ import type { MaybeRefDeep } from './types'
 
 export class QueryCache extends QC {
   find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
-    arg1: MaybeRefDeep<QueryKey>,
+    filters: MaybeRefDeep<QueryFilters>,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    queryKey: MaybeRefDeep<QueryKey>,
+    filters?: MaybeRefDeep<QueryFilters>,
+  ): Query<TQueryFnData, TError, TData> | undefined
+  find<TQueryFnData = unknown, TError = unknown, TData = TQueryFnData>(
+    arg1: MaybeRefDeep<QueryKey> | MaybeRefDeep<QueryFilters>,
     arg2?: MaybeRefDeep<QueryFilters>,
   ): Query<TQueryFnData, TError, TData> | undefined {
-    const arg1Unreffed = cloneDeepUnref(arg1)
+    const arg1Unreffed = cloneDeepUnref(arg1) as QueryKey | QueryFilters
     const arg2Unreffed = cloneDeepUnref(arg2) as QueryFilters
-    return super.find(arg1Unreffed, arg2Unreffed)
+    if (isQueryKey(arg1Unreffed)) {
+      return super.find(arg1Unreffed, arg2Unreffed)
+    }
+    return super.find(arg1Unreffed)
   }
 
   findAll(
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 712274c4a..0c02d0789 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -124,6 +124,9 @@ importers:
       eslint-plugin-react-hooks:
         specifier: ^4.6.0
         version: 4.6.0(eslint@8.34.0)
+      expect-type:
+        specifier: ^1.2.1
+        version: 1.2.1
       git-log-parser:
         specifier: ^1.2.0
         version: 1.2.0
@@ -678,7 +681,7 @@ importers:
         version: 1.1.2(eslint-plugin-import@2.27.5)
       eslint-plugin-flowtype:
         specifier: ^8.0.3
-        version: 8.0.3(@babel/plugin-syntax-flow@7.18.6)(@babel/plugin-transform-react-jsx@7.19.0)(eslint@8.34.0)
+        version: 8.0.3(@babel/plugin-syntax-flow@7.27.1)(@babel/plugin-transform-react-jsx@7.19.0)(eslint@8.34.0)
       eslint-plugin-prettier:
         specifier: ^4.0.0
         version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.34.0)(prettier@2.7.1)
@@ -1276,7 +1279,7 @@ importers:
         version: link:../query-core
       react-native:
         specifier: '*'
-        version: 0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@18.2.0)
+        version: 0.64.3(@babel/core@7.27.1)(@babel/preset-env@7.18.6)(react@18.2.0)
       use-sync-external-store:
         specifier: ^1.2.0
         version: 1.2.0(react@18.2.0)
@@ -1380,14 +1383,14 @@ importers:
         specifier: npm:react-dom@^17.0.2
         version: /react-dom@17.0.2(react@18.2.0)
 
-  packages/react-query/build/codemods:
+  packages/react-query/build/query-codemods:
     devDependencies:
       '@types/jscodeshift':
-        specifier: 0.11.6
-        version: 0.11.6
+        specifier: 17.3.0
+        version: 17.3.0
       jscodeshift:
-        specifier: 0.15.0
-        version: 0.15.0(@babel/preset-env@7.18.6)
+        specifier: 17.3.0
+        version: 17.3.0(@babel/preset-env@7.18.6)
 
   packages/solid-query:
     dependencies:
@@ -1400,7 +1403,7 @@ importers:
     devDependencies:
       solid-jest:
         specifier: ^0.2.0
-        version: 0.2.0(@babel/core@7.19.1)(babel-preset-solid@1.5.4)
+        version: 0.2.0(@babel/core@7.27.1)(babel-preset-solid@1.5.4)
 
   packages/svelte-query:
     dependencies:
@@ -1615,10 +1618,22 @@ packages:
     dependencies:
       '@babel/highlight': 7.18.6
 
+  /@babel/code-frame@7.27.1:
+    resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/helper-validator-identifier': 7.27.1
+      js-tokens: 4.0.0
+      picocolors: 1.1.1
+
   /@babel/compat-data@7.19.1:
     resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/compat-data@7.27.2:
+    resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/core@7.19.1:
     resolution: {integrity: sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==}
     engines: {node: '>=6.9.0'}
@@ -1641,6 +1656,28 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/core@7.27.1:
+    resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@ampproject/remapping': 2.2.0
+      '@babel/code-frame': 7.27.1
+      '@babel/generator': 7.27.1
+      '@babel/helper-compilation-targets': 7.27.2
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
+      '@babel/helpers': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/template': 7.27.2
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+      convert-source-map: 2.0.0
+      debug: 4.3.4
+      gensync: 1.0.0-beta.2
+      json5: 2.2.3
+      semver: 6.3.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/core@7.9.0:
     resolution: {integrity: sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==}
     engines: {node: '>=6.9.0'}
@@ -1687,12 +1724,28 @@ packages:
       '@jridgewell/gen-mapping': 0.3.2
       jsesc: 2.5.2
 
+  /@babel/generator@7.27.1:
+    resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/parser': 7.27.2
+      '@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.18.6:
     resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-annotate-as-pure@7.27.1:
+    resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/types': 7.27.1
+
   /@babel/helper-builder-binary-assignment-operator-visitor@7.18.6:
     resolution: {integrity: sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==}
     engines: {node: '>=6.9.0'}
@@ -1712,6 +1765,18 @@ packages:
       browserslist: 4.21.4
       semver: 6.3.0
 
+  /@babel/helper-compilation-targets@7.19.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-validator-option': 7.18.6
+      browserslist: 4.21.4
+      semver: 6.3.0
+
   /@babel/helper-compilation-targets@7.19.1(@babel/core@7.9.0):
     resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==}
     engines: {node: '>=6.9.0'}
@@ -1725,6 +1790,16 @@ packages:
       semver: 6.3.0
     dev: true
 
+  /@babel/helper-compilation-targets@7.27.2:
+    resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/compat-data': 7.27.2
+      '@babel/helper-validator-option': 7.27.1
+      browserslist: 4.24.5
+      lru-cache: 5.1.1
+      semver: 6.3.1
+
   /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
     engines: {node: '>=6.9.0'}
@@ -1742,6 +1817,24 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-member-expression-to-functions': 7.18.6
+      '@babel/helper-optimise-call-expression': 7.18.6
+      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-split-export-declaration': 7.18.6
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==}
     engines: {node: '>=6.9.0'}
@@ -1778,6 +1871,23 @@ packages:
       - supports-color
     dev: false
 
+  /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-member-expression-to-functions': 7.18.9
+      '@babel/helper-optimise-call-expression': 7.18.6
+      '@babel/helper-replace-supers': 7.19.1
+      '@babel/helper-split-export-declaration': 7.18.6
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.9.0):
     resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==}
     engines: {node: '>=6.9.0'}
@@ -1796,6 +1906,23 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@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.27.1)
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+      '@babel/traverse': 7.27.1
+      semver: 6.3.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
     engines: {node: '>=6.9.0'}
@@ -1806,6 +1933,16 @@ packages:
       '@babel/helper-annotate-as-pure': 7.18.6
       regexpu-core: 5.1.0
 
+  /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      regexpu-core: 5.1.0
+
   /@babel/helper-create-regexp-features-plugin@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==}
     engines: {node: '>=6.9.0'}
@@ -1834,6 +1971,24 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-define-polyfill-provider@0.3.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==}
+    peerDependencies:
+      '@babel/core': ^7.4.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/traverse': 7.19.1
+      debug: 4.3.4
+      lodash.debounce: 4.0.8
+      resolve: 1.22.1
+      semver: 6.3.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/helper-environment-visitor@7.18.9:
     resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
     engines: {node: '>=6.9.0'}
@@ -1869,6 +2024,15 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-member-expression-to-functions@7.27.1:
+    resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-module-imports@7.16.0:
     resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==}
     engines: {node: '>=6.9.0'}
@@ -1882,6 +2046,15 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-module-imports@7.27.1:
+    resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-module-transforms@7.19.0:
     resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==}
     engines: {node: '>=6.9.0'}
@@ -1897,12 +2070,45 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-module-transforms@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-validator-identifier': 7.27.1
+      '@babel/traverse': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
+  /@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-imports': 7.27.1
+      '@babel/helper-validator-identifier': 7.27.1
+      '@babel/traverse': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-optimise-call-expression@7.18.6:
     resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-optimise-call-expression@7.27.1:
+    resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/types': 7.27.1
+
   /@babel/helper-plugin-utils@7.19.0:
     resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==}
     engines: {node: '>=6.9.0'}
@@ -1911,6 +2117,10 @@ packages:
     resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
     engines: {node: '>=6.9.0'}
 
+  /@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.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==}
     engines: {node: '>=6.9.0'}
@@ -1925,6 +2135,21 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-remap-async-to-generator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-wrap-function': 7.18.6
+      '@babel/types': 7.19.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/helper-remap-async-to-generator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==}
     engines: {node: '>=6.9.0'}
@@ -1964,6 +2189,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@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
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-simple-access@7.18.6:
     resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
     engines: {node: '>=6.9.0'}
@@ -1976,6 +2214,15 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/helper-skip-transparent-expression-wrappers@7.27.1:
+    resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/traverse': 7.27.1
+      '@babel/types': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/helper-split-export-declaration@7.18.6:
     resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
     engines: {node: '>=6.9.0'}
@@ -1986,14 +2233,26 @@ packages:
     resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/helper-string-parser@7.27.1:
+    resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/helper-validator-identifier@7.18.6:
     resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/helper-validator-identifier@7.27.1:
+    resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/helper-validator-option@7.18.6:
     resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
     engines: {node: '>=6.9.0'}
 
+  /@babel/helper-validator-option@7.27.1:
+    resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+    engines: {node: '>=6.9.0'}
+
   /@babel/helper-wrap-function@7.18.6:
     resolution: {integrity: sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==}
     engines: {node: '>=6.9.0'}
@@ -2015,6 +2274,13 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/helpers@7.27.1:
+    resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/template': 7.27.2
+      '@babel/types': 7.27.1
+
   /@babel/highlight@7.18.6:
     resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
     engines: {node: '>=6.9.0'}
@@ -2030,6 +2296,13 @@ packages:
     dependencies:
       '@babel/types': 7.19.0
 
+  /@babel/parser@7.27.2:
+    resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==}
+    engines: {node: '>=6.0.0'}
+    hasBin: true
+    dependencies:
+      '@babel/types': 7.27.1
+
   /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
     engines: {node: '>=6.9.0'}
@@ -2039,6 +2312,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==}
     engines: {node: '>=6.9.0'}
@@ -2050,6 +2333,18 @@ packages:
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
 
+  /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.13.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==}
     engines: {node: '>=6.9.0'}
@@ -2064,6 +2359,21 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==}
     engines: {node: '>=6.9.0'}
@@ -2103,6 +2413,18 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.20.2
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
     engines: {node: '>=6.9.0'}
@@ -2129,6 +2451,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.12.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-decorators@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-gAdhsjaYmiZVxx5vTMiRfj31nB7LhwBJFMSLzeDxc7X4tKLixup0+k9ughn0RcpBrv9E3PBaXJW7jF5TCihAOg==}
     engines: {node: '>=6.9.0'}
@@ -2155,6 +2491,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
     engines: {node: '>=6.9.0'}
@@ -2177,6 +2524,17 @@ packages:
       '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.19.1)
     dev: false
 
+  /@babel/plugin-proposal-export-default-from@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-oTvzWB16T9cB4j5kX8c8DuUHo/4QtR2P9vnUNKed9xqFP8Jos/IRniz1FiIryn6luDYoltDJSYF7RCpbm2doMg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.27.1)
+    dev: false
+
   /@babel/plugin-proposal-export-namespace-from@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==}
     engines: {node: '>=6.9.0'}
@@ -2187,6 +2545,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-export-namespace-from@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-export-namespace-from@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==}
     engines: {node: '>=6.9.0'}
@@ -2208,6 +2577,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
     engines: {node: '>=6.9.0'}
@@ -2229,6 +2609,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-logical-assignment-operators@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-logical-assignment-operators@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==}
     engines: {node: '>=6.9.0'}
@@ -2250,18 +2641,28 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.19.1)
 
-  /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.9.0):
+  /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.9.0
+      '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.19.0
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.9.0)
-    dev: true
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
 
-  /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.19.1):
+  /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.9.0):
+    resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.9.0
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.9.0)
+    dev: true
+
+  /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
@@ -2271,6 +2672,17 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1)
+    dev: true
+
   /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
     engines: {node: '>=6.9.0'}
@@ -2295,6 +2707,19 @@ packages:
       '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.19.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-object-rest-spread@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+
   /@babel/plugin-proposal-object-rest-spread@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==}
     engines: {node: '>=6.9.0'}
@@ -2319,6 +2744,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1)
+
   /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
     engines: {node: '>=6.9.0'}
@@ -2341,6 +2776,17 @@ packages:
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
       '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.1)
 
+  /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+
   /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==}
     engines: {node: '>=6.9.0'}
@@ -2365,6 +2811,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.20.2
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
     engines: {node: '>=6.9.0'}
@@ -2392,6 +2851,21 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-proposal-private-property-in-object@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
     engines: {node: '>=4'}
@@ -2402,6 +2876,17 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
+    engines: {node: '>=4'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
     engines: {node: '>=4'}
@@ -2421,6 +2906,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.9.0):
     resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
     peerDependencies:
@@ -2439,6 +2933,15 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: true
 
+  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: true
+
   /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.19.1):
     resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
     peerDependencies:
@@ -2447,6 +2950,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.1):
+    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.9.0):
     resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
     peerDependencies:
@@ -2465,6 +2976,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-decorators@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-fqyLgjcxf/1yhyZ6A+yo1u9gJ7eleFQod2lkaUsF9DQ7sbbY3Ligym3L0+I2c0WmqNKDpoD9UTb1AKP3qRMOAQ==}
     engines: {node: '>=6.9.0'}
@@ -2483,6 +3004,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
     peerDependencies:
@@ -2502,6 +3031,16 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: false
 
+  /@babel/plugin-syntax-export-default-from@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: false
+
   /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.19.1):
     resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
     peerDependencies:
@@ -2510,6 +3049,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
     peerDependencies:
@@ -2528,6 +3076,35 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.20.2
 
+  /@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: false
+
+  /@babel/plugin-syntax-flow@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
+
+  /@babel/plugin-syntax-flow@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+
   /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
     engines: {node: '>=6.9.0'}
@@ -2537,6 +3114,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
     peerDependencies:
@@ -2546,6 +3133,15 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: true
 
+  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: true
+
   /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.19.1):
     resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
     peerDependencies:
@@ -2554,6 +3150,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
     peerDependencies:
@@ -2572,6 +3177,24 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.20.2
 
+  /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+
+  /@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
     peerDependencies:
@@ -2580,6 +3203,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.9.0):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
     peerDependencies:
@@ -2597,6 +3229,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
     peerDependencies:
@@ -2614,6 +3254,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.9.0):
     resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
     peerDependencies:
@@ -2631,6 +3280,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
     peerDependencies:
@@ -2648,6 +3305,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
     peerDependencies:
@@ -2665,6 +3330,14 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.9.0):
     resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
     peerDependencies:
@@ -2683,6 +3356,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
     engines: {node: '>=6.9.0'}
@@ -2692,6 +3375,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.9.0):
     resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
     engines: {node: '>=6.9.0'}
@@ -2711,6 +3404,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.20.2
 
+  /@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+    dev: false
+
   /@babel/plugin-syntax-typescript@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==}
     engines: {node: '>=6.9.0'}
@@ -2721,6 +3424,15 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
     dev: true
 
+  /@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+
   /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
     engines: {node: '>=6.9.0'}
@@ -2730,6 +3442,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
     engines: {node: '>=6.9.0'}
@@ -2753,22 +3474,36 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.9.0):
+  /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.9.0
+      '@babel/core': 7.27.1
       '@babel/helper-module-imports': 7.18.6
       '@babel/helper-plugin-utils': 7.20.2
-      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.9.0)
+      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.27.1)
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.19.1):
-    resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
+  /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.9.0):
+    resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.9.0
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-remap-async-to-generator': 7.18.6(@babel/core@7.9.0)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
+  /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.19.1):
+    resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
@@ -2776,6 +3511,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
     engines: {node: '>=6.9.0'}
@@ -2795,6 +3539,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-block-scoping@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-block-scoping@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==}
     engines: {node: '>=6.9.0'}
@@ -2805,6 +3558,19 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    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
+    dev: true
+
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -2823,6 +3589,24 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-classes@7.18.8(@babel/core@7.27.1):
+    resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-environment-visitor': 7.18.9
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-optimise-call-expression': 7.18.6
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-replace-supers': 7.18.6
+      '@babel/helper-split-export-declaration': 7.18.6
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-classes@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==}
     engines: {node: '>=6.9.0'}
@@ -2851,6 +3635,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-computed-properties@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-computed-properties@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==}
     engines: {node: '>=6.9.0'}
@@ -2870,6 +3663,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-destructuring@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-destructuring@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==}
     engines: {node: '>=6.9.0'}
@@ -2890,6 +3692,17 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
     engines: {node: '>=6.9.0'}
@@ -2910,6 +3723,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-duplicate-keys@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-duplicate-keys@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==}
     engines: {node: '>=6.9.0'}
@@ -2930,6 +3753,16 @@ packages:
       '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.6
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.6
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
     engines: {node: '>=6.9.0'}
@@ -2951,6 +3784,27 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
       '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.19.1)
 
+  /@babel/plugin-transform-flow-strip-types@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-wE0xtA7csz+hw4fKPwxmu5jnzAsXPIO57XnRwzXP3T19jWh1BODnPGoG9xKYwvAwusP7iUktHayRFbMPGtODaQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
+    dev: false
+
+  /@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1)
+
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
     engines: {node: '>=6.9.0'}
@@ -2960,6 +3814,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.27.1):
+    resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
     engines: {node: '>=6.9.0'}
@@ -2981,6 +3844,17 @@ packages:
       '@babel/helper-function-name': 7.19.0
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-function-name@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-function-name': 7.19.0
+      '@babel/helper-plugin-utils': 7.20.2
+
   /@babel/plugin-transform-function-name@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==}
     engines: {node: '>=6.9.0'}
@@ -3002,6 +3876,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-literals@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-literals@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==}
     engines: {node: '>=6.9.0'}
@@ -3021,6 +3904,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
     engines: {node: '>=6.9.0'}
@@ -3044,6 +3936,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-amd@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+      babel-plugin-dynamic-import-node: 2.3.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-modules-amd@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==}
     engines: {node: '>=6.9.0'}
@@ -3072,6 +3978,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-simple-access': 7.18.6
+      babel-plugin-dynamic-import-node: 2.3.3
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-modules-commonjs@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==}
     engines: {node: '>=6.9.0'}
@@ -3087,6 +4007,31 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.19.1):
+    resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.19.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
+  /@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
     engines: {node: '>=6.9.0'}
@@ -3102,6 +4047,22 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-hoist-variables': 7.18.6
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-validator-identifier': 7.18.6
+      babel-plugin-dynamic-import-node: 2.3.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-modules-systemjs@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==}
     engines: {node: '>=6.9.0'}
@@ -3130,6 +4091,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-transforms': 7.19.0
+      '@babel/helper-plugin-utils': 7.19.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
     engines: {node: '>=6.9.0'}
@@ -3153,6 +4127,17 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-named-capturing-groups-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-named-capturing-groups-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==}
     engines: {node: '>=6.9.0'}
@@ -3173,6 +4158,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
     engines: {node: '>=6.9.0'}
@@ -3183,6 +4178,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
+  /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+    dev: true
+
   /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
     engines: {node: '>=6.9.0'}
@@ -3193,6 +4198,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: false
 
+  /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
     engines: {node: '>=6.9.0'}
@@ -3205,6 +4220,18 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-replace-supers': 7.18.6
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
     engines: {node: '>=6.9.0'}
@@ -3218,6 +4245,19 @@ packages:
       - supports-color
     dev: true
 
+  /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -3227,6 +4267,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==}
     engines: {node: '>=6.9.0'}
@@ -3237,13 +4286,35 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
     dev: true
 
-  /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
+  /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    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
+    dev: true
+
+  /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1):
+    resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.19.1
+      '@babel/helper-plugin-utils': 7.19.0
+
+  /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.27.1):
     resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@babel/helper-plugin-utils': 7.19.0
 
   /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.9.0):
@@ -3265,6 +4336,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==}
     engines: {node: '>=6.9.0'}
@@ -3284,6 +4365,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==}
     engines: {node: '>=6.9.0'}
@@ -3293,6 +4384,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-react-jsx-source@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.19.1):
     resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==}
     engines: {node: '>=6.9.0'}
@@ -3306,6 +4407,20 @@ packages:
       '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.1)
       '@babel/types': 7.19.0
 
+  /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 7.18.6
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+    dev: false
+
   /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==}
     engines: {node: '>=6.9.0'}
@@ -3327,6 +4442,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       regenerator-transform: 0.15.0
 
+  /@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      regenerator-transform: 0.15.0
+
   /@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==}
     engines: {node: '>=6.9.0'}
@@ -3347,6 +4472,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
     engines: {node: '>=6.9.0'}
@@ -3369,6 +4504,18 @@ packages:
       semver: 5.7.1
     dev: false
 
+  /@babel/plugin-transform-runtime@7.9.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-imports': 7.18.6
+      '@babel/helper-plugin-utils': 7.20.2
+      resolve: 1.22.1
+      semver: 5.7.1
+    dev: false
+
   /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
     engines: {node: '>=6.9.0'}
@@ -3378,6 +4525,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
     engines: {node: '>=6.9.0'}
@@ -3398,6 +4554,16 @@ packages:
       '@babel/helper-plugin-utils': 7.19.0
       '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
 
+  /@babel/plugin-transform-spread@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/helper-skip-transparent-expression-wrappers': 7.18.6
+
   /@babel/plugin-transform-spread@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==}
     engines: {node: '>=6.9.0'}
@@ -3418,6 +4584,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
     engines: {node: '>=6.9.0'}
@@ -3437,6 +4612,15 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-template-literals@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-template-literals@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==}
     engines: {node: '>=6.9.0'}
@@ -3456,6 +4640,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-typeof-symbol@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-typeof-symbol@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==}
     engines: {node: '>=6.9.0'}
@@ -3478,6 +4672,7 @@ packages:
       '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1)
     transitivePeerDependencies:
       - supports-color
+    dev: true
 
   /@babel/plugin-transform-typescript@7.18.8(@babel/core@7.9.0):
     resolution: {integrity: sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==}
@@ -3507,6 +4702,35 @@ packages:
       - supports-color
     dev: false
 
+  /@babel/plugin-transform-typescript@7.19.3(@babel/core@7.27.1):
+    resolution: {integrity: sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.20.2
+      '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
+  /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-annotate-as-pure': 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.27.1
+      '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
     engines: {node: '>=6.9.0'}
@@ -3516,6 +4740,16 @@ packages:
       '@babel/core': 7.19.1
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+    dev: true
+
   /@babel/plugin-transform-unicode-escapes@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==}
     engines: {node: '>=6.9.0'}
@@ -3536,6 +4770,16 @@ packages:
       '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.19.1)
       '@babel/helper-plugin-utils': 7.19.0
 
+  /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-create-regexp-features-plugin': 7.18.6(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+
   /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.9.0):
     resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
     engines: {node: '>=6.9.0'}
@@ -3708,6 +4952,92 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/preset-env@7.18.6(@babel/core@7.27.1):
+    resolution: {integrity: sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-compilation-targets': 7.19.1(@babel/core@7.27.1)
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/helper-validator-option': 7.18.6
+      '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-async-generator-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-class-static-block': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-export-namespace-from': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-logical-assignment-operators': 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-numeric-separator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-object-rest-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-private-property-in-object': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1)
+      '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-import-assertions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1)
+      '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.1)
+      '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-async-to-generator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoping': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-duplicate-keys': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-amd': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-systemjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-named-capturing-groups-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-regenerator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-typeof-symbol': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-unicode-escapes': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/preset-modules': 0.1.5(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+      babel-plugin-polyfill-corejs2: 0.3.1(@babel/core@7.27.1)
+      babel-plugin-polyfill-corejs3: 0.5.2(@babel/core@7.27.1)
+      babel-plugin-polyfill-regenerator: 0.3.1(@babel/core@7.27.1)
+      core-js-compat: 3.23.3
+      semver: 6.3.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@babel/preset-flow@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==}
     engines: {node: '>=6.9.0'}
@@ -3718,6 +5048,18 @@ packages:
       '@babel/helper-plugin-utils': 7.20.2
       '@babel/helper-validator-option': 7.18.6
       '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.19.1)
+    dev: true
+
+  /@babel/preset-flow@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-ez3a2it5Fn6P54W8QkbfIyyIbxlXvcxyWHHvno1Wg0Ej5eiJY5hBb8ExttoIOJJk7V2dZE6prP7iby5q2aQ0Lg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
+      '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1)
 
   /@babel/preset-modules@0.1.5(@babel/core@7.19.1):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
@@ -3731,6 +5073,19 @@ packages:
       '@babel/types': 7.19.0
       esutils: 2.0.3
 
+  /@babel/preset-modules@0.1.5(@babel/core@7.27.1):
+    resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.19.0
+      '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+      esutils: 2.0.3
+    dev: true
+
   /@babel/preset-modules@0.1.5(@babel/core@7.9.0):
     resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
     peerDependencies:
@@ -3784,6 +5139,22 @@ packages:
       '@babel/plugin-transform-typescript': 7.18.8(@babel/core@7.19.1)
     transitivePeerDependencies:
       - supports-color
+    dev: true
+
+  /@babel/preset-typescript@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-plugin-utils': 7.27.1
+      '@babel/helper-validator-option': 7.27.1
+      '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
 
   /@babel/register@7.18.6(@babel/core@7.19.1):
     resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==}
@@ -3798,6 +5169,19 @@ packages:
       pirates: 4.0.5
       source-map-support: 0.5.21
 
+  /@babel/register@7.27.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-K13lQpoV54LATKkzBpBAEu1GGSIRzxR9f4IN4V8DCDgiUMo2UDGagEZr3lPeVNJPLkWUi5JE4hCHKneVTwQlYQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    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.7
+      source-map-support: 0.5.21
+
   /@babel/runtime-corejs3@7.18.6:
     resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==}
     engines: {node: '>=6.9.0'}
@@ -3826,6 +5210,14 @@ packages:
       '@babel/parser': 7.19.1
       '@babel/types': 7.19.0
 
+  /@babel/template@7.27.2:
+    resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/code-frame': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/types': 7.27.1
+
   /@babel/traverse@7.19.1:
     resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==}
     engines: {node: '>=6.9.0'}
@@ -3843,6 +5235,20 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /@babel/traverse@7.27.1:
+    resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/code-frame': 7.27.1
+      '@babel/generator': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/template': 7.27.2
+      '@babel/types': 7.27.1
+      debug: 4.3.4
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+
   /@babel/types@7.19.0:
     resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==}
     engines: {node: '>=6.9.0'}
@@ -3851,6 +5257,13 @@ packages:
       '@babel/helper-validator-identifier': 7.18.6
       to-fast-properties: 2.0.0
 
+  /@babel/types@7.27.1:
+    resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/helper-string-parser': 7.27.1
+      '@babel/helper-validator-identifier': 7.27.1
+
   /@bcoe/v8-coverage@0.2.3:
     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
     dev: true
@@ -5089,6 +6502,14 @@ packages:
       '@jridgewell/sourcemap-codec': 1.4.14
       '@jridgewell/trace-mapping': 0.3.14
 
+  /@jridgewell/gen-mapping@0.3.8:
+    resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+    engines: {node: '>=6.0.0'}
+    dependencies:
+      '@jridgewell/set-array': 1.2.1
+      '@jridgewell/sourcemap-codec': 1.4.14
+      '@jridgewell/trace-mapping': 0.3.25
+
   /@jridgewell/resolve-uri@3.1.0:
     resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
     engines: {node: '>=6.0.0'}
@@ -5097,6 +6518,10 @@ packages:
     resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
     engines: {node: '>=6.0.0'}
 
+  /@jridgewell/set-array@1.2.1:
+    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+    engines: {node: '>=6.0.0'}
+
   /@jridgewell/source-map@0.3.2:
     resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
     dependencies:
@@ -5113,6 +6538,12 @@ packages:
       '@jridgewell/resolve-uri': 3.1.0
       '@jridgewell/sourcemap-codec': 1.4.14
 
+  /@jridgewell/trace-mapping@0.3.25:
+    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.0
+      '@jridgewell/sourcemap-codec': 1.4.14
+
   /@jridgewell/trace-mapping@0.3.9:
     resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
     dependencies:
@@ -5314,6 +6745,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: false
     optional: true
@@ -5323,6 +6755,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: false
     optional: true
@@ -5332,6 +6765,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: false
     optional: true
@@ -5341,6 +6775,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: false
     optional: true
@@ -5457,6 +6892,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: true
     optional: true
@@ -5466,6 +6902,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: true
     optional: true
@@ -5475,6 +6912,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [glibc]
     requiresBuild: true
     dev: true
     optional: true
@@ -5484,6 +6922,7 @@ packages:
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
+    libc: [musl]
     requiresBuild: true
     dev: true
     optional: true
@@ -5624,7 +7063,60 @@ packages:
       ora: 3.4.0
     dev: false
 
-  /@react-native-community/cli@5.0.1(@babel/core@7.19.1)(react-native@0.64.3):
+  /@react-native-community/cli@5.0.1(@babel/core@7.19.1)(react-native@0.64.3):
+    resolution: {integrity: sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==}
+    engines: {node: '>=12'}
+    hasBin: true
+    peerDependencies:
+      react-native: '>=0.64.0-rc.0 || 0.0.0-*'
+    dependencies:
+      '@react-native-community/cli-debugger-ui': 5.0.1
+      '@react-native-community/cli-hermes': 5.0.1
+      '@react-native-community/cli-server-api': 5.0.1
+      '@react-native-community/cli-tools': 5.0.1
+      '@react-native-community/cli-types': 5.0.1
+      appdirsjs: 1.2.7
+      chalk: 3.0.0
+      command-exists: 1.2.9
+      commander: 2.20.3
+      cosmiconfig: 5.2.1
+      deepmerge: 3.3.0
+      envinfo: 7.8.1
+      execa: 1.0.0
+      find-up: 4.1.0
+      fs-extra: 8.1.0
+      glob: 7.2.3
+      graceful-fs: 4.2.10
+      joi: 17.6.0
+      leven: 3.1.0
+      lodash: 4.17.21
+      metro: 0.64.0
+      metro-config: 0.64.0
+      metro-core: 0.64.0
+      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.19.1)
+      metro-resolver: 0.64.0
+      metro-runtime: 0.64.0
+      minimist: 1.2.6
+      mkdirp: 0.5.6
+      node-stream-zip: 1.15.0
+      ora: 3.4.0
+      pretty-format: 26.6.2
+      prompts: 2.4.2
+      react-native: 0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@17.0.1)
+      semver: 6.3.0
+      serve-static: 1.15.0
+      strip-ansi: 5.2.0
+      sudo-prompt: 9.2.1
+      wcwidth: 1.0.1
+    transitivePeerDependencies:
+      - '@babel/core'
+      - bufferutil
+      - encoding
+      - supports-color
+      - utf-8-validate
+    dev: false
+
+  /@react-native-community/cli@5.0.1(@babel/core@7.27.1)(react-native@0.64.3):
     resolution: {integrity: sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==}
     engines: {node: '>=12'}
     hasBin: true
@@ -5654,7 +7146,7 @@ packages:
       metro: 0.64.0
       metro-config: 0.64.0
       metro-core: 0.64.0
-      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.19.1)
+      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.27.1)
       metro-resolver: 0.64.0
       metro-runtime: 0.64.0
       minimist: 1.2.6
@@ -5663,7 +7155,7 @@ packages:
       ora: 3.4.0
       pretty-format: 26.6.2
       prompts: 2.4.2
-      react-native: 0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@17.0.1)
+      react-native: 0.64.3(@babel/core@7.27.1)(@babel/preset-env@7.18.6)(react@18.2.0)
       semver: 6.3.0
       serve-static: 1.15.0
       strip-ansi: 5.2.0
@@ -6007,7 +7499,7 @@ packages:
     resolution: {integrity: sha512-oEvsm2B/WtcHKE+IcEeeCqNU/ltFGaVyGbpcm4g/2ytuT49jrlH9x5qRKL/H3A6yfM4YAbSbC0ceT5+9CEXnLg==}
     engines: {node: '>=12'}
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.27.1
       '@babel/runtime': 7.19.0
       '@types/aria-query': 4.2.2
       aria-query: 5.0.2
@@ -6226,11 +7718,11 @@ packages:
       recast: 0.20.5
     dev: true
 
-  /@types/jscodeshift@0.11.6:
-    resolution: {integrity: sha512-3lJ4DajWkk4MZ1F7q+1C7jE0z0xOtbu0VU/Kg3wdPq2DUvJjySSlu3B5Q/bICrTxugLhONBO7inRUWsymOID/A==}
+  /@types/jscodeshift@17.3.0:
+    resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==}
     dependencies:
-      ast-types: 0.14.2
-      recast: 0.20.5
+      ast-types: 0.16.1
+      recast: 0.23.11
     dev: true
 
   /@types/json-schema@7.0.11:
@@ -6883,7 +8375,7 @@ packages:
   /@vue/compiler-sfc@2.7.10:
     resolution: {integrity: sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q==}
     dependencies:
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       postcss: 8.4.21
       source-map: 0.6.1
     dev: true
@@ -7524,15 +9016,6 @@ packages:
     resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
     dev: false
 
-  /assert@2.0.0:
-    resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==}
-    dependencies:
-      es6-object-assign: 1.1.0
-      is-nan: 1.3.2
-      object-is: 1.1.5
-      util: 0.12.5
-    dev: true
-
   /assertion-error@1.1.0:
     resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
     dev: true
@@ -7670,6 +9153,15 @@ packages:
       '@babel/core': ^7.0.0-0
     dependencies:
       '@babel/core': 7.19.1
+    dev: true
+
+  /babel-core@7.0.0-bridge.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+    dev: false
 
   /babel-eslint@10.1.0(eslint@8.34.0):
     resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==}
@@ -7708,6 +9200,25 @@ packages:
       - supports-color
     dev: true
 
+  /babel-jest@27.5.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==}
+    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+    peerDependencies:
+      '@babel/core': ^7.8.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@jest/transform': 27.5.1
+      '@jest/types': 27.5.1
+      '@types/babel__core': 7.1.19
+      babel-plugin-istanbul: 6.1.1
+      babel-preset-jest: 27.5.1(@babel/core@7.27.1)
+      chalk: 4.1.2
+      graceful-fs: 4.2.10
+      slash: 3.0.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-add-module-exports@0.2.1:
     resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==}
     dev: true
@@ -7752,6 +9263,18 @@ packages:
       html-entities: 2.3.2
     dev: true
 
+  /babel-plugin-jsx-dom-expressions@0.34.7(@babel/core@7.27.1):
+    resolution: {integrity: sha512-jTxBhu/MQscWdOcLfqKAY8lIiRsv1ivrMQShlePoa4G8S2cFNb93HTWN4FFdp3SpILaibygFXWU3H+aHpoGH/w==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-module-imports': 7.16.0
+      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
+      '@babel/types': 7.19.0
+      html-entities: 2.3.2
+    dev: true
+
   /babel-plugin-module-resolver@4.1.0:
     resolution: {integrity: sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==}
     engines: {node: '>= 8.0.0'}
@@ -7774,6 +9297,19 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /babel-plugin-polyfill-corejs2@0.3.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/compat-data': 7.19.1
+      '@babel/core': 7.27.1
+      '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
+      semver: 6.3.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-polyfill-corejs3@0.5.2(@babel/core@7.19.1):
     resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
     peerDependencies:
@@ -7785,6 +9321,18 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /babel-plugin-polyfill-corejs3@0.5.2(@babel/core@7.27.1):
+    resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
+      core-js-compat: 3.23.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-polyfill-regenerator@0.3.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
     peerDependencies:
@@ -7795,6 +9343,17 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /babel-plugin-polyfill-regenerator@0.3.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1)
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /babel-plugin-react-native-web@0.17.7:
     resolution: {integrity: sha512-UBLfIsfU3vi//Ab4i0WSWAfm1whLTK9uJoH0RPZ6a67eS/h9JGYjKy7+1RpHxSBviHi9NIMiYfWseTLjyIsE1g==}
     dev: false
@@ -7827,6 +9386,26 @@ packages:
       '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.19.1)
     dev: true
 
+  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1)
+      '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.1)
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.1)
+    dev: true
+
   /babel-preset-expo@8.5.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-qQVG6Twn7tymODw8cH+85QtzFqcD0ckLWgVLC8pzRkwLKP5lIs5gtiYdoUsvhvyWWesSFR9VlhN0HE2Nu7WCWQ==}
     dependencies:
@@ -7878,6 +9457,43 @@ packages:
       - supports-color
     dev: false
 
+  /babel-preset-fbjs@3.4.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-object-rest-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.1)
+      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoping': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.27.1)
+      '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.27.1)
+      babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
   /babel-preset-jest@27.5.1(@babel/core@7.19.1):
     resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -7889,6 +9505,17 @@ packages:
       babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1)
     dev: true
 
+  /babel-preset-jest@27.5.1(@babel/core@7.27.1):
+    resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==}
+    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      babel-plugin-jest-hoist: 27.5.1
+      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.27.1)
+    dev: true
+
   /babel-preset-solid@1.5.4(@babel/core@7.19.1):
     resolution: {integrity: sha512-pangM+KhBx8J6gRHiaRO4yD/J5gK3sydX+TIoC1TaYjxtVV78GIHRtg/HHtCAfg/iRQCJyiGR9TrN0brG8eDZA==}
     peerDependencies:
@@ -7898,6 +9525,15 @@ packages:
       babel-plugin-jsx-dom-expressions: 0.34.7(@babel/core@7.19.1)
     dev: true
 
+  /babel-preset-solid@1.5.4(@babel/core@7.27.1):
+    resolution: {integrity: sha512-pangM+KhBx8J6gRHiaRO4yD/J5gK3sydX+TIoC1TaYjxtVV78GIHRtg/HHtCAfg/iRQCJyiGR9TrN0brG8eDZA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+    dependencies:
+      '@babel/core': 7.27.1
+      babel-plugin-jsx-dom-expressions: 0.34.7(@babel/core@7.27.1)
+    dev: true
+
   /balanced-match@1.0.2:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
 
@@ -7986,6 +9622,12 @@ packages:
     dependencies:
       fill-range: 7.0.1
 
+  /braces@3.0.3:
+    resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+    engines: {node: '>=8'}
+    dependencies:
+      fill-range: 7.1.1
+
   /broadcast-channel@4.14.0:
     resolution: {integrity: sha512-uNzxOgBQ+boWCRDESLNg3zZWQ3iz/X7j/uD8pAfr4/S7wQerXVvJI/SBKd9J6ckaPt2jil0gq+7l+3b+kuxJYw==}
     dependencies:
@@ -8030,6 +9672,16 @@ packages:
       update-browserslist-db: 1.0.11(browserslist@4.21.9)
     dev: true
 
+  /browserslist@4.24.5:
+    resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==}
+    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+    hasBin: true
+    dependencies:
+      caniuse-lite: 1.0.30001717
+      electron-to-chromium: 1.5.151
+      node-releases: 2.0.19
+      update-browserslist-db: 1.1.3(browserslist@4.24.5)
+
   /bs-logger@0.2.6:
     resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
     engines: {node: '>= 6'}
@@ -8215,6 +9867,9 @@ packages:
   /caniuse-lite@1.0.30001508:
     resolution: {integrity: sha512-sdQZOJdmt3GJs1UMNpCCCyeuS2IEGLXnHyAo9yIO5JJDjbjoVRij4M1qep6P6gFpptD1PqIYgzM+gwJbOi92mw==}
 
+  /caniuse-lite@1.0.30001717:
+    resolution: {integrity: sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==}
+
   /capture-exit@2.0.0:
     resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==}
     engines: {node: 6.* || 8.* || >= 10.*}
@@ -8576,6 +10231,9 @@ packages:
     dependencies:
       safe-buffer: 5.1.2
 
+  /convert-source-map@2.0.0:
+    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
   /cookie@0.4.2:
     resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
     engines: {node: '>= 0.6'}
@@ -9091,6 +10749,9 @@ packages:
     resolution: {integrity: sha512-LlCgQ8zgYZPymf5H4aE9itwiIWH4YlCiv1HFLmmcBeFYi5E+3eaIFnjHzYtcFQbaKfAW+CqZ9pgxo33DZuoqPg==}
     dev: true
 
+  /electron-to-chromium@1.5.151:
+    resolution: {integrity: sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==}
+
   /emittery@0.8.1:
     resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==}
     engines: {node: '>=10'}
@@ -9251,10 +10912,6 @@ packages:
       is-symbol: 1.0.4
     dev: true
 
-  /es6-object-assign@1.1.0:
-    resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==}
-    dev: true
-
   /es6-promise@3.3.1:
     resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
     dev: true
@@ -9503,6 +11160,10 @@ packages:
     resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
     engines: {node: '>=6'}
 
+  /escalade@3.2.0:
+    resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+    engines: {node: '>=6'}
+
   /escape-html@1.0.3:
     resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
     dev: false
@@ -9647,6 +11308,21 @@ packages:
       string-natural-compare: 3.0.1
     dev: true
 
+  /eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.27.1)(@babel/plugin-transform-react-jsx@7.19.0)(eslint@8.34.0):
+    resolution: {integrity: sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==}
+    engines: {node: '>=12.0.0'}
+    peerDependencies:
+      '@babel/plugin-syntax-flow': ^7.14.5
+      '@babel/plugin-transform-react-jsx': ^7.14.9
+      eslint: ^8.1.0
+    dependencies:
+      '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.19.1)
+      '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.19.1)
+      eslint: 8.34.0
+      lodash: 4.17.21
+      string-natural-compare: 3.0.1
+    dev: true
+
   /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.41.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.34.0):
     resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
     engines: {node: '>=4'}
@@ -10121,6 +11797,11 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
+  /expect-type@1.2.1:
+    resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==}
+    engines: {node: '>=12.0.0'}
+    dev: true
+
   /expect@27.5.1:
     resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -10425,6 +12106,12 @@ packages:
     dependencies:
       to-regex-range: 5.0.1
 
+  /fill-range@7.1.1:
+    resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+    engines: {node: '>=8'}
+    dependencies:
+      to-regex-range: 5.0.1
+
   /filter-obj@1.1.0:
     resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
     engines: {node: '>=0.10.0'}
@@ -11248,14 +12935,6 @@ packages:
     dependencies:
       kind-of: 6.0.3
 
-  /is-arguments@1.1.1:
-    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      call-bind: 1.0.2
-      has-tostringtag: 1.0.0
-    dev: true
-
   /is-array-buffer@3.0.2:
     resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
     dependencies:
@@ -11407,13 +13086,6 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
-  /is-generator-function@1.0.10:
-    resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      has-tostringtag: 1.0.0
-    dev: true
-
   /is-git-repository@1.1.1:
     resolution: {integrity: sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==}
     dependencies:
@@ -11448,14 +13120,6 @@ packages:
     resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
     dev: true
 
-  /is-nan@1.3.2:
-    resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      call-bind: 1.0.2
-      define-properties: 1.1.4
-    dev: true
-
   /is-negative-zero@2.0.2:
     resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
     engines: {node: '>= 0.4'}
@@ -11888,7 +13552,7 @@ packages:
       jest-serializer: 26.6.2
       jest-util: 26.6.2
       jest-worker: 26.6.2
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       sane: 4.1.0
       walker: 1.0.8
     optionalDependencies:
@@ -12149,7 +13813,7 @@ packages:
       chalk: 4.1.2
       graceful-fs: 4.2.10
       is-ci: 2.0.0
-      micromatch: 4.0.5
+      micromatch: 4.0.8
     dev: false
 
   /jest-util@27.5.1:
@@ -12309,17 +13973,17 @@ packages:
     peerDependencies:
       '@babel/preset-env': ^7.1.6
     dependencies:
-      '@babel/core': 7.19.1
-      '@babel/parser': 7.19.1
-      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/core': 7.27.1
+      '@babel/parser': 7.27.2
+      '@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.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
       '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-flow': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-typescript': 7.18.6(@babel/core@7.19.1)
-      '@babel/register': 7.18.6(@babel/core@7.19.1)
-      babel-core: 7.0.0-bridge.0(@babel/core@7.19.1)
+      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/register': 7.27.1(@babel/core@7.27.1)
+      babel-core: 7.0.0-bridge.0(@babel/core@7.27.1)
       colors: 1.1.2
       flow-parser: 0.121.0
       graceful-fs: 4.2.10
@@ -12345,7 +14009,7 @@ packages:
       '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
+      '@babel/preset-env': 7.18.6(@babel/core@7.27.1)
       '@babel/preset-flow': 7.18.6(@babel/core@7.19.1)
       '@babel/preset-typescript': 7.18.6(@babel/core@7.19.1)
       '@babel/register': 7.18.6(@babel/core@7.19.1)
@@ -12363,8 +14027,9 @@ packages:
       - supports-color
     dev: true
 
-  /jscodeshift@0.15.0(@babel/preset-env@7.18.6):
-    resolution: {integrity: sha512-t337Wx7Vy1ffhas7E1KZUHaR9YPdeCfxPvxz9k6DKwYW88pcs1piR1eR9d+7GQZGSQIZd6a+cfIM3XpMe9rFKQ==}
+  /jscodeshift@17.3.0(@babel/preset-env@7.18.6):
+    resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==}
+    engines: {node: '>=16'}
     hasBin: true
     peerDependencies:
       '@babel/preset-env': ^7.1.6
@@ -12372,26 +14037,25 @@ packages:
       '@babel/preset-env':
         optional: true
     dependencies:
-      '@babel/core': 7.19.1
-      '@babel/parser': 7.19.1
-      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/core': 7.27.1
+      '@babel/parser': 7.27.2
+      '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1)
+      '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1)
       '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-flow': 7.18.6(@babel/core@7.19.1)
-      '@babel/preset-typescript': 7.18.6(@babel/core@7.19.1)
-      '@babel/register': 7.18.6(@babel/core@7.19.1)
-      babel-core: 7.0.0-bridge.0(@babel/core@7.19.1)
-      chalk: 4.1.2
+      '@babel/preset-flow': 7.27.1(@babel/core@7.27.1)
+      '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1)
+      '@babel/register': 7.27.1(@babel/core@7.27.1)
       flow-parser: 0.121.0
       graceful-fs: 4.2.10
-      micromatch: 4.0.5
+      micromatch: 4.0.8
       neo-async: 2.6.2
-      node-dir: 0.1.17
-      recast: 0.23.3
-      temp: 0.8.4
-      write-file-atomic: 2.4.3
+      picocolors: 1.1.1
+      recast: 0.23.11
+      tmp: 0.2.3
+      write-file-atomic: 5.0.1
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -12488,6 +14152,11 @@ packages:
     engines: {node: '>=4'}
     hasBin: true
 
+  /jsesc@3.1.0:
+    resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+    engines: {node: '>=6'}
+    hasBin: true
+
   /json-parse-better-errors@1.0.2:
     resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
     dev: false
@@ -12523,7 +14192,6 @@ packages:
     resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
     engines: {node: '>=6'}
     hasBin: true
-    dev: true
 
   /jsonc-parser@3.2.0:
     resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
@@ -12892,6 +14560,11 @@ packages:
       yallist: 2.1.2
     dev: true
 
+  /lru-cache@5.1.1:
+    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+    dependencies:
+      yallist: 3.1.1
+
   /lru-cache@6.0.0:
     resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
     engines: {node: '>=10'}
@@ -13050,7 +14723,7 @@ packages:
   /metro-babel-transformer@0.59.0:
     resolution: {integrity: sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       metro-source-map: 0.59.0
     transitivePeerDependencies:
       - supports-color
@@ -13157,7 +14830,7 @@ packages:
       '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.19.1)
-      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.19.1)
+      '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.19.1)
       '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.19.1)
       '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.1)
       '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.19.1)
@@ -13226,6 +14899,54 @@ packages:
       - supports-color
     dev: false
 
+  /metro-react-native-babel-preset@0.64.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==}
+    peerDependencies:
+      '@babel/core': '*'
+    dependencies:
+      '@babel/core': 7.27.1
+      '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-export-default-from': 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-object-rest-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-export-default-from': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-block-scoping': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-classes': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-computed-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-destructuring': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-flow-strip-types': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-function-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-modules-commonjs': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx-self': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-react-jsx-source': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-regenerator': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-runtime': 7.9.0(@babel/core@7.27.1)
+      '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-spread': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-template-literals': 7.18.6(@babel/core@7.27.1)
+      '@babel/plugin-transform-typescript': 7.19.3(@babel/core@7.27.1)
+      '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.27.1)
+      '@babel/template': 7.18.10
+      react-refresh: 0.4.3
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
   /metro-react-native-babel-transformer@0.59.0(@babel/core@7.19.1):
     resolution: {integrity: sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ==}
     peerDependencies:
@@ -13255,6 +14976,21 @@ packages:
       - supports-color
     dev: false
 
+  /metro-react-native-babel-transformer@0.64.0(@babel/core@7.27.1):
+    resolution: {integrity: sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w==}
+    peerDependencies:
+      '@babel/core': '*'
+    dependencies:
+      '@babel/core': 7.27.1
+      babel-preset-fbjs: 3.4.0(@babel/core@7.27.1)
+      metro-babel-transformer: 0.64.0
+      metro-react-native-babel-preset: 0.64.0(@babel/core@7.27.1)
+      metro-source-map: 0.64.0
+      nullthrows: 1.1.1
+    transitivePeerDependencies:
+      - supports-color
+    dev: false
+
   /metro-resolver@0.64.0:
     resolution: {integrity: sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA==}
     dependencies:
@@ -13326,7 +15062,7 @@ packages:
   /metro-transform-plugins@0.64.0:
     resolution: {integrity: sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@babel/generator': 7.19.0
       '@babel/template': 7.18.10
       '@babel/traverse': 7.19.1
@@ -13338,11 +15074,11 @@ packages:
   /metro-transform-worker@0.64.0:
     resolution: {integrity: sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==}
     dependencies:
-      '@babel/core': 7.19.1
+      '@babel/core': 7.27.1
       '@babel/generator': 7.19.0
-      '@babel/parser': 7.19.1
+      '@babel/parser': 7.27.2
       '@babel/types': 7.19.0
-      babel-preset-fbjs: 3.4.0(@babel/core@7.19.1)
+      babel-preset-fbjs: 3.4.0(@babel/core@7.27.1)
       metro: 0.64.0
       metro-babel-transformer: 0.64.0
       metro-cache: 0.64.0
@@ -13447,6 +15183,13 @@ packages:
       braces: 3.0.2
       picomatch: 2.3.1
 
+  /micromatch@4.0.8:
+    resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+    engines: {node: '>=8.6'}
+    dependencies:
+      braces: 3.0.3
+      picomatch: 2.3.1
+
   /microtime@3.1.0:
     resolution: {integrity: sha512-GcjhfC2y/DF2znac8IRwri7+YUIy34QRHz/iZK3bHrh74qrNNOpAJQwiOMnIG+v1J0K4eiqd+RiGzN3F1eofTQ==}
     engines: {node: '>= 14.13.0'}
@@ -13801,6 +15544,9 @@ packages:
     resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
     dev: true
 
+  /node-releases@2.0.19:
+    resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
   /node-releases@2.0.6:
     resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
 
@@ -13990,14 +15736,6 @@ packages:
     resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
     dev: true
 
-  /object-is@1.1.5:
-    resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
-    engines: {node: '>= 0.4'}
-    dependencies:
-      call-bind: 1.0.2
-      define-properties: 1.1.4
-    dev: true
-
   /object-keys@1.1.1:
     resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
     engines: {node: '>= 0.4'}
@@ -14430,6 +16168,9 @@ packages:
   /picocolors@1.0.0:
     resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
 
+  /picocolors@1.1.1:
+    resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
   /picomatch@2.3.1:
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
     engines: {node: '>=8.6'}
@@ -14447,6 +16188,10 @@ packages:
     resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
     engines: {node: '>= 6'}
 
+  /pirates@4.0.7:
+    resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+    engines: {node: '>= 6'}
+
   /pixelmatch@4.0.2:
     resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==}
     hasBin: true
@@ -15020,7 +16765,7 @@ packages:
       - utf-8-validate
     dev: false
 
-  /react-native@0.64.3(@babel/core@7.19.1)(@babel/preset-env@7.18.6)(react@18.2.0):
+  /react-native@0.64.3(@babel/core@7.27.1)(@babel/preset-env@7.18.6)(react@18.2.0):
     resolution: {integrity: sha512-2OEU74U0Ek1/WeBzPbg6XDsCfjF/9fhrNX/5TFgEiBKd5mNc9LOZ/OlMmkb7iues/ZZ/oc51SbEfLRQdcW0fVw==}
     engines: {node: '>=12'}
     hasBin: true
@@ -15028,7 +16773,7 @@ packages:
       react: 17.0.1
     dependencies:
       '@jest/create-cache-key-function': 26.6.2
-      '@react-native-community/cli': 5.0.1(@babel/core@7.19.1)(react-native@0.64.3)
+      '@react-native-community/cli': 5.0.1(@babel/core@7.27.1)(react-native@0.64.3)
       '@react-native-community/cli-platform-android': 5.0.1
       '@react-native-community/cli-platform-ios': 5.0.2
       '@react-native/assets': 1.0.0
@@ -15042,7 +16787,7 @@ packages:
       invariant: 2.2.4
       jsc-android: 245459.0.0
       metro-babel-register: 0.64.0
-      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.19.1)
+      metro-react-native-babel-transformer: 0.64.0(@babel/core@7.27.1)
       metro-runtime: 0.64.0
       metro-source-map: 0.64.0
       nullthrows: 1.1.1
@@ -15230,14 +16975,14 @@ packages:
       source-map: 0.6.1
       tslib: 2.6.0
 
-  /recast@0.23.3:
-    resolution: {integrity: sha512-HbCVFh2ANP6a09nzD4lx7XthsxMOJWKX5pIcUwtLrmeEIl3I0DwjCoVXDE0Aobk+7k/mS3H50FK4iuYArpcT6Q==}
+  /recast@0.23.11:
+    resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
     engines: {node: '>= 4'}
     dependencies:
-      assert: 2.0.0
       ast-types: 0.16.1
       esprima: 4.0.1
       source-map: 0.6.1
+      tiny-invariant: 1.3.3
       tslib: 2.6.0
     dev: true
 
@@ -15649,6 +17394,10 @@ packages:
     resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
     hasBin: true
 
+  /semver@6.3.1:
+    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+    hasBin: true
+
   /semver@7.0.0:
     resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
     hasBin: true
@@ -15811,6 +17560,11 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
+  /signal-exit@4.1.0:
+    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+    dev: true
+
   /simple-plist@1.3.1:
     resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==}
     dependencies:
@@ -15911,14 +17665,14 @@ packages:
     transitivePeerDependencies:
       - supports-color
 
-  /solid-jest@0.2.0(@babel/core@7.19.1)(babel-preset-solid@1.5.4):
+  /solid-jest@0.2.0(@babel/core@7.27.1)(babel-preset-solid@1.5.4):
     resolution: {integrity: sha512-1ILtAj+z6bh1vTvaDlcT8501vmkzkVZMk2aiexJy+XWTZ+sb9B7IWedvWadIhOwwL97fiW4eMmN6SrbaHjn12A==}
     peerDependencies:
       babel-preset-solid: ^1.0.0
     dependencies:
-      '@babel/preset-env': 7.18.6(@babel/core@7.19.1)
-      babel-jest: 27.5.1(@babel/core@7.19.1)
-      babel-preset-solid: 1.5.4(@babel/core@7.19.1)
+      '@babel/preset-env': 7.18.6(@babel/core@7.27.1)
+      babel-jest: 27.5.1(@babel/core@7.27.1)
+      babel-preset-solid: 1.5.4(@babel/core@7.27.1)
       enhanced-resolve-jest: 1.1.0
     transitivePeerDependencies:
       - '@babel/core'
@@ -16675,6 +18429,10 @@ packages:
     resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==}
     dev: false
 
+  /tiny-invariant@1.3.3:
+    resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+    dev: true
+
   /tiny-warning@1.0.3:
     resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
     dev: false
@@ -16716,6 +18474,11 @@ packages:
       rimraf: 3.0.2
     dev: true
 
+  /tmp@0.2.3:
+    resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==}
+    engines: {node: '>=14.14'}
+    dev: true
+
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
 
@@ -17206,6 +18969,16 @@ packages:
       escalade: 3.1.1
       picocolors: 1.0.0
 
+  /update-browserslist-db@1.1.3(browserslist@4.24.5):
+    resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+    hasBin: true
+    peerDependencies:
+      browserslist: '>= 4.21.0'
+    dependencies:
+      browserslist: 4.24.5
+      escalade: 3.2.0
+      picocolors: 1.1.1
+
   /uri-js@4.4.1:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
@@ -17274,16 +19047,6 @@ packages:
       object.getownpropertydescriptors: 2.1.4
     dev: true
 
-  /util@0.12.5:
-    resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
-    dependencies:
-      inherits: 2.0.4
-      is-arguments: 1.1.1
-      is-generator-function: 1.0.10
-      is-typed-array: 1.1.10
-      which-typed-array: 1.1.9
-    dev: true
-
   /utils-merge@1.0.1:
     resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
     engines: {node: '>= 0.4.0'}
@@ -17599,6 +19362,7 @@ packages:
 
   /vue@2.7.10:
     resolution: {integrity: sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg==}
+    deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
     dependencies:
       '@vue/compiler-sfc': 2.7.10
       csstype: 3.1.0
@@ -17850,6 +19614,14 @@ packages:
       typedarray-to-buffer: 3.1.5
     dev: true
 
+  /write-file-atomic@5.0.1:
+    resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
+    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+    dependencies:
+      imurmurhash: 0.1.4
+      signal-exit: 4.1.0
+    dev: true
+
   /ws@1.1.5:
     resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==}
     peerDependencies:
@@ -17998,6 +19770,9 @@ packages:
     resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
     dev: true
 
+  /yallist@3.1.1:
+    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
   /yallist@4.0.0:
     resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
 


Test patch:
diff --git a/packages/query-core/src/tests/mutations.test.tsx b/packages/query-core/src/tests/mutations.test.tsx
index 651f9e33a..92dd8d682 100644
--- a/packages/query-core/src/tests/mutations.test.tsx
+++ b/packages/query-core/src/tests/mutations.test.tsx
@@ -76,6 +76,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: true,
       isLoading: false,
+      isPending: false,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -103,6 +104,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -122,6 +124,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -141,6 +144,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: false,
+      isPending: false,
       isPaused: false,
       isSuccess: true,
       mutate: expect.any(Function),
@@ -181,6 +185,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -200,6 +205,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -219,6 +225,7 @@ describe('mutations', () => {
       isError: false,
       isIdle: false,
       isLoading: true,
+      isPending: true,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
@@ -238,6 +245,7 @@ describe('mutations', () => {
       isError: true,
       isIdle: false,
       isLoading: false,
+      isPending: false,
       isPaused: false,
       isSuccess: false,
       mutate: expect.any(Function),
diff --git a/packages/query-core/src/tests/queryClient.types.test.tsx b/packages/query-core/src/tests/queryClient.types.test.tsx
new file mode 100644
index 000000000..686300fd1
--- /dev/null
+++ b/packages/query-core/src/tests/queryClient.types.test.tsx
@@ -0,0 +1,13 @@
+import { doNotExecute, queryKey } from './utils'
+import type { QueryClient } from '..'
+
+describe('queryClient', () => {
+  let queryClient: QueryClient
+
+  it('should be used with queryCache', () => {
+    doNotExecute(() => {
+      queryClient.getQueryData(queryKey())
+      queryClient.getQueryData(queryKey(), {})
+    })
+  })
+})
diff --git a/packages/query-core/src/tests/utils.ts b/packages/query-core/src/tests/utils.ts
index a6b20b511..9c07ff8f9 100644
--- a/packages/query-core/src/tests/utils.ts
+++ b/packages/query-core/src/tests/utils.ts
@@ -4,6 +4,8 @@ import { QueryClient } from '@tanstack/query-core'
 import * as utils from '../utils'
 import type { MutationOptions, QueryClientConfig } from '@tanstack/query-core'
 
+export const doNotExecute = (_func: () => void) => true
+
 export function createQueryClient(config?: QueryClientConfig): QueryClient {
   jest.spyOn(console, 'error').mockImplementation(() => undefined)
   return new QueryClient({ logger: mockLogger, ...config })
diff --git a/packages/react-query/src/__tests__/queryOptions.types.test.tsx b/packages/react-query/src/__tests__/queryOptions.types.test.tsx
new file mode 100644
index 000000000..9a9f485e1
--- /dev/null
+++ b/packages/react-query/src/__tests__/queryOptions.types.test.tsx
@@ -0,0 +1,270 @@
+import { expectTypeOf } from 'expect-type'
+import {
+  QueryCache,
+  type UseQueryResult,
+  useQueries,
+  useQuery,
+  useQueryClient,
+} from '@tanstack/react-query'
+import { queryOptions } from '..'
+import { useSuspenseQueries, useSuspenseQuery } from '..'
+import { type UseSuspenseQueryResult } from '../useSuspenseQuery'
+import { doNotExecute } from './utils'
+import type { DefinedUseQueryResult } from '@tanstack/react-query'
+
+const queryKey = ['key'] as const
+const queryFn = () => Promise.resolve({ field: 'success' })
+
+describe('queryOptions', () => {
+  it('should be used with useQuery', () => {
+    doNotExecute(() => {
+      const dd = useQuery(
+        queryOptions({
+          queryKey,
+          queryFn,
+        }),
+      )
+      expectTypeOf(dd).toEqualTypeOf<UseQueryResult<{ field: string }>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+            select: (data) => data.field,
+          }),
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+        }),
+      ).toEqualTypeOf<DefinedUseQueryResult<{ field: string }>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<DefinedUseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: undefined,
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: () => undefined,
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+      expectTypeOf(
+        useQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+            select: (data) => data.field,
+          }),
+          refetchInterval: 1000,
+        }),
+      ).toEqualTypeOf<UseQueryResult<string>>()
+    })
+  })
+  it('should be used with useSuspenseQuery', () => {
+    doNotExecute(() => {
+      expectTypeOf(
+        useSuspenseQuery(
+          queryOptions({
+            queryKey,
+            queryFn,
+          }),
+        ),
+      ).toEqualTypeOf<UseSuspenseQueryResult<{ field: string }>>()
+
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<{ field: string }>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: undefined,
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          initialData: { field: 'success' },
+          select: (data) => data.field,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...queryOptions({
+            queryKey,
+            queryFn,
+            select: (data) => data.field,
+          }),
+          refetchInterval: 1000,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+  it('should be used with useQueries', () => {
+    doNotExecute(() => {
+      const [query1, query2, query3, query4] = useQueries({
+        queries: [
+          queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          queryOptions({
+            queryKey,
+            queryFn,
+            initialData: { field: 'success' },
+          }),
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: { field: 'success' },
+          },
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: undefined,
+          },
+        ],
+      })
+      expectTypeOf(query1).toEqualTypeOf<UseQueryResult<{ field: string }>>()
+      expectTypeOf(query2).toEqualTypeOf<
+        DefinedUseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query3).toEqualTypeOf<
+        DefinedUseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query4).toEqualTypeOf<UseQueryResult<{ field: string }>>()
+    })
+  })
+  it('should be used with useSuspenseQueries', () => {
+    doNotExecute(() => {
+      const [query1, query2, query3, query4, query5] = useSuspenseQueries({
+        queries: [
+          queryOptions({
+            queryKey,
+            queryFn,
+          }),
+          queryOptions({
+            queryKey,
+            queryFn,
+            initialData: { field: 'success' },
+          }),
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: { field: 'success' },
+          },
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+            }),
+            initialData: undefined,
+          },
+          {
+            ...queryOptions({
+              queryKey,
+              queryFn,
+              select: (data) => data.field,
+            }),
+          },
+        ],
+      })
+      expectTypeOf(query1).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query2).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query3).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query4).toEqualTypeOf<
+        UseSuspenseQueryResult<{ field: string }>
+      >()
+      expectTypeOf(query5).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+  it('should be used with useQueryClient', () => {
+    doNotExecute(async () => {
+      const queryClient = useQueryClient()
+      queryClient.invalidateQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.resetQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.removeQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.cancelQueries(queryOptions({ queryKey, queryFn }))
+      queryClient.prefetchQuery(queryOptions({ queryKey, queryFn }))
+      queryClient.refetchQueries(queryOptions({ queryKey, queryFn }))
+      expectTypeOf(
+        await queryClient.fetchQuery(queryOptions({ queryKey, queryFn })),
+      ).toEqualTypeOf<{ field: string }>()
+    })
+  })
+  it('should be used with queryCache', () => {
+    doNotExecute(() => {
+      const queryCache = new QueryCache()
+      queryCache.find({ queryKey: [] })
+      queryCache.find(queryOptions({ queryKey, queryFn }))
+      queryCache.find(queryKey)
+    })
+  })
+})
diff --git a/packages/react-query/src/__tests__/useQuery.types.test.tsx b/packages/react-query/src/__tests__/useQuery.types.test.tsx
index d049b53e0..5e471f875 100644
--- a/packages/react-query/src/__tests__/useQuery.types.test.tsx
+++ b/packages/react-query/src/__tests__/useQuery.types.test.tsx
@@ -1,4 +1,5 @@
 import { useQuery } from '../useQuery'
+import { doNotExecute } from './utils'
 
 export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
   T,
@@ -8,8 +9,6 @@ export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <
 
 export type Expect<T extends true> = T
 
-const doNotExecute = (_func: () => void) => true
-
 describe('initialData', () => {
   describe('Config object overload', () => {
     it('TData should always be defined when initialData is provided as an object', () => {
diff --git a/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx b/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
new file mode 100644
index 000000000..741927ca9
--- /dev/null
+++ b/packages/react-query/src/__tests__/useSuspenseQueries.types.test.tsx
@@ -0,0 +1,102 @@
+import { expectTypeOf } from 'expect-type'
+import { queryOptions } from '..'
+import { useSuspenseQueries } from '..'
+import { doNotExecute } from './utils'
+import type { UseSuspenseQueryResult } from '../useSuspenseQuery'
+
+export const queryKey = ['key'] as const
+const sleep = (ms: number) =>
+  new Promise<undefined>((resolve) => setTimeout(() => resolve(undefined), ms))
+export const queryFn = () => sleep(10).then(() => ({ text: 'response' }))
+export const select = (data: Awaited<ReturnType<typeof queryFn>>) => data.text
+
+describe('useSuspenseQueries', () => {
+  it('type check', () => {
+    doNotExecute(() => {
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 1] as const,
+            queryFn,
+            // @ts-expect-error no suspense
+            suspense: false,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 2] as const,
+            queryFn,
+            select,
+            // @ts-expect-error no suspense
+            suspense: true,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 3] as const,
+            queryFn,
+            // @ts-expect-error no enabled
+            enabled: true,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 4] as const,
+            queryFn,
+            // @ts-expect-error no enabled
+            enabled: true,
+            select,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          {
+            queryKey: [...queryKey, 4] as const,
+            queryFn,
+            // @ts-expect-error no networkMode
+            networkMode: 'always',
+            select,
+          },
+        ] as const,
+      })
+      useSuspenseQueries({
+        queries: [
+          queryOptions({
+            queryKey: [...queryKey, 4] as const,
+            queryFn: () => Promise.resolve({ field: 'success' }),
+            select: (data) => data.field,
+          }),
+        ] as const,
+      })
+      // @ts-expect-error if no items
+      useSuspenseQueries({})
+      // @ts-expect-error if no items
+      useSuspenseQueries()
+
+      const [query1, query2, query3] = useSuspenseQueries({
+        queries: [
+          { queryKey: [...queryKey, 5] as const, queryFn },
+          { queryKey: [...queryKey, 6] as const, queryFn, select },
+          queryOptions({
+            queryKey: [...queryKey, 4] as const,
+            queryFn: () => Promise.resolve({ field: 'success' }),
+            select: (data) => data.field,
+          }),
+        ] as const,
+      })
+
+      expectTypeOf(query1).toEqualTypeOf<
+        UseSuspenseQueryResult<{ text: string }>
+      >()
+      expectTypeOf(query2).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      expectTypeOf(query3).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+})
diff --git a/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx b/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
new file mode 100644
index 000000000..59889d27d
--- /dev/null
+++ b/packages/react-query/src/__tests__/useSuspenseQuery.types.test.tsx
@@ -0,0 +1,81 @@
+import { expectTypeOf } from 'expect-type'
+import {
+  type UseSuspenseQueryResult,
+  useSuspenseQuery,
+} from '../useSuspenseQuery'
+import { queryOptions } from '..'
+import { doNotExecute } from './utils'
+
+const queryKey = ['key'] as const
+const sleep = (ms: number) =>
+  new Promise<undefined>((resolve) => setTimeout(() => resolve(undefined), ms))
+const queryFn = () => sleep(10).then(() => ({ text: 'response' }))
+
+describe('useSuspenseQuery', () => {
+  it('type check', () => {
+    doNotExecute(() => {
+      //@ts-expect-error no arg
+      useSuspenseQuery()
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no suspense
+        suspense: boolean,
+      })
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no useErrorBoundary
+        useErrorBoundary: boolean,
+      })
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no enabled
+        enabled: boolean,
+      })
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no placeholderData
+        placeholderData: 'placeholder',
+      })
+      // eslint-disable-next-line @typescript-eslint/no-unused-expressions
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no isPlaceholderData
+      }).isPlaceholderData
+      useSuspenseQuery({
+        queryKey,
+        queryFn,
+        //@ts-expect-error no networkMode
+        networkMode: 'always',
+      })
+
+      expectTypeOf(useSuspenseQuery({ queryKey, queryFn })).toEqualTypeOf<
+        UseSuspenseQueryResult<{ text: string }>
+      >()
+      expectTypeOf(
+        useSuspenseQuery({
+          queryKey,
+          queryFn,
+          select: (data) => data.text,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+      const options = queryOptions({
+        queryKey,
+        queryFn,
+      })
+      expectTypeOf(useSuspenseQuery(options)).toEqualTypeOf<
+        UseSuspenseQueryResult<{ text: string }>
+      >()
+      expectTypeOf(
+        useSuspenseQuery({
+          ...options,
+          select: (data) => data.text,
+        }),
+      ).toEqualTypeOf<UseSuspenseQueryResult<string>>()
+    })
+  })
+})
diff --git a/packages/react-query/src/__tests__/utils.tsx b/packages/react-query/src/__tests__/utils.tsx
index 264c21269..06d6608db 100644
--- a/packages/react-query/src/__tests__/utils.tsx
+++ b/packages/react-query/src/__tests__/utils.tsx
@@ -4,6 +4,8 @@ import * as utils from '@tanstack/query-core'
 import { QueryClient, QueryClientProvider } from '..'
 import type { ContextOptions, MutationOptions, QueryClientConfig } from '..'
 
+export const doNotExecute = (_func: () => void) => true
+
 export function renderWithClient(
   client: QueryClient,
   ui: React.ReactElement,