From f12acbdb2461216b93f2e76e4688cfbbc9cfd1a2 Mon Sep 17 00:00:00 2001 From: szhsin <41896553+szhsin@users.noreply.github.com> Date: Sun, 24 May 2026 09:33:52 +0000 Subject: [PATCH 1/3] chore(deps): update all dependencies --- dist/cjs/QueryContext.cjs | 11 - dist/cjs/QueryProvider.cjs | 27 - dist/cjs/cache.cjs | 38 - dist/cjs/composable/index.cjs | 9 - dist/cjs/composable/useQueryObserver.cjs | 44 - dist/cjs/index.cjs | 30 - dist/cjs/middleware/index.cjs | 9 - dist/cjs/middleware/queryObserver.cjs | 25 - dist/cjs/queryCacheUtils.cjs | 52 - dist/cjs/queryClient.cjs | 71 - dist/cjs/useLazyQuery.cjs | 8 - dist/cjs/useLazyQuery_.cjs | 19 - dist/cjs/useMutation.cjs | 10 - dist/cjs/useObservable.cjs | 23 - dist/cjs/useQuery.cjs | 8 - dist/cjs/useQueryContext.cjs | 8 - dist/cjs/useQueryCore.cjs | 52 - dist/cjs/useQueryData.cjs | 8 - dist/cjs/useQuery_.cjs | 15 - dist/cjs/utils.cjs | 7 - dist/esm/QueryContext.mjs | 9 - dist/esm/QueryProvider.mjs | 25 - dist/esm/cache.mjs | 36 - dist/esm/composable/index.mjs | 3 - dist/esm/composable/useQueryObserver.mjs | 42 - dist/esm/index.mjs | 12 - dist/esm/middleware/index.mjs | 3 - dist/esm/middleware/queryObserver.mjs | 23 - dist/esm/queryCacheUtils.mjs | 48 - dist/esm/queryClient.mjs | 68 - dist/esm/useLazyQuery.mjs | 6 - dist/esm/useLazyQuery_.mjs | 17 - dist/esm/useMutation.mjs | 8 - dist/esm/useObservable.mjs | 18 - dist/esm/useQuery.mjs | 6 - dist/esm/useQueryContext.mjs | 6 - dist/esm/useQueryCore.mjs | 50 - dist/esm/useQueryData.mjs | 6 - dist/esm/useQuery_.mjs | 13 - dist/esm/utils.mjs | 4 - package-lock.json | 1399 +++++++++-------- package.json | 34 +- types/{ => src}/QueryContext.d.ts | 0 types/{ => src}/QueryProvider.d.ts | 0 types/{ => src}/cache.d.ts | 0 types/{ => src}/composable/index.d.ts | 0 .../composable/useQueryObserver.d.ts | 0 types/{ => src}/index.d.ts | 0 types/{ => src}/middleware/index.d.ts | 0 types/{ => src}/middleware/queryObserver.d.ts | 0 types/{ => src}/queryCacheUtils.d.ts | 0 types/{ => src}/queryClient.d.ts | 0 types/{ => src}/types-internal.d.ts | 0 types/{ => src}/types.d.ts | 0 types/{ => src}/useLazyQuery$.d.ts | 0 types/{ => src}/useLazyQuery.d.ts | 0 types/{ => src}/useMutation.d.ts | 0 types/{ => src}/useObservable.d.ts | 0 types/{ => src}/useQuery$.d.ts | 0 types/{ => src}/useQuery.d.ts | 0 types/{ => src}/useQueryContext.d.ts | 0 types/{ => src}/useQueryCore.d.ts | 0 types/{ => src}/useQueryData.d.ts | 0 types/{ => src}/utils.d.ts | 0 64 files changed, 728 insertions(+), 1582 deletions(-) delete mode 100644 dist/cjs/QueryContext.cjs delete mode 100644 dist/cjs/QueryProvider.cjs delete mode 100644 dist/cjs/cache.cjs delete mode 100644 dist/cjs/composable/index.cjs delete mode 100644 dist/cjs/composable/useQueryObserver.cjs delete mode 100644 dist/cjs/index.cjs delete mode 100644 dist/cjs/middleware/index.cjs delete mode 100644 dist/cjs/middleware/queryObserver.cjs delete mode 100644 dist/cjs/queryCacheUtils.cjs delete mode 100644 dist/cjs/queryClient.cjs delete mode 100644 dist/cjs/useLazyQuery.cjs delete mode 100644 dist/cjs/useLazyQuery_.cjs delete mode 100644 dist/cjs/useMutation.cjs delete mode 100644 dist/cjs/useObservable.cjs delete mode 100644 dist/cjs/useQuery.cjs delete mode 100644 dist/cjs/useQueryContext.cjs delete mode 100644 dist/cjs/useQueryCore.cjs delete mode 100644 dist/cjs/useQueryData.cjs delete mode 100644 dist/cjs/useQuery_.cjs delete mode 100644 dist/cjs/utils.cjs delete mode 100644 dist/esm/QueryContext.mjs delete mode 100644 dist/esm/QueryProvider.mjs delete mode 100644 dist/esm/cache.mjs delete mode 100644 dist/esm/composable/index.mjs delete mode 100644 dist/esm/composable/useQueryObserver.mjs delete mode 100644 dist/esm/index.mjs delete mode 100644 dist/esm/middleware/index.mjs delete mode 100644 dist/esm/middleware/queryObserver.mjs delete mode 100644 dist/esm/queryCacheUtils.mjs delete mode 100644 dist/esm/queryClient.mjs delete mode 100644 dist/esm/useLazyQuery.mjs delete mode 100644 dist/esm/useLazyQuery_.mjs delete mode 100644 dist/esm/useMutation.mjs delete mode 100644 dist/esm/useObservable.mjs delete mode 100644 dist/esm/useQuery.mjs delete mode 100644 dist/esm/useQueryContext.mjs delete mode 100644 dist/esm/useQueryCore.mjs delete mode 100644 dist/esm/useQueryData.mjs delete mode 100644 dist/esm/useQuery_.mjs delete mode 100644 dist/esm/utils.mjs rename types/{ => src}/QueryContext.d.ts (100%) rename types/{ => src}/QueryProvider.d.ts (100%) rename types/{ => src}/cache.d.ts (100%) rename types/{ => src}/composable/index.d.ts (100%) rename types/{ => src}/composable/useQueryObserver.d.ts (100%) rename types/{ => src}/index.d.ts (100%) rename types/{ => src}/middleware/index.d.ts (100%) rename types/{ => src}/middleware/queryObserver.d.ts (100%) rename types/{ => src}/queryCacheUtils.d.ts (100%) rename types/{ => src}/queryClient.d.ts (100%) rename types/{ => src}/types-internal.d.ts (100%) rename types/{ => src}/types.d.ts (100%) rename types/{ => src}/useLazyQuery$.d.ts (100%) rename types/{ => src}/useLazyQuery.d.ts (100%) rename types/{ => src}/useMutation.d.ts (100%) rename types/{ => src}/useObservable.d.ts (100%) rename types/{ => src}/useQuery$.d.ts (100%) rename types/{ => src}/useQuery.d.ts (100%) rename types/{ => src}/useQueryContext.d.ts (100%) rename types/{ => src}/useQueryCore.d.ts (100%) rename types/{ => src}/useQueryData.d.ts (100%) rename types/{ => src}/utils.d.ts (100%) diff --git a/dist/cjs/QueryContext.cjs b/dist/cjs/QueryContext.cjs deleted file mode 100644 index 7e78dff..0000000 --- a/dist/cjs/QueryContext.cjs +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var react = require('react'); -var queryClient = require('./queryClient.cjs'); - -const QueryContext = /*#__PURE__*/react.createContext({ - client: queryClient.defaultQueryClient, - defaultOptions: {} -}); - -exports.QueryContext = QueryContext; diff --git a/dist/cjs/QueryProvider.cjs b/dist/cjs/QueryProvider.cjs deleted file mode 100644 index f1439ed..0000000 --- a/dist/cjs/QueryProvider.cjs +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var react = require('react'); -var QueryContext = require('./QueryContext.cjs'); -var utils = require('./utils.cjs'); -var jsxRuntime = require('react/jsx-runtime'); - -const QueryProvider = ({ - children, - client, - defaultOptions -}) => { - const { - client: baseClient, - defaultOptions: baseOptions - } = react.useContext(QueryContext.QueryContext); - const [initialClient] = react.useState(client || baseClient); - return /*#__PURE__*/jsxRuntime.jsx(QueryContext.QueryContext.Provider, { - value: react.useMemo(() => ({ - client: initialClient, - defaultOptions: defaultOptions || baseOptions - }), [utils.stringify(defaultOptions), utils.stringify(baseOptions)]), - children: children - }); -}; - -exports.QueryProvider = QueryProvider; diff --git a/dist/cjs/cache.cjs b/dist/cjs/cache.cjs deleted file mode 100644 index e398d82..0000000 --- a/dist/cjs/cache.cjs +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -const weakCache = () => { - const cacheMap = new Map(); - const registry = new FinalizationRegistry(heldValue => { - const ref = cacheMap.get(heldValue); - if (ref?.deref && !ref.deref()) { - cacheMap.delete(heldValue); - if (process.env.NODE_ENV !== 'production') { - console.debug(`Cleared cache for key: ${heldValue}`); - } - } - }); - return { - clear: () => cacheMap.clear(), - get: (key, strong) => { - const weakOrStrong = cacheMap.get(key); - if (!weakOrStrong?.deref) return weakOrStrong; - const value = weakOrStrong.deref(); - if (strong && value) { - cacheMap.set(key, value); - registry.unregister(value); - } - return value; - }, - set: (key, value, strong) => { - if (strong) { - cacheMap.set(key, value); - } else { - cacheMap.set(key, new WeakRef(value)); - registry.register(value, key, value); - } - } - }; -}; -const createCache = () => typeof WeakRef === 'function' ? weakCache() : new Map(); - -exports.createCache = createCache; diff --git a/dist/cjs/composable/index.cjs b/dist/cjs/composable/index.cjs deleted file mode 100644 index f379b4b..0000000 --- a/dist/cjs/composable/index.cjs +++ /dev/null @@ -1,9 +0,0 @@ - -'use client'; -'use strict'; - -var useQueryObserver = require('./useQueryObserver.cjs'); - - - -exports.useQueryObserver = useQueryObserver.useQueryObserver; diff --git a/dist/cjs/composable/useQueryObserver.cjs b/dist/cjs/composable/useQueryObserver.cjs deleted file mode 100644 index 019a8ea..0000000 --- a/dist/cjs/composable/useQueryObserver.cjs +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var react = require('react'); - -const useLayoutEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect; -const useQueryObserver = (input, { - onData, - onError -}) => { - const queryCacheEntry$ = input._.$; - const [context] = react.useState({}); - useLayoutEffect(() => { - context.d = onData; - context.e = onError; - }, [context, onData, onError]); - useLayoutEffect(() => { - const unsubscribeState = () => context.a?.forEach(unsubscribe => unsubscribe()); - const listener = ([{ - d: data$, - e: error$, - p: isPending$ - }]) => { - unsubscribeState(); - const { - stateKey: _1, - ...restData - } = data$.meta(); - const metadata = restData; - context.a = [data$.subscribe(data => context.d?.(data, metadata)), error$.subscribe(error => error && context.e?.(error, metadata))]; - if (!isPending$.get()) context.d?.(data$.get(), metadata); - if (error$.get()) context.e?.(error$.get(), metadata); - }; - const queryCacheEntry = queryCacheEntry$.get(); - if (queryCacheEntry[0].r) listener(queryCacheEntry); - const unsubscribeCacheEntry = queryCacheEntry$.subscribe(listener); - return () => { - unsubscribeState(); - unsubscribeCacheEntry(); - }; - }, [context, queryCacheEntry$]); - return input; -}; - -exports.useQueryObserver = useQueryObserver; diff --git a/dist/cjs/index.cjs b/dist/cjs/index.cjs deleted file mode 100644 index 9626b40..0000000 --- a/dist/cjs/index.cjs +++ /dev/null @@ -1,30 +0,0 @@ - -'use client'; -'use strict'; - -var queryClient = require('./queryClient.cjs'); -var QueryProvider = require('./QueryProvider.cjs'); -var useQueryContext = require('./useQueryContext.cjs'); -var useQuery = require('./useQuery.cjs'); -var useQuery$ = require('./useQuery_.cjs'); -var useQueryData = require('./useQueryData.cjs'); -var useLazyQuery = require('./useLazyQuery.cjs'); -var useLazyQuery$ = require('./useLazyQuery_.cjs'); -var useMutation = require('./useMutation.cjs'); -var useObservable = require('./useObservable.cjs'); - - - -exports.createQueryClient = queryClient.createQueryClient; -exports.defaultQueryClient = queryClient.defaultQueryClient; -exports.QueryProvider = QueryProvider.QueryProvider; -exports.useQueryContext = useQueryContext.useQueryContext; -exports.useQuery = useQuery.useQuery; -exports.useQuery$ = useQuery$.useQuery$; -exports.useQueryData = useQueryData.useQueryData; -exports.useLazyQuery = useLazyQuery.useLazyQuery; -exports.useLazyQuery$ = useLazyQuery$.useLazyQuery$; -exports.useMutation = useMutation.useMutation; -exports.useData = useObservable.useData; -exports.useError = useObservable.useError; -exports.useIsFetching = useObservable.useIsFetching; diff --git a/dist/cjs/middleware/index.cjs b/dist/cjs/middleware/index.cjs deleted file mode 100644 index 9c56d04..0000000 --- a/dist/cjs/middleware/index.cjs +++ /dev/null @@ -1,9 +0,0 @@ - -'use client'; -'use strict'; - -var queryObserver = require('./queryObserver.cjs'); - - - -exports.queryObserver = queryObserver.queryObserver; diff --git a/dist/cjs/middleware/queryObserver.cjs b/dist/cjs/middleware/queryObserver.cjs deleted file mode 100644 index 9449829..0000000 --- a/dist/cjs/middleware/queryObserver.cjs +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -const queryObserver = ({ - onData, - onError -}) => ({ - set, - meta -}) => value => { - set(value); - const { - stateKey, - ...metadata - } = meta(); - switch (stateKey) { - case 'data': - onData?.(value, metadata); - break; - case 'error': - if (value) onError?.(value, metadata); - break; - } -}; - -exports.queryObserver = queryObserver; diff --git a/dist/cjs/queryCacheUtils.cjs b/dist/cjs/queryCacheUtils.cjs deleted file mode 100644 index 79b4dd3..0000000 --- a/dist/cjs/queryCacheUtils.cjs +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var utils = require('./utils.cjs'); - -const getStrCacheKey = ({ - queryKey, - args -}, strQueryKey = utils.stringify(queryKey) || '') => args !== utils.UNDEFINED ? `${strQueryKey}|${utils.stringify(args)}` : strQueryKey; -const isDataFresh = (cacheEntry, staleTime = 0) => Date.now() - staleTime < cacheEntry[1].t; -const fetchCacheEntry = async (queryMeta, [{ - d: { - set: setData - }, - e: { - set: setError - }, - p: { - set: setIsPending - }, - f: { - set: setIsFetching - } -}, cacheEntryMutable]) => { - if (!cacheEntryMutable.f) return {}; - setIsFetching(true); - const requestSeq = ++cacheEntryMutable.i; - let data, error; - try { - data = await cacheEntryMutable.f(queryMeta); - } catch (err) { - error = err; - } - if (requestSeq === cacheEntryMutable.i) { - setIsFetching(false); - if (error) { - setError(error); - } else { - setData(data); - setError(utils.UNDEFINED); - setIsPending(false); - cacheEntryMutable.t = Date.now(); - } - } - return { - data, - error - }; -}; - -exports.fetchCacheEntry = fetchCacheEntry; -exports.getStrCacheKey = getStrCacheKey; -exports.isDataFresh = isDataFresh; diff --git a/dist/cjs/queryClient.cjs b/dist/cjs/queryClient.cjs deleted file mode 100644 index 4d9081e..0000000 --- a/dist/cjs/queryClient.cjs +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -var reactishState = require('reactish-state'); -var cache = require('./cache.cjs'); -var queryCacheUtils = require('./queryCacheUtils.cjs'); -var utils = require('./utils.cjs'); - -const createQueryClient = ({ - middleware -} = {}) => { - const state = reactishState.stateBuilder(middleware); - const cache$1 = cache.createCache(); - const getCacheEntry = queryMeta => cache$1.get(queryCacheUtils.getStrCacheKey(queryMeta)); - const createInitialState = (queryMeta, stateKey, initialValue) => state(initialValue, utils.UNDEFINED, { - ...queryMeta, - stateKey - }); - const createDefaultCacheEntry = (queryMeta, queryFn) => [{ - d: createInitialState(queryMeta, 'data'), - e: createInitialState(queryMeta, 'error'), - f: createInitialState(queryMeta, 'isFetching', false), - p: createInitialState(queryMeta, 'isPending', true), - a: queryMeta?.args, - r: !!queryMeta - }, { - i: 0, - f: queryFn - }]; - const resolveCacheEntry = (queryMeta, queryFn, shouldPersist, strQueryKey) => { - const strCacheKey = queryCacheUtils.getStrCacheKey(queryMeta, strQueryKey); - let cacheEntry = cache$1.get(strCacheKey, shouldPersist); - if (!cacheEntry) { - cacheEntry = createDefaultCacheEntry(queryMeta, queryFn); - cache$1.set(strCacheKey, cacheEntry, shouldPersist); - } - if (queryFn) cacheEntry[1].f = queryFn; - return cacheEntry; - }; - return { - _: [createDefaultCacheEntry, resolveCacheEntry], - clear: () => cache$1.clear(), - getData: queryMeta => getCacheEntry(queryMeta)?.[0].d.get(), - setData: (queryMeta, data) => getCacheEntry(queryMeta)?.[0].d.set(data), - cancel: queryMeta => { - const cacheEntry = getCacheEntry(queryMeta); - if (cacheEntry) { - cacheEntry[0].f.set(false); - cacheEntry[1].i++; - } - }, - fetch: ({ - queryFn, - staleTime, - ...queryMeta - }) => { - const cacheEntry = resolveCacheEntry(queryMeta, queryFn, true); - if (queryCacheUtils.isDataFresh(cacheEntry, staleTime)) return { - data: cacheEntry[0].d.get() - }; - return queryCacheUtils.fetchCacheEntry(queryMeta, cacheEntry); - }, - invalidate: queryMeta => { - const cacheEntry = getCacheEntry(queryMeta); - if (cacheEntry) return queryCacheUtils.fetchCacheEntry(queryMeta, cacheEntry); - } - }; -}; -const defaultQueryClient = /*#__PURE__*/createQueryClient(); - -exports.createQueryClient = createQueryClient; -exports.defaultQueryClient = defaultQueryClient; diff --git a/dist/cjs/useLazyQuery.cjs b/dist/cjs/useLazyQuery.cjs deleted file mode 100644 index fc53946..0000000 --- a/dist/cjs/useLazyQuery.cjs +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var useLazyQuery$ = require('./useLazyQuery_.cjs'); -var useObservable = require('./useObservable.cjs'); - -const useLazyQuery = options => useObservable.useObservable(useLazyQuery$.useLazyQuery$(options)); - -exports.useLazyQuery = useLazyQuery; diff --git a/dist/cjs/useLazyQuery_.cjs b/dist/cjs/useLazyQuery_.cjs deleted file mode 100644 index 6686ebe..0000000 --- a/dist/cjs/useLazyQuery_.cjs +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var react = require('react'); -var useQueryCore = require('./useQueryCore.cjs'); - -const useLazyQuery$ = options => { - const internalApi = useQueryCore.useQueryCore({ - ...options, - enabled: false - }); - const fetchFn = internalApi.f; - return { - trigger: react.useCallback(args => fetchFn(args), [fetchFn]), - args: internalApi.s.a, - _: internalApi - }; -}; - -exports.useLazyQuery$ = useLazyQuery$; diff --git a/dist/cjs/useMutation.cjs b/dist/cjs/useMutation.cjs deleted file mode 100644 index d4866c6..0000000 --- a/dist/cjs/useMutation.cjs +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var useLazyQuery = require('./useLazyQuery.cjs'); - -const useMutation = options => useLazyQuery.useLazyQuery({ - ...options, - cacheMode: 'off' -}); - -exports.useMutation = useMutation; diff --git a/dist/cjs/useObservable.cjs b/dist/cjs/useObservable.cjs deleted file mode 100644 index e014dac..0000000 --- a/dist/cjs/useObservable.cjs +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var reactishState = require('reactish-state'); - -const useData = input => ({ - ...input, - data: reactishState.useSnapshot(input._.s.d), - isPending: reactishState.useSnapshot(input._.s.p) -}); -const useError = input => ({ - ...input, - error: reactishState.useSnapshot(input._.s.e) -}); -const useIsFetching = input => ({ - ...input, - isFetching: reactishState.useSnapshot(input._.s.f) -}); -const useObservable = input => useData(useError(useIsFetching(input))); - -exports.useData = useData; -exports.useError = useError; -exports.useIsFetching = useIsFetching; -exports.useObservable = useObservable; diff --git a/dist/cjs/useQuery.cjs b/dist/cjs/useQuery.cjs deleted file mode 100644 index e689487..0000000 --- a/dist/cjs/useQuery.cjs +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var useQuery$ = require('./useQuery_.cjs'); -var useObservable = require('./useObservable.cjs'); - -const useQuery = options => useObservable.useObservable(useQuery$.useQuery$(options)); - -exports.useQuery = useQuery; diff --git a/dist/cjs/useQueryContext.cjs b/dist/cjs/useQueryContext.cjs deleted file mode 100644 index a9ee5f5..0000000 --- a/dist/cjs/useQueryContext.cjs +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var react = require('react'); -var QueryContext = require('./QueryContext.cjs'); - -const useQueryContext = () => react.useContext(QueryContext.QueryContext); - -exports.useQueryContext = useQueryContext; diff --git a/dist/cjs/useQueryCore.cjs b/dist/cjs/useQueryCore.cjs deleted file mode 100644 index 4153192..0000000 --- a/dist/cjs/useQueryCore.cjs +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var react = require('react'); -var reactishState = require('reactish-state'); -var utils = require('./utils.cjs'); -var queryCacheUtils = require('./queryCacheUtils.cjs'); -var useQueryContext = require('./useQueryContext.cjs'); - -const useQueryCore = ({ - queryKey, - queryFn, - enabled = true, - ...options -}) => { - const { - client: { - _: [createDefaultCacheEntry, resolveCacheEntry] - }, - defaultOptions - } = useQueryContext.useQueryContext(); - const { - cacheMode, - staleTime - } = { - ...defaultOptions, - ...options - }; - const strQueryKey = utils.stringify(queryKey); - const [queryCacheEntry$] = react.useState(() => reactishState.state(createDefaultCacheEntry())); - const fetchFn = react.useCallback((args, declarative) => { - const queryMeta = { - queryKey, - args - }; - const cacheEntry = cacheMode !== 'off' ? resolveCacheEntry(queryMeta, queryFn, cacheMode === 'persist', strQueryKey) : createDefaultCacheEntry(queryMeta, queryFn); - queryCacheEntry$.set(cacheEntry); - if (declarative && (cacheEntry[0].f.get() || queryCacheUtils.isDataFresh(cacheEntry, staleTime))) { - return; - } - return queryCacheUtils.fetchCacheEntry(queryMeta, cacheEntry); - }, [strQueryKey, cacheMode, staleTime]); - react.useEffect(() => { - if (enabled) fetchFn(utils.UNDEFINED, true); - }, [enabled, fetchFn]); - return { - s: reactishState.useSnapshot(queryCacheEntry$)[0], - $: queryCacheEntry$, - f: fetchFn - }; -}; - -exports.useQueryCore = useQueryCore; diff --git a/dist/cjs/useQueryData.cjs b/dist/cjs/useQueryData.cjs deleted file mode 100644 index 8cfb944..0000000 --- a/dist/cjs/useQueryData.cjs +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var useObservable = require('./useObservable.cjs'); -var useQuery$ = require('./useQuery_.cjs'); - -const useQueryData = options => useObservable.useData(useQuery$.useQuery$(options)); - -exports.useQueryData = useQueryData; diff --git a/dist/cjs/useQuery_.cjs b/dist/cjs/useQuery_.cjs deleted file mode 100644 index ac90759..0000000 --- a/dist/cjs/useQuery_.cjs +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var react = require('react'); -var useQueryCore = require('./useQueryCore.cjs'); - -const useQuery$ = options => { - const internalApi = useQueryCore.useQueryCore(options); - const fetchFn = internalApi.f; - return { - refetch: react.useCallback(() => fetchFn(), [fetchFn]), - _: internalApi - }; -}; - -exports.useQuery$ = useQuery$; diff --git a/dist/cjs/utils.cjs b/dist/cjs/utils.cjs deleted file mode 100644 index 4b44adb..0000000 --- a/dist/cjs/utils.cjs +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -const UNDEFINED = /*#__PURE__*/(() => {})(); -const stringify = JSON.stringify; - -exports.UNDEFINED = UNDEFINED; -exports.stringify = stringify; diff --git a/dist/esm/QueryContext.mjs b/dist/esm/QueryContext.mjs deleted file mode 100644 index 037f053..0000000 --- a/dist/esm/QueryContext.mjs +++ /dev/null @@ -1,9 +0,0 @@ -import { createContext } from 'react'; -import { defaultQueryClient } from './queryClient.mjs'; - -const QueryContext = /*#__PURE__*/createContext({ - client: defaultQueryClient, - defaultOptions: {} -}); - -export { QueryContext }; diff --git a/dist/esm/QueryProvider.mjs b/dist/esm/QueryProvider.mjs deleted file mode 100644 index 85cbc56..0000000 --- a/dist/esm/QueryProvider.mjs +++ /dev/null @@ -1,25 +0,0 @@ -import { useContext, useState, useMemo } from 'react'; -import { QueryContext } from './QueryContext.mjs'; -import { stringify } from './utils.mjs'; -import { jsx } from 'react/jsx-runtime'; - -const QueryProvider = ({ - children, - client, - defaultOptions -}) => { - const { - client: baseClient, - defaultOptions: baseOptions - } = useContext(QueryContext); - const [initialClient] = useState(client || baseClient); - return /*#__PURE__*/jsx(QueryContext.Provider, { - value: useMemo(() => ({ - client: initialClient, - defaultOptions: defaultOptions || baseOptions - }), [stringify(defaultOptions), stringify(baseOptions)]), - children: children - }); -}; - -export { QueryProvider }; diff --git a/dist/esm/cache.mjs b/dist/esm/cache.mjs deleted file mode 100644 index 2f3a4eb..0000000 --- a/dist/esm/cache.mjs +++ /dev/null @@ -1,36 +0,0 @@ -const weakCache = () => { - const cacheMap = new Map(); - const registry = new FinalizationRegistry(heldValue => { - const ref = cacheMap.get(heldValue); - if (ref?.deref && !ref.deref()) { - cacheMap.delete(heldValue); - if (process.env.NODE_ENV !== 'production') { - console.debug(`Cleared cache for key: ${heldValue}`); - } - } - }); - return { - clear: () => cacheMap.clear(), - get: (key, strong) => { - const weakOrStrong = cacheMap.get(key); - if (!weakOrStrong?.deref) return weakOrStrong; - const value = weakOrStrong.deref(); - if (strong && value) { - cacheMap.set(key, value); - registry.unregister(value); - } - return value; - }, - set: (key, value, strong) => { - if (strong) { - cacheMap.set(key, value); - } else { - cacheMap.set(key, new WeakRef(value)); - registry.register(value, key, value); - } - } - }; -}; -const createCache = () => typeof WeakRef === 'function' ? weakCache() : new Map(); - -export { createCache }; diff --git a/dist/esm/composable/index.mjs b/dist/esm/composable/index.mjs deleted file mode 100644 index c1cde26..0000000 --- a/dist/esm/composable/index.mjs +++ /dev/null @@ -1,3 +0,0 @@ - -'use client'; -export { useQueryObserver } from './useQueryObserver.mjs'; diff --git a/dist/esm/composable/useQueryObserver.mjs b/dist/esm/composable/useQueryObserver.mjs deleted file mode 100644 index e6d7b19..0000000 --- a/dist/esm/composable/useQueryObserver.mjs +++ /dev/null @@ -1,42 +0,0 @@ -import { useState, useLayoutEffect as useLayoutEffect$1, useEffect } from 'react'; - -const useLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect$1 : useEffect; -const useQueryObserver = (input, { - onData, - onError -}) => { - const queryCacheEntry$ = input._.$; - const [context] = useState({}); - useLayoutEffect(() => { - context.d = onData; - context.e = onError; - }, [context, onData, onError]); - useLayoutEffect(() => { - const unsubscribeState = () => context.a?.forEach(unsubscribe => unsubscribe()); - const listener = ([{ - d: data$, - e: error$, - p: isPending$ - }]) => { - unsubscribeState(); - const { - stateKey: _1, - ...restData - } = data$.meta(); - const metadata = restData; - context.a = [data$.subscribe(data => context.d?.(data, metadata)), error$.subscribe(error => error && context.e?.(error, metadata))]; - if (!isPending$.get()) context.d?.(data$.get(), metadata); - if (error$.get()) context.e?.(error$.get(), metadata); - }; - const queryCacheEntry = queryCacheEntry$.get(); - if (queryCacheEntry[0].r) listener(queryCacheEntry); - const unsubscribeCacheEntry = queryCacheEntry$.subscribe(listener); - return () => { - unsubscribeState(); - unsubscribeCacheEntry(); - }; - }, [context, queryCacheEntry$]); - return input; -}; - -export { useQueryObserver }; diff --git a/dist/esm/index.mjs b/dist/esm/index.mjs deleted file mode 100644 index e65d3f8..0000000 --- a/dist/esm/index.mjs +++ /dev/null @@ -1,12 +0,0 @@ - -'use client'; -export { createQueryClient, defaultQueryClient } from './queryClient.mjs'; -export { QueryProvider } from './QueryProvider.mjs'; -export { useQueryContext } from './useQueryContext.mjs'; -export { useQuery } from './useQuery.mjs'; -export { useQuery$ } from './useQuery_.mjs'; -export { useQueryData } from './useQueryData.mjs'; -export { useLazyQuery } from './useLazyQuery.mjs'; -export { useLazyQuery$ } from './useLazyQuery_.mjs'; -export { useMutation } from './useMutation.mjs'; -export { useData, useError, useIsFetching } from './useObservable.mjs'; diff --git a/dist/esm/middleware/index.mjs b/dist/esm/middleware/index.mjs deleted file mode 100644 index 3687411..0000000 --- a/dist/esm/middleware/index.mjs +++ /dev/null @@ -1,3 +0,0 @@ - -'use client'; -export { queryObserver } from './queryObserver.mjs'; diff --git a/dist/esm/middleware/queryObserver.mjs b/dist/esm/middleware/queryObserver.mjs deleted file mode 100644 index ae65249..0000000 --- a/dist/esm/middleware/queryObserver.mjs +++ /dev/null @@ -1,23 +0,0 @@ -const queryObserver = ({ - onData, - onError -}) => ({ - set, - meta -}) => value => { - set(value); - const { - stateKey, - ...metadata - } = meta(); - switch (stateKey) { - case 'data': - onData?.(value, metadata); - break; - case 'error': - if (value) onError?.(value, metadata); - break; - } -}; - -export { queryObserver }; diff --git a/dist/esm/queryCacheUtils.mjs b/dist/esm/queryCacheUtils.mjs deleted file mode 100644 index 653d4a0..0000000 --- a/dist/esm/queryCacheUtils.mjs +++ /dev/null @@ -1,48 +0,0 @@ -import { UNDEFINED, stringify } from './utils.mjs'; - -const getStrCacheKey = ({ - queryKey, - args -}, strQueryKey = stringify(queryKey) || '') => args !== UNDEFINED ? `${strQueryKey}|${stringify(args)}` : strQueryKey; -const isDataFresh = (cacheEntry, staleTime = 0) => Date.now() - staleTime < cacheEntry[1].t; -const fetchCacheEntry = async (queryMeta, [{ - d: { - set: setData - }, - e: { - set: setError - }, - p: { - set: setIsPending - }, - f: { - set: setIsFetching - } -}, cacheEntryMutable]) => { - if (!cacheEntryMutable.f) return {}; - setIsFetching(true); - const requestSeq = ++cacheEntryMutable.i; - let data, error; - try { - data = await cacheEntryMutable.f(queryMeta); - } catch (err) { - error = err; - } - if (requestSeq === cacheEntryMutable.i) { - setIsFetching(false); - if (error) { - setError(error); - } else { - setData(data); - setError(UNDEFINED); - setIsPending(false); - cacheEntryMutable.t = Date.now(); - } - } - return { - data, - error - }; -}; - -export { fetchCacheEntry, getStrCacheKey, isDataFresh }; diff --git a/dist/esm/queryClient.mjs b/dist/esm/queryClient.mjs deleted file mode 100644 index 239c830..0000000 --- a/dist/esm/queryClient.mjs +++ /dev/null @@ -1,68 +0,0 @@ -import { stateBuilder } from 'reactish-state'; -import { createCache } from './cache.mjs'; -import { fetchCacheEntry, isDataFresh, getStrCacheKey } from './queryCacheUtils.mjs'; -import { UNDEFINED } from './utils.mjs'; - -const createQueryClient = ({ - middleware -} = {}) => { - const state = stateBuilder(middleware); - const cache = createCache(); - const getCacheEntry = queryMeta => cache.get(getStrCacheKey(queryMeta)); - const createInitialState = (queryMeta, stateKey, initialValue) => state(initialValue, UNDEFINED, { - ...queryMeta, - stateKey - }); - const createDefaultCacheEntry = (queryMeta, queryFn) => [{ - d: createInitialState(queryMeta, 'data'), - e: createInitialState(queryMeta, 'error'), - f: createInitialState(queryMeta, 'isFetching', false), - p: createInitialState(queryMeta, 'isPending', true), - a: queryMeta?.args, - r: !!queryMeta - }, { - i: 0, - f: queryFn - }]; - const resolveCacheEntry = (queryMeta, queryFn, shouldPersist, strQueryKey) => { - const strCacheKey = getStrCacheKey(queryMeta, strQueryKey); - let cacheEntry = cache.get(strCacheKey, shouldPersist); - if (!cacheEntry) { - cacheEntry = createDefaultCacheEntry(queryMeta, queryFn); - cache.set(strCacheKey, cacheEntry, shouldPersist); - } - if (queryFn) cacheEntry[1].f = queryFn; - return cacheEntry; - }; - return { - _: [createDefaultCacheEntry, resolveCacheEntry], - clear: () => cache.clear(), - getData: queryMeta => getCacheEntry(queryMeta)?.[0].d.get(), - setData: (queryMeta, data) => getCacheEntry(queryMeta)?.[0].d.set(data), - cancel: queryMeta => { - const cacheEntry = getCacheEntry(queryMeta); - if (cacheEntry) { - cacheEntry[0].f.set(false); - cacheEntry[1].i++; - } - }, - fetch: ({ - queryFn, - staleTime, - ...queryMeta - }) => { - const cacheEntry = resolveCacheEntry(queryMeta, queryFn, true); - if (isDataFresh(cacheEntry, staleTime)) return { - data: cacheEntry[0].d.get() - }; - return fetchCacheEntry(queryMeta, cacheEntry); - }, - invalidate: queryMeta => { - const cacheEntry = getCacheEntry(queryMeta); - if (cacheEntry) return fetchCacheEntry(queryMeta, cacheEntry); - } - }; -}; -const defaultQueryClient = /*#__PURE__*/createQueryClient(); - -export { createQueryClient, defaultQueryClient }; diff --git a/dist/esm/useLazyQuery.mjs b/dist/esm/useLazyQuery.mjs deleted file mode 100644 index 821c477..0000000 --- a/dist/esm/useLazyQuery.mjs +++ /dev/null @@ -1,6 +0,0 @@ -import { useLazyQuery$ } from './useLazyQuery_.mjs'; -import { useObservable } from './useObservable.mjs'; - -const useLazyQuery = options => useObservable(useLazyQuery$(options)); - -export { useLazyQuery }; diff --git a/dist/esm/useLazyQuery_.mjs b/dist/esm/useLazyQuery_.mjs deleted file mode 100644 index 23ebd8f..0000000 --- a/dist/esm/useLazyQuery_.mjs +++ /dev/null @@ -1,17 +0,0 @@ -import { useCallback } from 'react'; -import { useQueryCore } from './useQueryCore.mjs'; - -const useLazyQuery$ = options => { - const internalApi = useQueryCore({ - ...options, - enabled: false - }); - const fetchFn = internalApi.f; - return { - trigger: useCallback(args => fetchFn(args), [fetchFn]), - args: internalApi.s.a, - _: internalApi - }; -}; - -export { useLazyQuery$ }; diff --git a/dist/esm/useMutation.mjs b/dist/esm/useMutation.mjs deleted file mode 100644 index d971d43..0000000 --- a/dist/esm/useMutation.mjs +++ /dev/null @@ -1,8 +0,0 @@ -import { useLazyQuery } from './useLazyQuery.mjs'; - -const useMutation = options => useLazyQuery({ - ...options, - cacheMode: 'off' -}); - -export { useMutation }; diff --git a/dist/esm/useObservable.mjs b/dist/esm/useObservable.mjs deleted file mode 100644 index 25a56c6..0000000 --- a/dist/esm/useObservable.mjs +++ /dev/null @@ -1,18 +0,0 @@ -import { useSnapshot } from 'reactish-state'; - -const useData = input => ({ - ...input, - data: useSnapshot(input._.s.d), - isPending: useSnapshot(input._.s.p) -}); -const useError = input => ({ - ...input, - error: useSnapshot(input._.s.e) -}); -const useIsFetching = input => ({ - ...input, - isFetching: useSnapshot(input._.s.f) -}); -const useObservable = input => useData(useError(useIsFetching(input))); - -export { useData, useError, useIsFetching, useObservable }; diff --git a/dist/esm/useQuery.mjs b/dist/esm/useQuery.mjs deleted file mode 100644 index 21b5e82..0000000 --- a/dist/esm/useQuery.mjs +++ /dev/null @@ -1,6 +0,0 @@ -import { useQuery$ } from './useQuery_.mjs'; -import { useObservable } from './useObservable.mjs'; - -const useQuery = options => useObservable(useQuery$(options)); - -export { useQuery }; diff --git a/dist/esm/useQueryContext.mjs b/dist/esm/useQueryContext.mjs deleted file mode 100644 index 7f3a3b3..0000000 --- a/dist/esm/useQueryContext.mjs +++ /dev/null @@ -1,6 +0,0 @@ -import { useContext } from 'react'; -import { QueryContext } from './QueryContext.mjs'; - -const useQueryContext = () => useContext(QueryContext); - -export { useQueryContext }; diff --git a/dist/esm/useQueryCore.mjs b/dist/esm/useQueryCore.mjs deleted file mode 100644 index 4c9c713..0000000 --- a/dist/esm/useQueryCore.mjs +++ /dev/null @@ -1,50 +0,0 @@ -import { useState, useCallback, useEffect } from 'react'; -import { state, useSnapshot } from 'reactish-state'; -import { stringify, UNDEFINED } from './utils.mjs'; -import { isDataFresh, fetchCacheEntry } from './queryCacheUtils.mjs'; -import { useQueryContext } from './useQueryContext.mjs'; - -const useQueryCore = ({ - queryKey, - queryFn, - enabled = true, - ...options -}) => { - const { - client: { - _: [createDefaultCacheEntry, resolveCacheEntry] - }, - defaultOptions - } = useQueryContext(); - const { - cacheMode, - staleTime - } = { - ...defaultOptions, - ...options - }; - const strQueryKey = stringify(queryKey); - const [queryCacheEntry$] = useState(() => state(createDefaultCacheEntry())); - const fetchFn = useCallback((args, declarative) => { - const queryMeta = { - queryKey, - args - }; - const cacheEntry = cacheMode !== 'off' ? resolveCacheEntry(queryMeta, queryFn, cacheMode === 'persist', strQueryKey) : createDefaultCacheEntry(queryMeta, queryFn); - queryCacheEntry$.set(cacheEntry); - if (declarative && (cacheEntry[0].f.get() || isDataFresh(cacheEntry, staleTime))) { - return; - } - return fetchCacheEntry(queryMeta, cacheEntry); - }, [strQueryKey, cacheMode, staleTime]); - useEffect(() => { - if (enabled) fetchFn(UNDEFINED, true); - }, [enabled, fetchFn]); - return { - s: useSnapshot(queryCacheEntry$)[0], - $: queryCacheEntry$, - f: fetchFn - }; -}; - -export { useQueryCore }; diff --git a/dist/esm/useQueryData.mjs b/dist/esm/useQueryData.mjs deleted file mode 100644 index 39c5827..0000000 --- a/dist/esm/useQueryData.mjs +++ /dev/null @@ -1,6 +0,0 @@ -import { useData } from './useObservable.mjs'; -import { useQuery$ } from './useQuery_.mjs'; - -const useQueryData = options => useData(useQuery$(options)); - -export { useQueryData }; diff --git a/dist/esm/useQuery_.mjs b/dist/esm/useQuery_.mjs deleted file mode 100644 index e041177..0000000 --- a/dist/esm/useQuery_.mjs +++ /dev/null @@ -1,13 +0,0 @@ -import { useCallback } from 'react'; -import { useQueryCore } from './useQueryCore.mjs'; - -const useQuery$ = options => { - const internalApi = useQueryCore(options); - const fetchFn = internalApi.f; - return { - refetch: useCallback(() => fetchFn(), [fetchFn]), - _: internalApi - }; -}; - -export { useQuery$ }; diff --git a/dist/esm/utils.mjs b/dist/esm/utils.mjs deleted file mode 100644 index 307d42f..0000000 --- a/dist/esm/utils.mjs +++ /dev/null @@ -1,4 +0,0 @@ -const UNDEFINED = /*#__PURE__*/(() => {})(); -const stringify = JSON.stringify; - -export { UNDEFINED, stringify }; diff --git a/package-lock.json b/package-lock.json index c4dc8c7..d966d01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.2", + "@babel/preset-env": "^7.29.5", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@rollup/plugin-babel": "^7.0.0", @@ -21,30 +21,30 @@ "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", - "@types/node": "^25.5.0", - "@types/react": "^19.2.14", + "@types/node": "^25.9.1", + "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", - "@vitest/coverage-istanbul": "^4.1.2", - "@vitest/coverage-v8": "^4.1.2", - "@vitest/eslint-plugin": "^1.6.13", + "@vitest/coverage-istanbul": "^4.1.7", + "@vitest/coverage-v8": "^4.1.7", + "@vitest/eslint-plugin": "^1.6.18", "babel-plugin-pure-annotations": "^0.1.2", "deplift": "^1.3.0", - "eslint": "^9.39.2", + "eslint": "^10.4.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-hooks-addons": "^0.5.1", - "globals": "^17.4.0", - "jsdom": "^29.0.1", + "globals": "^17.6.0", + "jsdom": "^29.1.1", "npm-run-all": "^4.1.5", - "prettier": "^3.8.1", - "react": "^19.2.4", - "react-dom": "^19.2.4", - "rollup": "^4.60.0", + "prettier": "^3.8.3", + "react": "^19.2.6", + "react-dom": "^19.2.6", + "rollup": "^4.60.4", "rollup-plugin-add-directive": "^1.0.0", - "typescript": "^5.9.3", - "typescript-eslint": "^8.57.2", - "vitest": "^4.1.2" + "typescript": "^6.0.3", + "typescript-eslint": "^8.59.4", + "vitest": "^4.1.7" }, "peerDependencies": { "react": "^16.14 || ^17 || ^18 || ^19" @@ -58,57 +58,47 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.0.1.tgz", - "integrity": "sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==", + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", + "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.1.1", - "@csstools/css-color-parser": "^4.0.2", + "@asamuzakjp/generational-cache": "^1.0.1", + "@csstools/css-calc": "^3.2.0", + "@csstools/css-color-parser": "^4.1.0", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.6" + "@csstools/css-tokenizer": "^4.0.0" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@asamuzakjp/dom-selector": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.0.4.tgz", - "integrity": "sha512-jXR6x4AcT3eIrS2fSNAwJpwirOkGcd+E7F7CP3zjdTqz9B/2huHOL8YJZBgekKwLML+u7qB/6P1LXQuMScsx0w==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", + "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", "dev": true, "license": "MIT", "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", "css-tree": "^3.2.1", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.7" + "is-potential-custom-element-name": "^1.0.1" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "node_modules/@asamuzakjp/generational-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", + "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/nwsapi": { @@ -134,9 +124,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz", + "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==", "dev": true, "license": "MIT", "engines": { @@ -531,6 +521,23 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.3.tgz", + "integrity": "sha512-SRS46DFR4HqzUzCVgi90/xMoL+zeBDBvWdKYXSEzh79kXswNFEglUpMKxR04//dPqwYXWUBJ3mpUd933ru9Kmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", @@ -1082,9 +1089,9 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", - "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.4.tgz", + "integrity": "sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==", "dev": true, "license": "MIT", "dependencies": { @@ -1606,19 +1613,20 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", - "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", + "version": "7.29.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.5.tgz", + "integrity": "sha512-/69t2aEzGKHD76DyLbHysF/QH2LJOB8iFnYO37unDTKBTubzcMRv0f3H5EiN1Q6ajOd/eB7dAInF0qdFVS06kA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.29.0", + "@babel/compat-data": "^7.29.3", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", @@ -1650,7 +1658,7 @@ "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-systemjs": "^7.29.4", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", @@ -1848,9 +1856,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "dev": true, "funding": [ { @@ -1872,9 +1880,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.1.tgz", + "integrity": "sha512-eZ5XOtyhK+mggRafYUWzA0tvaYOFgdY8AkgQiCJF9qNAePnUo/zmsqqYubBBb3sQ8uNUaSKTY9s9klfRaAXL0g==", "dev": true, "funding": [ { @@ -1889,7 +1897,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.1" }, "engines": { "node": ">=20.19.0" @@ -1923,9 +1931,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.2.tgz", - "integrity": "sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.4.tgz", + "integrity": "sha512-wgsqt92b7C7tQhIdPNxj0n9zuUbQlvAuI1exyzeNrOKOi62SD7ren8zqszmpVREjAOqg8cD2FqYhQfAuKjk4sw==", "dev": true, "funding": [ { @@ -1968,21 +1976,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", - "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", - "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "dev": true, "license": "MIT", "optional": true, @@ -1991,9 +1999,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", - "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, @@ -2044,118 +2052,107 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.7", + "@eslint/object-schema": "^3.0.5", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^10.2.4" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "node_modules/@eslint/config-array/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, + "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "18 || 20 || >=22" } }, - "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.15" + "balanced-match": "^4.0.2" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "18 || 20 || >=22" } }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "18 || 20 || >=22" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "node_modules/@eslint/config-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", + "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" }, - "funding": { - "url": "https://eslint.org/donate" + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz", + "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.17.0", + "@eslint/core": "^1.2.1", "levn": "^0.4.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@exodus/bytes": { @@ -2303,20 +2300,22 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", - "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, "node_modules/@nodelib/fs.scandir": { @@ -2358,9 +2357,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.122.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz", - "integrity": "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==", + "version": "0.132.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.132.0.tgz", + "integrity": "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==", "dev": true, "license": "MIT", "funding": { @@ -2368,9 +2367,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz", + "integrity": "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==", "cpu": [ "arm64" ], @@ -2385,9 +2384,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz", + "integrity": "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==", "cpu": [ "arm64" ], @@ -2402,9 +2401,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz", + "integrity": "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==", "cpu": [ "x64" ], @@ -2419,9 +2418,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz", + "integrity": "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==", "cpu": [ "x64" ], @@ -2436,9 +2435,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz", - "integrity": "sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz", + "integrity": "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==", "cpu": [ "arm" ], @@ -2453,13 +2452,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz", + "integrity": "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2470,13 +2472,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz", + "integrity": "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2487,13 +2492,16 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz", + "integrity": "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2504,13 +2512,16 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz", + "integrity": "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2521,13 +2532,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz", + "integrity": "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2538,13 +2552,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz", + "integrity": "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2555,9 +2572,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz", + "integrity": "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==", "cpu": [ "arm64" ], @@ -2572,9 +2589,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz", - "integrity": "sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz", + "integrity": "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==", "cpu": [ "wasm32" ], @@ -2582,16 +2599,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.1" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { - "node": ">=14.0.0" + "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz", + "integrity": "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==", "cpu": [ "arm64" ], @@ -2606,9 +2625,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz", + "integrity": "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==", "cpu": [ "x64" ], @@ -2623,9 +2642,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.12.tgz", - "integrity": "sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, "license": "MIT" }, @@ -2705,9 +2724,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz", - "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.4.tgz", + "integrity": "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==", "cpu": [ "arm" ], @@ -2719,9 +2738,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz", - "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.4.tgz", + "integrity": "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==", "cpu": [ "arm64" ], @@ -2733,9 +2752,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz", - "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.4.tgz", + "integrity": "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==", "cpu": [ "arm64" ], @@ -2747,9 +2766,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz", - "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.4.tgz", + "integrity": "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==", "cpu": [ "x64" ], @@ -2761,9 +2780,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz", - "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.4.tgz", + "integrity": "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==", "cpu": [ "arm64" ], @@ -2775,9 +2794,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz", - "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.4.tgz", + "integrity": "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==", "cpu": [ "x64" ], @@ -2789,13 +2808,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz", - "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.4.tgz", + "integrity": "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2803,13 +2825,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz", - "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.4.tgz", + "integrity": "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==", "cpu": [ "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2817,13 +2842,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz", - "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.4.tgz", + "integrity": "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2831,13 +2859,16 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz", - "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.4.tgz", + "integrity": "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2845,13 +2876,16 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz", - "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.4.tgz", + "integrity": "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==", "cpu": [ "loong64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2859,13 +2893,16 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz", - "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.4.tgz", + "integrity": "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==", "cpu": [ "loong64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2873,13 +2910,16 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz", - "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.4.tgz", + "integrity": "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2887,13 +2927,16 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz", - "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.4.tgz", + "integrity": "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2901,13 +2944,16 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz", - "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.4.tgz", + "integrity": "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2915,13 +2961,16 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz", - "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.4.tgz", + "integrity": "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2929,13 +2978,16 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz", - "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.4.tgz", + "integrity": "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2943,13 +2995,16 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz", - "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.4.tgz", + "integrity": "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2957,13 +3012,16 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz", - "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.4.tgz", + "integrity": "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2971,9 +3029,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz", - "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.4.tgz", + "integrity": "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==", "cpu": [ "x64" ], @@ -2985,9 +3043,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz", - "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.4.tgz", + "integrity": "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==", "cpu": [ "arm64" ], @@ -2999,9 +3057,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz", - "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.4.tgz", + "integrity": "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==", "cpu": [ "arm64" ], @@ -3013,9 +3071,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz", - "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.4.tgz", + "integrity": "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==", "cpu": [ "ia32" ], @@ -3027,9 +3085,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz", - "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz", + "integrity": "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==", "cpu": [ "x64" ], @@ -3041,9 +3099,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz", - "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz", + "integrity": "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==", "cpu": [ "x64" ], @@ -3152,9 +3210,9 @@ } }, "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", "dev": true, "license": "MIT", "optional": true, @@ -3195,6 +3253,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -3220,19 +3285,19 @@ } }, "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "version": "25.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", + "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": ">=7.24.0 <7.24.7" } }, "node_modules/@types/react": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", - "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "version": "19.2.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.15.tgz", + "integrity": "sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3257,20 +3322,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz", - "integrity": "sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.4.tgz", + "integrity": "sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.57.2", - "@typescript-eslint/type-utils": "8.57.2", - "@typescript-eslint/utils": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2", + "@typescript-eslint/scope-manager": "8.59.4", + "@typescript-eslint/type-utils": "8.59.4", + "@typescript-eslint/utils": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4", "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3280,9 +3345,9 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.57.2", + "@typescript-eslint/parser": "^8.59.4", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { @@ -3296,16 +3361,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz", - "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.4.tgz", + "integrity": "sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.57.2", - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2", + "@typescript-eslint/scope-manager": "8.59.4", + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4", "debug": "^4.4.3" }, "engines": { @@ -3317,18 +3382,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz", - "integrity": "sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.4.tgz", + "integrity": "sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.57.2", - "@typescript-eslint/types": "^8.57.2", + "@typescript-eslint/tsconfig-utils": "^8.59.4", + "@typescript-eslint/types": "^8.59.4", "debug": "^4.4.3" }, "engines": { @@ -3339,18 +3404,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz", - "integrity": "sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.4.tgz", + "integrity": "sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2" + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3361,9 +3426,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz", - "integrity": "sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.4.tgz", + "integrity": "sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA==", "dev": true, "license": "MIT", "engines": { @@ -3374,21 +3439,21 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz", - "integrity": "sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.4.tgz", + "integrity": "sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2", - "@typescript-eslint/utils": "8.57.2", + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4", + "@typescript-eslint/utils": "8.59.4", "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3399,13 +3464,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz", - "integrity": "sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.4.tgz", + "integrity": "sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q==", "dev": true, "license": "MIT", "engines": { @@ -3417,21 +3482,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz", - "integrity": "sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.4.tgz", + "integrity": "sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.57.2", - "@typescript-eslint/tsconfig-utils": "8.57.2", - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2", + "@typescript-eslint/project-service": "8.59.4", + "@typescript-eslint/tsconfig-utils": "8.59.4", + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3441,7 +3506,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { @@ -3455,9 +3520,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", "dev": true, "license": "MIT", "dependencies": { @@ -3468,13 +3533,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { "node": "18 || 20 || >=22" @@ -3484,9 +3549,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", "dev": true, "license": "ISC", "bin": { @@ -3497,16 +3562,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz", - "integrity": "sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.4.tgz", + "integrity": "sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.57.2", - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2" + "@typescript-eslint/scope-manager": "8.59.4", + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3517,17 +3582,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz", - "integrity": "sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.4.tgz", + "integrity": "sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/types": "8.59.4", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -3538,23 +3603,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@vitest/coverage-istanbul": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-4.1.2.tgz", - "integrity": "sha512-WSz7+4a7PcMtMNvIP7AXUMffsq4JrWeJaguC8lg6fSQyGxSfaT4Rf81idqwxTT6qX5kjjZw2t9rAnCRRQobSqw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-4.1.7.tgz", + "integrity": "sha512-EbruXy+E9MJk+y7sFzriYfoI4JP2Ow+SyWDkewFOWFjzrbQBHlEgi6dGE7pxge8Z+W+7oJOxAVVb6mQHKCCZlw==", "dev": true, "license": "MIT", "dependencies": { @@ -3573,18 +3625,18 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "4.1.2" + "vitest": "4.1.7" } }, "node_modules/@vitest/coverage-v8": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.2.tgz", - "integrity": "sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.7.tgz", + "integrity": "sha512-qsYPeXc5Q9dFLd1i8Ap+Bx8sQgcp+rFVQo4R0dDsWNBzl26ldVF1qOO+RL24K7FDrR6pA+50XedRLSoSG24bVQ==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.2", + "@vitest/utils": "4.1.7", "ast-v8-to-istanbul": "^1.0.0", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", @@ -3598,8 +3650,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.1.2", - "vitest": "4.1.2" + "@vitest/browser": "4.1.7", + "vitest": "4.1.7" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -3608,14 +3660,14 @@ } }, "node_modules/@vitest/eslint-plugin": { - "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.13.tgz", - "integrity": "sha512-ui7JGWBoQpS5NKKW0FDb1eTuFEZ5EupEv2Psemuyfba7DfA5K52SeDLelt6P4pQJJ/4UGkker/BgMk/KrjH3WQ==", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.18.tgz", + "integrity": "sha512-J6U4X0jH3NwTuYouvrJn6I8ypTOU+GhKEjyVwpoPnDuc23usa/xi/R0caWLBbNp3xLy3/rL1YkuJuneTMVV4Mg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "^8.55.0", - "@typescript-eslint/utils": "^8.55.0" + "@typescript-eslint/scope-manager": "^8.58.0", + "@typescript-eslint/utils": "^8.58.0" }, "engines": { "node": ">=18" @@ -3639,16 +3691,16 @@ } }, "node_modules/@vitest/expect": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.2.tgz", - "integrity": "sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.7.tgz", + "integrity": "sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/spy": "4.1.7", + "@vitest/utils": "4.1.7", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -3657,13 +3709,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz", - "integrity": "sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.7.tgz", + "integrity": "sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.2", + "@vitest/spy": "4.1.7", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -3694,9 +3746,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz", - "integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.7.tgz", + "integrity": "sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==", "dev": true, "license": "MIT", "dependencies": { @@ -3707,13 +3759,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.2.tgz", - "integrity": "sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.7.tgz", + "integrity": "sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.2", + "@vitest/utils": "4.1.7", "pathe": "^2.0.3" }, "funding": { @@ -3721,14 +3773,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz", - "integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.7.tgz", + "integrity": "sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/pretty-format": "4.1.7", + "@vitest/utils": "4.1.7", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -3737,9 +3789,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.2.tgz", - "integrity": "sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.7.tgz", + "integrity": "sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==", "dev": true, "license": "MIT", "funding": { @@ -3747,13 +3799,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz", - "integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.7.tgz", + "integrity": "sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.2", + "@vitest/pretty-format": "4.1.7", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -3762,9 +3814,9 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", "bin": { @@ -3785,9 +3837,9 @@ } }, "node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -3818,6 +3870,7 @@ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3828,13 +3881,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -4238,16 +4284,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001769", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz", @@ -4285,6 +4321,7 @@ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4317,6 +4354,7 @@ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -4329,7 +4367,8 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -4633,13 +4672,13 @@ "license": "MIT" }, "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=0.12" + "node": ">=20.19.0" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" @@ -4863,33 +4902,30 @@ } }, "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.4.0.tgz", + "integrity": "sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.6.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", + "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", @@ -4899,8 +4935,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -4908,7 +4943,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://eslint.org/donate" @@ -4972,9 +5007,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", - "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", "dev": true, "license": "MIT", "dependencies": { @@ -4988,7 +5023,7 @@ "node": ">=18" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, "node_modules/eslint-plugin-react-hooks-addons": { @@ -5020,57 +5055,98 @@ } }, "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" + "eslint-visitor-keys": "^5.0.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5449,9 +5525,9 @@ } }, "node_modules/globals": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", - "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", + "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", "dev": true, "license": "MIT", "engines": { @@ -5646,23 +5722,6 @@ "node": ">= 4" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6188,42 +6247,29 @@ "dev": true, "license": "MIT" }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/jsdom": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.0.1.tgz", - "integrity": "sha512-z6JOK5gRO7aMybVq/y/MlIpKh8JIi68FBKMUtKkK2KH/wMSRlCxQ682d08LB9fYXplyY/UXG8P4XXTScmdjApg==", + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", + "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^5.0.1", - "@asamuzakjp/dom-selector": "^7.0.3", + "@asamuzakjp/css-color": "^5.1.11", + "@asamuzakjp/dom-selector": "^7.1.1", "@bramus/specificity": "^2.4.2", - "@csstools/css-syntax-patches-for-csstree": "^1.1.1", + "@csstools/css-syntax-patches-for-csstree": "^1.1.3", "@exodus/bytes": "^1.15.0", "css-tree": "^3.2.1", "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.7", - "parse5": "^8.0.0", + "lru-cache": "^11.3.5", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^6.0.1", - "undici": "^7.24.5", + "undici": "^7.25.0", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^8.0.1", "whatwg-mimetype": "^5.0.0", @@ -6243,9 +6289,9 @@ } }, "node_modules/jsdom/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.0.tgz", + "integrity": "sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -6489,6 +6535,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6510,6 +6559,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6531,6 +6583,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6552,6 +6607,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6646,13 +6704,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -6832,9 +6883,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", "dev": true, "funding": [ { @@ -7258,19 +7309,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -7286,13 +7324,13 @@ } }, "node_modules/parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", - "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^6.0.0" + "entities": "^8.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -7399,9 +7437,9 @@ } }, "node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "dev": true, "funding": [ { @@ -7419,7 +7457,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -7438,9 +7476,9 @@ } }, "node_modules/prettier": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", - "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, "license": "MIT", "bin": { @@ -7534,25 +7572,25 @@ "license": "MIT" }, "node_modules/react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "version": "19.2.6", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.6.tgz", + "integrity": "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "version": "19.2.6", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.6.tgz", + "integrity": "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==", "dev": true, "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.4" + "react": "^19.2.6" } }, "node_modules/react-is": { @@ -7743,16 +7781,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -7765,14 +7793,14 @@ } }, "node_modules/rolldown": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.12.tgz", - "integrity": "sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz", + "integrity": "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.122.0", - "@rolldown/pluginutils": "1.0.0-rc.12" + "@oxc-project/types": "=0.132.0", + "@rolldown/pluginutils": "^1.0.0" }, "bin": { "rolldown": "bin/cli.mjs" @@ -7781,27 +7809,27 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-x64": "1.0.0-rc.12", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.12", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" + "@rolldown/binding-android-arm64": "1.0.2", + "@rolldown/binding-darwin-arm64": "1.0.2", + "@rolldown/binding-darwin-x64": "1.0.2", + "@rolldown/binding-freebsd-x64": "1.0.2", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.2", + "@rolldown/binding-linux-arm64-gnu": "1.0.2", + "@rolldown/binding-linux-arm64-musl": "1.0.2", + "@rolldown/binding-linux-ppc64-gnu": "1.0.2", + "@rolldown/binding-linux-s390x-gnu": "1.0.2", + "@rolldown/binding-linux-x64-gnu": "1.0.2", + "@rolldown/binding-linux-x64-musl": "1.0.2", + "@rolldown/binding-openharmony-arm64": "1.0.2", + "@rolldown/binding-wasm32-wasi": "1.0.2", + "@rolldown/binding-win32-arm64-msvc": "1.0.2", + "@rolldown/binding-win32-x64-msvc": "1.0.2" } }, "node_modules/rollup": { - "version": "4.60.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz", - "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==", + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.4.tgz", + "integrity": "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==", "dev": true, "license": "MIT", "dependencies": { @@ -7815,31 +7843,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.60.0", - "@rollup/rollup-android-arm64": "4.60.0", - "@rollup/rollup-darwin-arm64": "4.60.0", - "@rollup/rollup-darwin-x64": "4.60.0", - "@rollup/rollup-freebsd-arm64": "4.60.0", - "@rollup/rollup-freebsd-x64": "4.60.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", - "@rollup/rollup-linux-arm-musleabihf": "4.60.0", - "@rollup/rollup-linux-arm64-gnu": "4.60.0", - "@rollup/rollup-linux-arm64-musl": "4.60.0", - "@rollup/rollup-linux-loong64-gnu": "4.60.0", - "@rollup/rollup-linux-loong64-musl": "4.60.0", - "@rollup/rollup-linux-ppc64-gnu": "4.60.0", - "@rollup/rollup-linux-ppc64-musl": "4.60.0", - "@rollup/rollup-linux-riscv64-gnu": "4.60.0", - "@rollup/rollup-linux-riscv64-musl": "4.60.0", - "@rollup/rollup-linux-s390x-gnu": "4.60.0", - "@rollup/rollup-linux-x64-gnu": "4.60.0", - "@rollup/rollup-linux-x64-musl": "4.60.0", - "@rollup/rollup-openbsd-x64": "4.60.0", - "@rollup/rollup-openharmony-arm64": "4.60.0", - "@rollup/rollup-win32-arm64-msvc": "4.60.0", - "@rollup/rollup-win32-ia32-msvc": "4.60.0", - "@rollup/rollup-win32-x64-gnu": "4.60.0", - "@rollup/rollup-win32-x64-msvc": "4.60.0", + "@rollup/rollup-android-arm-eabi": "4.60.4", + "@rollup/rollup-android-arm64": "4.60.4", + "@rollup/rollup-darwin-arm64": "4.60.4", + "@rollup/rollup-darwin-x64": "4.60.4", + "@rollup/rollup-freebsd-arm64": "4.60.4", + "@rollup/rollup-freebsd-x64": "4.60.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", + "@rollup/rollup-linux-arm-musleabihf": "4.60.4", + "@rollup/rollup-linux-arm64-gnu": "4.60.4", + "@rollup/rollup-linux-arm64-musl": "4.60.4", + "@rollup/rollup-linux-loong64-gnu": "4.60.4", + "@rollup/rollup-linux-loong64-musl": "4.60.4", + "@rollup/rollup-linux-ppc64-gnu": "4.60.4", + "@rollup/rollup-linux-ppc64-musl": "4.60.4", + "@rollup/rollup-linux-riscv64-gnu": "4.60.4", + "@rollup/rollup-linux-riscv64-musl": "4.60.4", + "@rollup/rollup-linux-s390x-gnu": "4.60.4", + "@rollup/rollup-linux-x64-gnu": "4.60.4", + "@rollup/rollup-linux-x64-musl": "4.60.4", + "@rollup/rollup-openbsd-x64": "4.60.4", + "@rollup/rollup-openharmony-arm64": "4.60.4", + "@rollup/rollup-win32-arm64-msvc": "4.60.4", + "@rollup/rollup-win32-ia32-msvc": "4.60.4", + "@rollup/rollup-win32-x64-gnu": "4.60.4", + "@rollup/rollup-win32-x64-msvc": "4.60.4", "fsevents": "~2.3.2" } }, @@ -8185,9 +8213,9 @@ "license": "MIT" }, "node_modules/std-env": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz", - "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", "dev": true, "license": "MIT" }, @@ -8392,19 +8420,6 @@ "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8456,14 +8471,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -8542,9 +8557,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -8654,9 +8669,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -8668,16 +8683,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.2.tgz", - "integrity": "sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==", + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.4.tgz", + "integrity": "sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.57.2", - "@typescript-eslint/parser": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2", - "@typescript-eslint/utils": "8.57.2" + "@typescript-eslint/eslint-plugin": "8.59.4", + "@typescript-eslint/parser": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4", + "@typescript-eslint/utils": "8.59.4" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8688,7 +8703,7 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/unbox-primitive": { @@ -8711,9 +8726,9 @@ } }, "node_modules/undici": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.6.tgz", - "integrity": "sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", "dev": true, "license": "MIT", "engines": { @@ -8721,9 +8736,9 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", "dev": true, "license": "MIT" }, @@ -8833,17 +8848,17 @@ } }, "node_modules/vite": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.3.tgz", - "integrity": "sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==", + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.14.tgz", + "integrity": "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", - "postcss": "^8.5.8", - "rolldown": "1.0.0-rc.12", - "tinyglobby": "^0.2.15" + "postcss": "^8.5.15", + "rolldown": "1.0.2", + "tinyglobby": "^0.2.16" }, "bin": { "vite": "bin/vite.js" @@ -8859,8 +8874,8 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.0", - "esbuild": "^0.27.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", @@ -8911,19 +8926,19 @@ } }, "node_modules/vitest": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.2.tgz", - "integrity": "sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.7.tgz", + "integrity": "sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.2", - "@vitest/mocker": "4.1.2", - "@vitest/pretty-format": "4.1.2", - "@vitest/runner": "4.1.2", - "@vitest/snapshot": "4.1.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/expect": "4.1.7", + "@vitest/mocker": "4.1.7", + "@vitest/pretty-format": "4.1.7", + "@vitest/runner": "4.1.7", + "@vitest/snapshot": "4.1.7", + "@vitest/spy": "4.1.7", + "@vitest/utils": "4.1.7", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -8951,10 +8966,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.2", - "@vitest/browser-preview": "4.1.2", - "@vitest/browser-webdriverio": "4.1.2", - "@vitest/ui": "4.1.2", + "@vitest/browser-playwright": "4.1.7", + "@vitest/browser-preview": "4.1.7", + "@vitest/browser-webdriverio": "4.1.7", + "@vitest/coverage-istanbul": "4.1.7", + "@vitest/coverage-v8": "4.1.7", + "@vitest/ui": "4.1.7", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -8978,6 +8995,12 @@ "@vitest/browser-webdriverio": { "optional": true }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, "@vitest/ui": { "optional": true }, diff --git a/package.json b/package.json index 3e47162..07fabe6 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ }, "devDependencies": { "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.2", + "@babel/preset-env": "^7.29.5", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", "@rollup/plugin-babel": "^7.0.0", @@ -74,29 +74,29 @@ "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", - "@types/node": "^25.5.0", - "@types/react": "^19.2.14", + "@types/node": "^25.9.1", + "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", - "@vitest/coverage-istanbul": "^4.1.2", - "@vitest/coverage-v8": "^4.1.2", - "@vitest/eslint-plugin": "^1.6.13", + "@vitest/coverage-istanbul": "^4.1.7", + "@vitest/coverage-v8": "^4.1.7", + "@vitest/eslint-plugin": "^1.6.18", "babel-plugin-pure-annotations": "^0.1.2", "deplift": "^1.3.0", - "eslint": "^9.39.2", + "eslint": "^10.4.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-hooks-addons": "^0.5.1", - "globals": "^17.4.0", - "jsdom": "^29.0.1", + "globals": "^17.6.0", + "jsdom": "^29.1.1", "npm-run-all": "^4.1.5", - "prettier": "^3.8.1", - "react": "^19.2.4", - "react-dom": "^19.2.4", - "rollup": "^4.60.0", + "prettier": "^3.8.3", + "react": "^19.2.6", + "react-dom": "^19.2.6", + "rollup": "^4.60.4", "rollup-plugin-add-directive": "^1.0.0", - "typescript": "^5.9.3", - "typescript-eslint": "^8.57.2", - "vitest": "^4.1.2" + "typescript": "^6.0.3", + "typescript-eslint": "^8.59.4", + "vitest": "^4.1.7" } } diff --git a/types/QueryContext.d.ts b/types/src/QueryContext.d.ts similarity index 100% rename from types/QueryContext.d.ts rename to types/src/QueryContext.d.ts diff --git a/types/QueryProvider.d.ts b/types/src/QueryProvider.d.ts similarity index 100% rename from types/QueryProvider.d.ts rename to types/src/QueryProvider.d.ts diff --git a/types/cache.d.ts b/types/src/cache.d.ts similarity index 100% rename from types/cache.d.ts rename to types/src/cache.d.ts diff --git a/types/composable/index.d.ts b/types/src/composable/index.d.ts similarity index 100% rename from types/composable/index.d.ts rename to types/src/composable/index.d.ts diff --git a/types/composable/useQueryObserver.d.ts b/types/src/composable/useQueryObserver.d.ts similarity index 100% rename from types/composable/useQueryObserver.d.ts rename to types/src/composable/useQueryObserver.d.ts diff --git a/types/index.d.ts b/types/src/index.d.ts similarity index 100% rename from types/index.d.ts rename to types/src/index.d.ts diff --git a/types/middleware/index.d.ts b/types/src/middleware/index.d.ts similarity index 100% rename from types/middleware/index.d.ts rename to types/src/middleware/index.d.ts diff --git a/types/middleware/queryObserver.d.ts b/types/src/middleware/queryObserver.d.ts similarity index 100% rename from types/middleware/queryObserver.d.ts rename to types/src/middleware/queryObserver.d.ts diff --git a/types/queryCacheUtils.d.ts b/types/src/queryCacheUtils.d.ts similarity index 100% rename from types/queryCacheUtils.d.ts rename to types/src/queryCacheUtils.d.ts diff --git a/types/queryClient.d.ts b/types/src/queryClient.d.ts similarity index 100% rename from types/queryClient.d.ts rename to types/src/queryClient.d.ts diff --git a/types/types-internal.d.ts b/types/src/types-internal.d.ts similarity index 100% rename from types/types-internal.d.ts rename to types/src/types-internal.d.ts diff --git a/types/types.d.ts b/types/src/types.d.ts similarity index 100% rename from types/types.d.ts rename to types/src/types.d.ts diff --git a/types/useLazyQuery$.d.ts b/types/src/useLazyQuery$.d.ts similarity index 100% rename from types/useLazyQuery$.d.ts rename to types/src/useLazyQuery$.d.ts diff --git a/types/useLazyQuery.d.ts b/types/src/useLazyQuery.d.ts similarity index 100% rename from types/useLazyQuery.d.ts rename to types/src/useLazyQuery.d.ts diff --git a/types/useMutation.d.ts b/types/src/useMutation.d.ts similarity index 100% rename from types/useMutation.d.ts rename to types/src/useMutation.d.ts diff --git a/types/useObservable.d.ts b/types/src/useObservable.d.ts similarity index 100% rename from types/useObservable.d.ts rename to types/src/useObservable.d.ts diff --git a/types/useQuery$.d.ts b/types/src/useQuery$.d.ts similarity index 100% rename from types/useQuery$.d.ts rename to types/src/useQuery$.d.ts diff --git a/types/useQuery.d.ts b/types/src/useQuery.d.ts similarity index 100% rename from types/useQuery.d.ts rename to types/src/useQuery.d.ts diff --git a/types/useQueryContext.d.ts b/types/src/useQueryContext.d.ts similarity index 100% rename from types/useQueryContext.d.ts rename to types/src/useQueryContext.d.ts diff --git a/types/useQueryCore.d.ts b/types/src/useQueryCore.d.ts similarity index 100% rename from types/useQueryCore.d.ts rename to types/src/useQueryCore.d.ts diff --git a/types/useQueryData.d.ts b/types/src/useQueryData.d.ts similarity index 100% rename from types/useQueryData.d.ts rename to types/src/useQueryData.d.ts diff --git a/types/utils.d.ts b/types/src/utils.d.ts similarity index 100% rename from types/utils.d.ts rename to types/src/utils.d.ts From deb52c2715fd096da341e9d18815fbfbc1427bc1 Mon Sep 17 00:00:00 2001 From: Zheng Song <41896553+szhsin@users.noreply.github.com> Date: Sun, 24 May 2026 19:44:26 +1000 Subject: [PATCH 2/3] chore: fix breaking changes from major version bumps --- dist/cjs/QueryContext.cjs | 11 + dist/cjs/QueryProvider.cjs | 27 ++ dist/cjs/cache.cjs | 38 ++ dist/cjs/composable/index.cjs | 9 + dist/cjs/composable/useQueryObserver.cjs | 44 ++ dist/cjs/index.cjs | 30 ++ dist/cjs/middleware/index.cjs | 9 + dist/cjs/middleware/queryObserver.cjs | 25 ++ dist/cjs/queryCacheUtils.cjs | 52 +++ dist/cjs/queryClient.cjs | 71 ++++ dist/cjs/useLazyQuery.cjs | 8 + dist/cjs/useLazyQuery_.cjs | 19 + dist/cjs/useMutation.cjs | 10 + dist/cjs/useObservable.cjs | 23 + dist/cjs/useQuery.cjs | 8 + dist/cjs/useQueryContext.cjs | 8 + dist/cjs/useQueryCore.cjs | 52 +++ dist/cjs/useQueryData.cjs | 8 + dist/cjs/useQuery_.cjs | 15 + dist/cjs/utils.cjs | 7 + dist/esm/QueryContext.mjs | 9 + dist/esm/QueryProvider.mjs | 25 ++ dist/esm/cache.mjs | 36 ++ dist/esm/composable/index.mjs | 3 + dist/esm/composable/useQueryObserver.mjs | 42 ++ dist/esm/index.mjs | 12 + dist/esm/middleware/index.mjs | 3 + dist/esm/middleware/queryObserver.mjs | 23 + dist/esm/queryCacheUtils.mjs | 48 +++ dist/esm/queryClient.mjs | 68 +++ dist/esm/useLazyQuery.mjs | 6 + dist/esm/useLazyQuery_.mjs | 17 + dist/esm/useMutation.mjs | 8 + dist/esm/useObservable.mjs | 18 + dist/esm/useQuery.mjs | 6 + dist/esm/useQueryContext.mjs | 6 + dist/esm/useQueryCore.mjs | 50 +++ dist/esm/useQueryData.mjs | 6 + dist/esm/useQuery_.mjs | 13 + dist/esm/utils.mjs | 4 + eslint.config.mjs | 8 - package-lock.json | 396 +----------------- package.json | 2 +- src/__tests__/fakeRequest.ts | 3 +- tsconfig.json | 1 + types/{src => }/QueryContext.d.ts | 0 types/{src => }/QueryProvider.d.ts | 0 types/{src => }/cache.d.ts | 0 types/{src => }/composable/index.d.ts | 0 .../composable/useQueryObserver.d.ts | 0 types/{src => }/index.d.ts | 0 types/{src => }/middleware/index.d.ts | 0 types/{src => }/middleware/queryObserver.d.ts | 0 types/{src => }/queryCacheUtils.d.ts | 0 types/{src => }/queryClient.d.ts | 0 types/{src => }/types-internal.d.ts | 0 types/{src => }/types.d.ts | 0 types/{src => }/useLazyQuery$.d.ts | 0 types/{src => }/useLazyQuery.d.ts | 0 types/{src => }/useMutation.d.ts | 0 types/{src => }/useObservable.d.ts | 0 types/{src => }/useQuery$.d.ts | 0 types/{src => }/useQuery.d.ts | 0 types/{src => }/useQueryContext.d.ts | 0 types/{src => }/useQueryCore.d.ts | 0 types/{src => }/useQueryData.d.ts | 0 types/{src => }/utils.d.ts | 0 67 files changed, 903 insertions(+), 384 deletions(-) create mode 100644 dist/cjs/QueryContext.cjs create mode 100644 dist/cjs/QueryProvider.cjs create mode 100644 dist/cjs/cache.cjs create mode 100644 dist/cjs/composable/index.cjs create mode 100644 dist/cjs/composable/useQueryObserver.cjs create mode 100644 dist/cjs/index.cjs create mode 100644 dist/cjs/middleware/index.cjs create mode 100644 dist/cjs/middleware/queryObserver.cjs create mode 100644 dist/cjs/queryCacheUtils.cjs create mode 100644 dist/cjs/queryClient.cjs create mode 100644 dist/cjs/useLazyQuery.cjs create mode 100644 dist/cjs/useLazyQuery_.cjs create mode 100644 dist/cjs/useMutation.cjs create mode 100644 dist/cjs/useObservable.cjs create mode 100644 dist/cjs/useQuery.cjs create mode 100644 dist/cjs/useQueryContext.cjs create mode 100644 dist/cjs/useQueryCore.cjs create mode 100644 dist/cjs/useQueryData.cjs create mode 100644 dist/cjs/useQuery_.cjs create mode 100644 dist/cjs/utils.cjs create mode 100644 dist/esm/QueryContext.mjs create mode 100644 dist/esm/QueryProvider.mjs create mode 100644 dist/esm/cache.mjs create mode 100644 dist/esm/composable/index.mjs create mode 100644 dist/esm/composable/useQueryObserver.mjs create mode 100644 dist/esm/index.mjs create mode 100644 dist/esm/middleware/index.mjs create mode 100644 dist/esm/middleware/queryObserver.mjs create mode 100644 dist/esm/queryCacheUtils.mjs create mode 100644 dist/esm/queryClient.mjs create mode 100644 dist/esm/useLazyQuery.mjs create mode 100644 dist/esm/useLazyQuery_.mjs create mode 100644 dist/esm/useMutation.mjs create mode 100644 dist/esm/useObservable.mjs create mode 100644 dist/esm/useQuery.mjs create mode 100644 dist/esm/useQueryContext.mjs create mode 100644 dist/esm/useQueryCore.mjs create mode 100644 dist/esm/useQueryData.mjs create mode 100644 dist/esm/useQuery_.mjs create mode 100644 dist/esm/utils.mjs rename types/{src => }/QueryContext.d.ts (100%) rename types/{src => }/QueryProvider.d.ts (100%) rename types/{src => }/cache.d.ts (100%) rename types/{src => }/composable/index.d.ts (100%) rename types/{src => }/composable/useQueryObserver.d.ts (100%) rename types/{src => }/index.d.ts (100%) rename types/{src => }/middleware/index.d.ts (100%) rename types/{src => }/middleware/queryObserver.d.ts (100%) rename types/{src => }/queryCacheUtils.d.ts (100%) rename types/{src => }/queryClient.d.ts (100%) rename types/{src => }/types-internal.d.ts (100%) rename types/{src => }/types.d.ts (100%) rename types/{src => }/useLazyQuery$.d.ts (100%) rename types/{src => }/useLazyQuery.d.ts (100%) rename types/{src => }/useMutation.d.ts (100%) rename types/{src => }/useObservable.d.ts (100%) rename types/{src => }/useQuery$.d.ts (100%) rename types/{src => }/useQuery.d.ts (100%) rename types/{src => }/useQueryContext.d.ts (100%) rename types/{src => }/useQueryCore.d.ts (100%) rename types/{src => }/useQueryData.d.ts (100%) rename types/{src => }/utils.d.ts (100%) diff --git a/dist/cjs/QueryContext.cjs b/dist/cjs/QueryContext.cjs new file mode 100644 index 0000000..7e78dff --- /dev/null +++ b/dist/cjs/QueryContext.cjs @@ -0,0 +1,11 @@ +'use strict'; + +var react = require('react'); +var queryClient = require('./queryClient.cjs'); + +const QueryContext = /*#__PURE__*/react.createContext({ + client: queryClient.defaultQueryClient, + defaultOptions: {} +}); + +exports.QueryContext = QueryContext; diff --git a/dist/cjs/QueryProvider.cjs b/dist/cjs/QueryProvider.cjs new file mode 100644 index 0000000..f1439ed --- /dev/null +++ b/dist/cjs/QueryProvider.cjs @@ -0,0 +1,27 @@ +'use strict'; + +var react = require('react'); +var QueryContext = require('./QueryContext.cjs'); +var utils = require('./utils.cjs'); +var jsxRuntime = require('react/jsx-runtime'); + +const QueryProvider = ({ + children, + client, + defaultOptions +}) => { + const { + client: baseClient, + defaultOptions: baseOptions + } = react.useContext(QueryContext.QueryContext); + const [initialClient] = react.useState(client || baseClient); + return /*#__PURE__*/jsxRuntime.jsx(QueryContext.QueryContext.Provider, { + value: react.useMemo(() => ({ + client: initialClient, + defaultOptions: defaultOptions || baseOptions + }), [utils.stringify(defaultOptions), utils.stringify(baseOptions)]), + children: children + }); +}; + +exports.QueryProvider = QueryProvider; diff --git a/dist/cjs/cache.cjs b/dist/cjs/cache.cjs new file mode 100644 index 0000000..e398d82 --- /dev/null +++ b/dist/cjs/cache.cjs @@ -0,0 +1,38 @@ +'use strict'; + +const weakCache = () => { + const cacheMap = new Map(); + const registry = new FinalizationRegistry(heldValue => { + const ref = cacheMap.get(heldValue); + if (ref?.deref && !ref.deref()) { + cacheMap.delete(heldValue); + if (process.env.NODE_ENV !== 'production') { + console.debug(`Cleared cache for key: ${heldValue}`); + } + } + }); + return { + clear: () => cacheMap.clear(), + get: (key, strong) => { + const weakOrStrong = cacheMap.get(key); + if (!weakOrStrong?.deref) return weakOrStrong; + const value = weakOrStrong.deref(); + if (strong && value) { + cacheMap.set(key, value); + registry.unregister(value); + } + return value; + }, + set: (key, value, strong) => { + if (strong) { + cacheMap.set(key, value); + } else { + cacheMap.set(key, new WeakRef(value)); + registry.register(value, key, value); + } + } + }; +}; +const createCache = () => typeof WeakRef === 'function' ? weakCache() : new Map(); + +exports.createCache = createCache; diff --git a/dist/cjs/composable/index.cjs b/dist/cjs/composable/index.cjs new file mode 100644 index 0000000..f379b4b --- /dev/null +++ b/dist/cjs/composable/index.cjs @@ -0,0 +1,9 @@ + +'use client'; +'use strict'; + +var useQueryObserver = require('./useQueryObserver.cjs'); + + + +exports.useQueryObserver = useQueryObserver.useQueryObserver; diff --git a/dist/cjs/composable/useQueryObserver.cjs b/dist/cjs/composable/useQueryObserver.cjs new file mode 100644 index 0000000..019a8ea --- /dev/null +++ b/dist/cjs/composable/useQueryObserver.cjs @@ -0,0 +1,44 @@ +'use strict'; + +var react = require('react'); + +const useLayoutEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect; +const useQueryObserver = (input, { + onData, + onError +}) => { + const queryCacheEntry$ = input._.$; + const [context] = react.useState({}); + useLayoutEffect(() => { + context.d = onData; + context.e = onError; + }, [context, onData, onError]); + useLayoutEffect(() => { + const unsubscribeState = () => context.a?.forEach(unsubscribe => unsubscribe()); + const listener = ([{ + d: data$, + e: error$, + p: isPending$ + }]) => { + unsubscribeState(); + const { + stateKey: _1, + ...restData + } = data$.meta(); + const metadata = restData; + context.a = [data$.subscribe(data => context.d?.(data, metadata)), error$.subscribe(error => error && context.e?.(error, metadata))]; + if (!isPending$.get()) context.d?.(data$.get(), metadata); + if (error$.get()) context.e?.(error$.get(), metadata); + }; + const queryCacheEntry = queryCacheEntry$.get(); + if (queryCacheEntry[0].r) listener(queryCacheEntry); + const unsubscribeCacheEntry = queryCacheEntry$.subscribe(listener); + return () => { + unsubscribeState(); + unsubscribeCacheEntry(); + }; + }, [context, queryCacheEntry$]); + return input; +}; + +exports.useQueryObserver = useQueryObserver; diff --git a/dist/cjs/index.cjs b/dist/cjs/index.cjs new file mode 100644 index 0000000..9626b40 --- /dev/null +++ b/dist/cjs/index.cjs @@ -0,0 +1,30 @@ + +'use client'; +'use strict'; + +var queryClient = require('./queryClient.cjs'); +var QueryProvider = require('./QueryProvider.cjs'); +var useQueryContext = require('./useQueryContext.cjs'); +var useQuery = require('./useQuery.cjs'); +var useQuery$ = require('./useQuery_.cjs'); +var useQueryData = require('./useQueryData.cjs'); +var useLazyQuery = require('./useLazyQuery.cjs'); +var useLazyQuery$ = require('./useLazyQuery_.cjs'); +var useMutation = require('./useMutation.cjs'); +var useObservable = require('./useObservable.cjs'); + + + +exports.createQueryClient = queryClient.createQueryClient; +exports.defaultQueryClient = queryClient.defaultQueryClient; +exports.QueryProvider = QueryProvider.QueryProvider; +exports.useQueryContext = useQueryContext.useQueryContext; +exports.useQuery = useQuery.useQuery; +exports.useQuery$ = useQuery$.useQuery$; +exports.useQueryData = useQueryData.useQueryData; +exports.useLazyQuery = useLazyQuery.useLazyQuery; +exports.useLazyQuery$ = useLazyQuery$.useLazyQuery$; +exports.useMutation = useMutation.useMutation; +exports.useData = useObservable.useData; +exports.useError = useObservable.useError; +exports.useIsFetching = useObservable.useIsFetching; diff --git a/dist/cjs/middleware/index.cjs b/dist/cjs/middleware/index.cjs new file mode 100644 index 0000000..9c56d04 --- /dev/null +++ b/dist/cjs/middleware/index.cjs @@ -0,0 +1,9 @@ + +'use client'; +'use strict'; + +var queryObserver = require('./queryObserver.cjs'); + + + +exports.queryObserver = queryObserver.queryObserver; diff --git a/dist/cjs/middleware/queryObserver.cjs b/dist/cjs/middleware/queryObserver.cjs new file mode 100644 index 0000000..9449829 --- /dev/null +++ b/dist/cjs/middleware/queryObserver.cjs @@ -0,0 +1,25 @@ +'use strict'; + +const queryObserver = ({ + onData, + onError +}) => ({ + set, + meta +}) => value => { + set(value); + const { + stateKey, + ...metadata + } = meta(); + switch (stateKey) { + case 'data': + onData?.(value, metadata); + break; + case 'error': + if (value) onError?.(value, metadata); + break; + } +}; + +exports.queryObserver = queryObserver; diff --git a/dist/cjs/queryCacheUtils.cjs b/dist/cjs/queryCacheUtils.cjs new file mode 100644 index 0000000..79b4dd3 --- /dev/null +++ b/dist/cjs/queryCacheUtils.cjs @@ -0,0 +1,52 @@ +'use strict'; + +var utils = require('./utils.cjs'); + +const getStrCacheKey = ({ + queryKey, + args +}, strQueryKey = utils.stringify(queryKey) || '') => args !== utils.UNDEFINED ? `${strQueryKey}|${utils.stringify(args)}` : strQueryKey; +const isDataFresh = (cacheEntry, staleTime = 0) => Date.now() - staleTime < cacheEntry[1].t; +const fetchCacheEntry = async (queryMeta, [{ + d: { + set: setData + }, + e: { + set: setError + }, + p: { + set: setIsPending + }, + f: { + set: setIsFetching + } +}, cacheEntryMutable]) => { + if (!cacheEntryMutable.f) return {}; + setIsFetching(true); + const requestSeq = ++cacheEntryMutable.i; + let data, error; + try { + data = await cacheEntryMutable.f(queryMeta); + } catch (err) { + error = err; + } + if (requestSeq === cacheEntryMutable.i) { + setIsFetching(false); + if (error) { + setError(error); + } else { + setData(data); + setError(utils.UNDEFINED); + setIsPending(false); + cacheEntryMutable.t = Date.now(); + } + } + return { + data, + error + }; +}; + +exports.fetchCacheEntry = fetchCacheEntry; +exports.getStrCacheKey = getStrCacheKey; +exports.isDataFresh = isDataFresh; diff --git a/dist/cjs/queryClient.cjs b/dist/cjs/queryClient.cjs new file mode 100644 index 0000000..4d9081e --- /dev/null +++ b/dist/cjs/queryClient.cjs @@ -0,0 +1,71 @@ +'use strict'; + +var reactishState = require('reactish-state'); +var cache = require('./cache.cjs'); +var queryCacheUtils = require('./queryCacheUtils.cjs'); +var utils = require('./utils.cjs'); + +const createQueryClient = ({ + middleware +} = {}) => { + const state = reactishState.stateBuilder(middleware); + const cache$1 = cache.createCache(); + const getCacheEntry = queryMeta => cache$1.get(queryCacheUtils.getStrCacheKey(queryMeta)); + const createInitialState = (queryMeta, stateKey, initialValue) => state(initialValue, utils.UNDEFINED, { + ...queryMeta, + stateKey + }); + const createDefaultCacheEntry = (queryMeta, queryFn) => [{ + d: createInitialState(queryMeta, 'data'), + e: createInitialState(queryMeta, 'error'), + f: createInitialState(queryMeta, 'isFetching', false), + p: createInitialState(queryMeta, 'isPending', true), + a: queryMeta?.args, + r: !!queryMeta + }, { + i: 0, + f: queryFn + }]; + const resolveCacheEntry = (queryMeta, queryFn, shouldPersist, strQueryKey) => { + const strCacheKey = queryCacheUtils.getStrCacheKey(queryMeta, strQueryKey); + let cacheEntry = cache$1.get(strCacheKey, shouldPersist); + if (!cacheEntry) { + cacheEntry = createDefaultCacheEntry(queryMeta, queryFn); + cache$1.set(strCacheKey, cacheEntry, shouldPersist); + } + if (queryFn) cacheEntry[1].f = queryFn; + return cacheEntry; + }; + return { + _: [createDefaultCacheEntry, resolveCacheEntry], + clear: () => cache$1.clear(), + getData: queryMeta => getCacheEntry(queryMeta)?.[0].d.get(), + setData: (queryMeta, data) => getCacheEntry(queryMeta)?.[0].d.set(data), + cancel: queryMeta => { + const cacheEntry = getCacheEntry(queryMeta); + if (cacheEntry) { + cacheEntry[0].f.set(false); + cacheEntry[1].i++; + } + }, + fetch: ({ + queryFn, + staleTime, + ...queryMeta + }) => { + const cacheEntry = resolveCacheEntry(queryMeta, queryFn, true); + if (queryCacheUtils.isDataFresh(cacheEntry, staleTime)) return { + data: cacheEntry[0].d.get() + }; + return queryCacheUtils.fetchCacheEntry(queryMeta, cacheEntry); + }, + invalidate: queryMeta => { + const cacheEntry = getCacheEntry(queryMeta); + if (cacheEntry) return queryCacheUtils.fetchCacheEntry(queryMeta, cacheEntry); + } + }; +}; +const defaultQueryClient = /*#__PURE__*/createQueryClient(); + +exports.createQueryClient = createQueryClient; +exports.defaultQueryClient = defaultQueryClient; diff --git a/dist/cjs/useLazyQuery.cjs b/dist/cjs/useLazyQuery.cjs new file mode 100644 index 0000000..fc53946 --- /dev/null +++ b/dist/cjs/useLazyQuery.cjs @@ -0,0 +1,8 @@ +'use strict'; + +var useLazyQuery$ = require('./useLazyQuery_.cjs'); +var useObservable = require('./useObservable.cjs'); + +const useLazyQuery = options => useObservable.useObservable(useLazyQuery$.useLazyQuery$(options)); + +exports.useLazyQuery = useLazyQuery; diff --git a/dist/cjs/useLazyQuery_.cjs b/dist/cjs/useLazyQuery_.cjs new file mode 100644 index 0000000..6686ebe --- /dev/null +++ b/dist/cjs/useLazyQuery_.cjs @@ -0,0 +1,19 @@ +'use strict'; + +var react = require('react'); +var useQueryCore = require('./useQueryCore.cjs'); + +const useLazyQuery$ = options => { + const internalApi = useQueryCore.useQueryCore({ + ...options, + enabled: false + }); + const fetchFn = internalApi.f; + return { + trigger: react.useCallback(args => fetchFn(args), [fetchFn]), + args: internalApi.s.a, + _: internalApi + }; +}; + +exports.useLazyQuery$ = useLazyQuery$; diff --git a/dist/cjs/useMutation.cjs b/dist/cjs/useMutation.cjs new file mode 100644 index 0000000..d4866c6 --- /dev/null +++ b/dist/cjs/useMutation.cjs @@ -0,0 +1,10 @@ +'use strict'; + +var useLazyQuery = require('./useLazyQuery.cjs'); + +const useMutation = options => useLazyQuery.useLazyQuery({ + ...options, + cacheMode: 'off' +}); + +exports.useMutation = useMutation; diff --git a/dist/cjs/useObservable.cjs b/dist/cjs/useObservable.cjs new file mode 100644 index 0000000..e014dac --- /dev/null +++ b/dist/cjs/useObservable.cjs @@ -0,0 +1,23 @@ +'use strict'; + +var reactishState = require('reactish-state'); + +const useData = input => ({ + ...input, + data: reactishState.useSnapshot(input._.s.d), + isPending: reactishState.useSnapshot(input._.s.p) +}); +const useError = input => ({ + ...input, + error: reactishState.useSnapshot(input._.s.e) +}); +const useIsFetching = input => ({ + ...input, + isFetching: reactishState.useSnapshot(input._.s.f) +}); +const useObservable = input => useData(useError(useIsFetching(input))); + +exports.useData = useData; +exports.useError = useError; +exports.useIsFetching = useIsFetching; +exports.useObservable = useObservable; diff --git a/dist/cjs/useQuery.cjs b/dist/cjs/useQuery.cjs new file mode 100644 index 0000000..e689487 --- /dev/null +++ b/dist/cjs/useQuery.cjs @@ -0,0 +1,8 @@ +'use strict'; + +var useQuery$ = require('./useQuery_.cjs'); +var useObservable = require('./useObservable.cjs'); + +const useQuery = options => useObservable.useObservable(useQuery$.useQuery$(options)); + +exports.useQuery = useQuery; diff --git a/dist/cjs/useQueryContext.cjs b/dist/cjs/useQueryContext.cjs new file mode 100644 index 0000000..a9ee5f5 --- /dev/null +++ b/dist/cjs/useQueryContext.cjs @@ -0,0 +1,8 @@ +'use strict'; + +var react = require('react'); +var QueryContext = require('./QueryContext.cjs'); + +const useQueryContext = () => react.useContext(QueryContext.QueryContext); + +exports.useQueryContext = useQueryContext; diff --git a/dist/cjs/useQueryCore.cjs b/dist/cjs/useQueryCore.cjs new file mode 100644 index 0000000..4153192 --- /dev/null +++ b/dist/cjs/useQueryCore.cjs @@ -0,0 +1,52 @@ +'use strict'; + +var react = require('react'); +var reactishState = require('reactish-state'); +var utils = require('./utils.cjs'); +var queryCacheUtils = require('./queryCacheUtils.cjs'); +var useQueryContext = require('./useQueryContext.cjs'); + +const useQueryCore = ({ + queryKey, + queryFn, + enabled = true, + ...options +}) => { + const { + client: { + _: [createDefaultCacheEntry, resolveCacheEntry] + }, + defaultOptions + } = useQueryContext.useQueryContext(); + const { + cacheMode, + staleTime + } = { + ...defaultOptions, + ...options + }; + const strQueryKey = utils.stringify(queryKey); + const [queryCacheEntry$] = react.useState(() => reactishState.state(createDefaultCacheEntry())); + const fetchFn = react.useCallback((args, declarative) => { + const queryMeta = { + queryKey, + args + }; + const cacheEntry = cacheMode !== 'off' ? resolveCacheEntry(queryMeta, queryFn, cacheMode === 'persist', strQueryKey) : createDefaultCacheEntry(queryMeta, queryFn); + queryCacheEntry$.set(cacheEntry); + if (declarative && (cacheEntry[0].f.get() || queryCacheUtils.isDataFresh(cacheEntry, staleTime))) { + return; + } + return queryCacheUtils.fetchCacheEntry(queryMeta, cacheEntry); + }, [strQueryKey, cacheMode, staleTime]); + react.useEffect(() => { + if (enabled) fetchFn(utils.UNDEFINED, true); + }, [enabled, fetchFn]); + return { + s: reactishState.useSnapshot(queryCacheEntry$)[0], + $: queryCacheEntry$, + f: fetchFn + }; +}; + +exports.useQueryCore = useQueryCore; diff --git a/dist/cjs/useQueryData.cjs b/dist/cjs/useQueryData.cjs new file mode 100644 index 0000000..8cfb944 --- /dev/null +++ b/dist/cjs/useQueryData.cjs @@ -0,0 +1,8 @@ +'use strict'; + +var useObservable = require('./useObservable.cjs'); +var useQuery$ = require('./useQuery_.cjs'); + +const useQueryData = options => useObservable.useData(useQuery$.useQuery$(options)); + +exports.useQueryData = useQueryData; diff --git a/dist/cjs/useQuery_.cjs b/dist/cjs/useQuery_.cjs new file mode 100644 index 0000000..ac90759 --- /dev/null +++ b/dist/cjs/useQuery_.cjs @@ -0,0 +1,15 @@ +'use strict'; + +var react = require('react'); +var useQueryCore = require('./useQueryCore.cjs'); + +const useQuery$ = options => { + const internalApi = useQueryCore.useQueryCore(options); + const fetchFn = internalApi.f; + return { + refetch: react.useCallback(() => fetchFn(), [fetchFn]), + _: internalApi + }; +}; + +exports.useQuery$ = useQuery$; diff --git a/dist/cjs/utils.cjs b/dist/cjs/utils.cjs new file mode 100644 index 0000000..4b44adb --- /dev/null +++ b/dist/cjs/utils.cjs @@ -0,0 +1,7 @@ +'use strict'; + +const UNDEFINED = /*#__PURE__*/(() => {})(); +const stringify = JSON.stringify; + +exports.UNDEFINED = UNDEFINED; +exports.stringify = stringify; diff --git a/dist/esm/QueryContext.mjs b/dist/esm/QueryContext.mjs new file mode 100644 index 0000000..037f053 --- /dev/null +++ b/dist/esm/QueryContext.mjs @@ -0,0 +1,9 @@ +import { createContext } from 'react'; +import { defaultQueryClient } from './queryClient.mjs'; + +const QueryContext = /*#__PURE__*/createContext({ + client: defaultQueryClient, + defaultOptions: {} +}); + +export { QueryContext }; diff --git a/dist/esm/QueryProvider.mjs b/dist/esm/QueryProvider.mjs new file mode 100644 index 0000000..85cbc56 --- /dev/null +++ b/dist/esm/QueryProvider.mjs @@ -0,0 +1,25 @@ +import { useContext, useState, useMemo } from 'react'; +import { QueryContext } from './QueryContext.mjs'; +import { stringify } from './utils.mjs'; +import { jsx } from 'react/jsx-runtime'; + +const QueryProvider = ({ + children, + client, + defaultOptions +}) => { + const { + client: baseClient, + defaultOptions: baseOptions + } = useContext(QueryContext); + const [initialClient] = useState(client || baseClient); + return /*#__PURE__*/jsx(QueryContext.Provider, { + value: useMemo(() => ({ + client: initialClient, + defaultOptions: defaultOptions || baseOptions + }), [stringify(defaultOptions), stringify(baseOptions)]), + children: children + }); +}; + +export { QueryProvider }; diff --git a/dist/esm/cache.mjs b/dist/esm/cache.mjs new file mode 100644 index 0000000..2f3a4eb --- /dev/null +++ b/dist/esm/cache.mjs @@ -0,0 +1,36 @@ +const weakCache = () => { + const cacheMap = new Map(); + const registry = new FinalizationRegistry(heldValue => { + const ref = cacheMap.get(heldValue); + if (ref?.deref && !ref.deref()) { + cacheMap.delete(heldValue); + if (process.env.NODE_ENV !== 'production') { + console.debug(`Cleared cache for key: ${heldValue}`); + } + } + }); + return { + clear: () => cacheMap.clear(), + get: (key, strong) => { + const weakOrStrong = cacheMap.get(key); + if (!weakOrStrong?.deref) return weakOrStrong; + const value = weakOrStrong.deref(); + if (strong && value) { + cacheMap.set(key, value); + registry.unregister(value); + } + return value; + }, + set: (key, value, strong) => { + if (strong) { + cacheMap.set(key, value); + } else { + cacheMap.set(key, new WeakRef(value)); + registry.register(value, key, value); + } + } + }; +}; +const createCache = () => typeof WeakRef === 'function' ? weakCache() : new Map(); + +export { createCache }; diff --git a/dist/esm/composable/index.mjs b/dist/esm/composable/index.mjs new file mode 100644 index 0000000..c1cde26 --- /dev/null +++ b/dist/esm/composable/index.mjs @@ -0,0 +1,3 @@ + +'use client'; +export { useQueryObserver } from './useQueryObserver.mjs'; diff --git a/dist/esm/composable/useQueryObserver.mjs b/dist/esm/composable/useQueryObserver.mjs new file mode 100644 index 0000000..e6d7b19 --- /dev/null +++ b/dist/esm/composable/useQueryObserver.mjs @@ -0,0 +1,42 @@ +import { useState, useLayoutEffect as useLayoutEffect$1, useEffect } from 'react'; + +const useLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect$1 : useEffect; +const useQueryObserver = (input, { + onData, + onError +}) => { + const queryCacheEntry$ = input._.$; + const [context] = useState({}); + useLayoutEffect(() => { + context.d = onData; + context.e = onError; + }, [context, onData, onError]); + useLayoutEffect(() => { + const unsubscribeState = () => context.a?.forEach(unsubscribe => unsubscribe()); + const listener = ([{ + d: data$, + e: error$, + p: isPending$ + }]) => { + unsubscribeState(); + const { + stateKey: _1, + ...restData + } = data$.meta(); + const metadata = restData; + context.a = [data$.subscribe(data => context.d?.(data, metadata)), error$.subscribe(error => error && context.e?.(error, metadata))]; + if (!isPending$.get()) context.d?.(data$.get(), metadata); + if (error$.get()) context.e?.(error$.get(), metadata); + }; + const queryCacheEntry = queryCacheEntry$.get(); + if (queryCacheEntry[0].r) listener(queryCacheEntry); + const unsubscribeCacheEntry = queryCacheEntry$.subscribe(listener); + return () => { + unsubscribeState(); + unsubscribeCacheEntry(); + }; + }, [context, queryCacheEntry$]); + return input; +}; + +export { useQueryObserver }; diff --git a/dist/esm/index.mjs b/dist/esm/index.mjs new file mode 100644 index 0000000..e65d3f8 --- /dev/null +++ b/dist/esm/index.mjs @@ -0,0 +1,12 @@ + +'use client'; +export { createQueryClient, defaultQueryClient } from './queryClient.mjs'; +export { QueryProvider } from './QueryProvider.mjs'; +export { useQueryContext } from './useQueryContext.mjs'; +export { useQuery } from './useQuery.mjs'; +export { useQuery$ } from './useQuery_.mjs'; +export { useQueryData } from './useQueryData.mjs'; +export { useLazyQuery } from './useLazyQuery.mjs'; +export { useLazyQuery$ } from './useLazyQuery_.mjs'; +export { useMutation } from './useMutation.mjs'; +export { useData, useError, useIsFetching } from './useObservable.mjs'; diff --git a/dist/esm/middleware/index.mjs b/dist/esm/middleware/index.mjs new file mode 100644 index 0000000..3687411 --- /dev/null +++ b/dist/esm/middleware/index.mjs @@ -0,0 +1,3 @@ + +'use client'; +export { queryObserver } from './queryObserver.mjs'; diff --git a/dist/esm/middleware/queryObserver.mjs b/dist/esm/middleware/queryObserver.mjs new file mode 100644 index 0000000..ae65249 --- /dev/null +++ b/dist/esm/middleware/queryObserver.mjs @@ -0,0 +1,23 @@ +const queryObserver = ({ + onData, + onError +}) => ({ + set, + meta +}) => value => { + set(value); + const { + stateKey, + ...metadata + } = meta(); + switch (stateKey) { + case 'data': + onData?.(value, metadata); + break; + case 'error': + if (value) onError?.(value, metadata); + break; + } +}; + +export { queryObserver }; diff --git a/dist/esm/queryCacheUtils.mjs b/dist/esm/queryCacheUtils.mjs new file mode 100644 index 0000000..653d4a0 --- /dev/null +++ b/dist/esm/queryCacheUtils.mjs @@ -0,0 +1,48 @@ +import { UNDEFINED, stringify } from './utils.mjs'; + +const getStrCacheKey = ({ + queryKey, + args +}, strQueryKey = stringify(queryKey) || '') => args !== UNDEFINED ? `${strQueryKey}|${stringify(args)}` : strQueryKey; +const isDataFresh = (cacheEntry, staleTime = 0) => Date.now() - staleTime < cacheEntry[1].t; +const fetchCacheEntry = async (queryMeta, [{ + d: { + set: setData + }, + e: { + set: setError + }, + p: { + set: setIsPending + }, + f: { + set: setIsFetching + } +}, cacheEntryMutable]) => { + if (!cacheEntryMutable.f) return {}; + setIsFetching(true); + const requestSeq = ++cacheEntryMutable.i; + let data, error; + try { + data = await cacheEntryMutable.f(queryMeta); + } catch (err) { + error = err; + } + if (requestSeq === cacheEntryMutable.i) { + setIsFetching(false); + if (error) { + setError(error); + } else { + setData(data); + setError(UNDEFINED); + setIsPending(false); + cacheEntryMutable.t = Date.now(); + } + } + return { + data, + error + }; +}; + +export { fetchCacheEntry, getStrCacheKey, isDataFresh }; diff --git a/dist/esm/queryClient.mjs b/dist/esm/queryClient.mjs new file mode 100644 index 0000000..239c830 --- /dev/null +++ b/dist/esm/queryClient.mjs @@ -0,0 +1,68 @@ +import { stateBuilder } from 'reactish-state'; +import { createCache } from './cache.mjs'; +import { fetchCacheEntry, isDataFresh, getStrCacheKey } from './queryCacheUtils.mjs'; +import { UNDEFINED } from './utils.mjs'; + +const createQueryClient = ({ + middleware +} = {}) => { + const state = stateBuilder(middleware); + const cache = createCache(); + const getCacheEntry = queryMeta => cache.get(getStrCacheKey(queryMeta)); + const createInitialState = (queryMeta, stateKey, initialValue) => state(initialValue, UNDEFINED, { + ...queryMeta, + stateKey + }); + const createDefaultCacheEntry = (queryMeta, queryFn) => [{ + d: createInitialState(queryMeta, 'data'), + e: createInitialState(queryMeta, 'error'), + f: createInitialState(queryMeta, 'isFetching', false), + p: createInitialState(queryMeta, 'isPending', true), + a: queryMeta?.args, + r: !!queryMeta + }, { + i: 0, + f: queryFn + }]; + const resolveCacheEntry = (queryMeta, queryFn, shouldPersist, strQueryKey) => { + const strCacheKey = getStrCacheKey(queryMeta, strQueryKey); + let cacheEntry = cache.get(strCacheKey, shouldPersist); + if (!cacheEntry) { + cacheEntry = createDefaultCacheEntry(queryMeta, queryFn); + cache.set(strCacheKey, cacheEntry, shouldPersist); + } + if (queryFn) cacheEntry[1].f = queryFn; + return cacheEntry; + }; + return { + _: [createDefaultCacheEntry, resolveCacheEntry], + clear: () => cache.clear(), + getData: queryMeta => getCacheEntry(queryMeta)?.[0].d.get(), + setData: (queryMeta, data) => getCacheEntry(queryMeta)?.[0].d.set(data), + cancel: queryMeta => { + const cacheEntry = getCacheEntry(queryMeta); + if (cacheEntry) { + cacheEntry[0].f.set(false); + cacheEntry[1].i++; + } + }, + fetch: ({ + queryFn, + staleTime, + ...queryMeta + }) => { + const cacheEntry = resolveCacheEntry(queryMeta, queryFn, true); + if (isDataFresh(cacheEntry, staleTime)) return { + data: cacheEntry[0].d.get() + }; + return fetchCacheEntry(queryMeta, cacheEntry); + }, + invalidate: queryMeta => { + const cacheEntry = getCacheEntry(queryMeta); + if (cacheEntry) return fetchCacheEntry(queryMeta, cacheEntry); + } + }; +}; +const defaultQueryClient = /*#__PURE__*/createQueryClient(); + +export { createQueryClient, defaultQueryClient }; diff --git a/dist/esm/useLazyQuery.mjs b/dist/esm/useLazyQuery.mjs new file mode 100644 index 0000000..821c477 --- /dev/null +++ b/dist/esm/useLazyQuery.mjs @@ -0,0 +1,6 @@ +import { useLazyQuery$ } from './useLazyQuery_.mjs'; +import { useObservable } from './useObservable.mjs'; + +const useLazyQuery = options => useObservable(useLazyQuery$(options)); + +export { useLazyQuery }; diff --git a/dist/esm/useLazyQuery_.mjs b/dist/esm/useLazyQuery_.mjs new file mode 100644 index 0000000..23ebd8f --- /dev/null +++ b/dist/esm/useLazyQuery_.mjs @@ -0,0 +1,17 @@ +import { useCallback } from 'react'; +import { useQueryCore } from './useQueryCore.mjs'; + +const useLazyQuery$ = options => { + const internalApi = useQueryCore({ + ...options, + enabled: false + }); + const fetchFn = internalApi.f; + return { + trigger: useCallback(args => fetchFn(args), [fetchFn]), + args: internalApi.s.a, + _: internalApi + }; +}; + +export { useLazyQuery$ }; diff --git a/dist/esm/useMutation.mjs b/dist/esm/useMutation.mjs new file mode 100644 index 0000000..d971d43 --- /dev/null +++ b/dist/esm/useMutation.mjs @@ -0,0 +1,8 @@ +import { useLazyQuery } from './useLazyQuery.mjs'; + +const useMutation = options => useLazyQuery({ + ...options, + cacheMode: 'off' +}); + +export { useMutation }; diff --git a/dist/esm/useObservable.mjs b/dist/esm/useObservable.mjs new file mode 100644 index 0000000..25a56c6 --- /dev/null +++ b/dist/esm/useObservable.mjs @@ -0,0 +1,18 @@ +import { useSnapshot } from 'reactish-state'; + +const useData = input => ({ + ...input, + data: useSnapshot(input._.s.d), + isPending: useSnapshot(input._.s.p) +}); +const useError = input => ({ + ...input, + error: useSnapshot(input._.s.e) +}); +const useIsFetching = input => ({ + ...input, + isFetching: useSnapshot(input._.s.f) +}); +const useObservable = input => useData(useError(useIsFetching(input))); + +export { useData, useError, useIsFetching, useObservable }; diff --git a/dist/esm/useQuery.mjs b/dist/esm/useQuery.mjs new file mode 100644 index 0000000..21b5e82 --- /dev/null +++ b/dist/esm/useQuery.mjs @@ -0,0 +1,6 @@ +import { useQuery$ } from './useQuery_.mjs'; +import { useObservable } from './useObservable.mjs'; + +const useQuery = options => useObservable(useQuery$(options)); + +export { useQuery }; diff --git a/dist/esm/useQueryContext.mjs b/dist/esm/useQueryContext.mjs new file mode 100644 index 0000000..7f3a3b3 --- /dev/null +++ b/dist/esm/useQueryContext.mjs @@ -0,0 +1,6 @@ +import { useContext } from 'react'; +import { QueryContext } from './QueryContext.mjs'; + +const useQueryContext = () => useContext(QueryContext); + +export { useQueryContext }; diff --git a/dist/esm/useQueryCore.mjs b/dist/esm/useQueryCore.mjs new file mode 100644 index 0000000..4c9c713 --- /dev/null +++ b/dist/esm/useQueryCore.mjs @@ -0,0 +1,50 @@ +import { useState, useCallback, useEffect } from 'react'; +import { state, useSnapshot } from 'reactish-state'; +import { stringify, UNDEFINED } from './utils.mjs'; +import { isDataFresh, fetchCacheEntry } from './queryCacheUtils.mjs'; +import { useQueryContext } from './useQueryContext.mjs'; + +const useQueryCore = ({ + queryKey, + queryFn, + enabled = true, + ...options +}) => { + const { + client: { + _: [createDefaultCacheEntry, resolveCacheEntry] + }, + defaultOptions + } = useQueryContext(); + const { + cacheMode, + staleTime + } = { + ...defaultOptions, + ...options + }; + const strQueryKey = stringify(queryKey); + const [queryCacheEntry$] = useState(() => state(createDefaultCacheEntry())); + const fetchFn = useCallback((args, declarative) => { + const queryMeta = { + queryKey, + args + }; + const cacheEntry = cacheMode !== 'off' ? resolveCacheEntry(queryMeta, queryFn, cacheMode === 'persist', strQueryKey) : createDefaultCacheEntry(queryMeta, queryFn); + queryCacheEntry$.set(cacheEntry); + if (declarative && (cacheEntry[0].f.get() || isDataFresh(cacheEntry, staleTime))) { + return; + } + return fetchCacheEntry(queryMeta, cacheEntry); + }, [strQueryKey, cacheMode, staleTime]); + useEffect(() => { + if (enabled) fetchFn(UNDEFINED, true); + }, [enabled, fetchFn]); + return { + s: useSnapshot(queryCacheEntry$)[0], + $: queryCacheEntry$, + f: fetchFn + }; +}; + +export { useQueryCore }; diff --git a/dist/esm/useQueryData.mjs b/dist/esm/useQueryData.mjs new file mode 100644 index 0000000..39c5827 --- /dev/null +++ b/dist/esm/useQueryData.mjs @@ -0,0 +1,6 @@ +import { useData } from './useObservable.mjs'; +import { useQuery$ } from './useQuery_.mjs'; + +const useQueryData = options => useData(useQuery$(options)); + +export { useQueryData }; diff --git a/dist/esm/useQuery_.mjs b/dist/esm/useQuery_.mjs new file mode 100644 index 0000000..e041177 --- /dev/null +++ b/dist/esm/useQuery_.mjs @@ -0,0 +1,13 @@ +import { useCallback } from 'react'; +import { useQueryCore } from './useQueryCore.mjs'; + +const useQuery$ = options => { + const internalApi = useQueryCore(options); + const fetchFn = internalApi.f; + return { + refetch: useCallback(() => fetchFn(), [fetchFn]), + _: internalApi + }; +}; + +export { useQuery$ }; diff --git a/dist/esm/utils.mjs b/dist/esm/utils.mjs new file mode 100644 index 0000000..307d42f --- /dev/null +++ b/dist/esm/utils.mjs @@ -0,0 +1,4 @@ +const UNDEFINED = /*#__PURE__*/(() => {})(); +const stringify = JSON.stringify; + +export { UNDEFINED, stringify }; diff --git a/eslint.config.mjs b/eslint.config.mjs index bb198d1..005953c 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,7 +5,6 @@ import eslint from '@eslint/js'; import tseslint from 'typescript-eslint'; import prettier from 'eslint-config-prettier'; import vitest from '@vitest/eslint-plugin'; -import react from 'eslint-plugin-react'; import reactHooks from 'eslint-plugin-react-hooks'; import reactHooksAddons from 'eslint-plugin-react-hooks-addons'; @@ -13,8 +12,6 @@ export default tseslint.config( eslint.configs.recommended, tseslint.configs.recommendedTypeChecked, vitest.configs.recommended, - react.configs.flat.recommended, - react.configs.flat['jsx-runtime'], reactHooksAddons.configs.recommended, prettier, { @@ -56,11 +53,6 @@ export default tseslint.config( plugins: { 'react-hooks': reactHooks }, - settings: { - react: { - version: 'detect' - } - }, rules: { 'no-console': ['error', { allow: ['debug', 'warn', 'error'] }], 'react/prop-types': 0, diff --git a/package-lock.json b/package-lock.json index d966d01..ca172d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@babel/preset-env": "^7.29.5", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", + "@eslint/js": "^10.0.1", "@rollup/plugin-babel": "^7.0.0", "@rollup/plugin-node-resolve": "^16.0.3", "@testing-library/jest-dom": "^6.9.1", @@ -31,7 +32,6 @@ "deplift": "^1.3.0", "eslint": "^10.4.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-hooks-addons": "^0.5.1", "globals": "^17.6.0", @@ -2131,6 +2131,27 @@ "node": "^20.19.0 || ^22.13.0 || >=24" } }, + "node_modules/@eslint/js": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, "node_modules/@eslint/object-schema": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", @@ -3908,105 +3929,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", @@ -4621,19 +4543,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", @@ -4783,34 +4692,6 @@ "node": ">= 0.4" } }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-module-lexer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", @@ -4847,19 +4728,6 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-to-primitive": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", @@ -4973,39 +4841,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, "node_modules/eslint-plugin-react-hooks": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", @@ -5036,24 +4871,6 @@ "eslint": ">=3.0.0" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-scope": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", @@ -6222,24 +6039,6 @@ "node": ">=8" } }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6352,22 +6151,6 @@ "node": ">=6" } }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -6704,19 +6487,6 @@ "dev": true, "license": "MIT" }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -7122,16 +6892,6 @@ "which": "bin/which" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -7176,60 +6936,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/obug": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", @@ -7521,25 +7227,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -8251,34 +7938,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/string.prototype.padend": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", @@ -8298,17 +7957,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, "node_modules/string.prototype.trim": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", diff --git a/package.json b/package.json index 07fabe6..2bf1c63 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "@babel/preset-env": "^7.29.5", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", + "@eslint/js": "^10.0.1", "@rollup/plugin-babel": "^7.0.0", "@rollup/plugin-node-resolve": "^16.0.3", "@testing-library/jest-dom": "^6.9.1", @@ -84,7 +85,6 @@ "deplift": "^1.3.0", "eslint": "^10.4.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-hooks-addons": "^0.5.1", "globals": "^17.6.0", diff --git a/src/__tests__/fakeRequest.ts b/src/__tests__/fakeRequest.ts index a417cd3..6a9ab47 100644 --- a/src/__tests__/fakeRequest.ts +++ b/src/__tests__/fakeRequest.ts @@ -11,7 +11,8 @@ const fakeRequest = (value: T, delay = 0) => { mockPromise(value); resolve(value); } catch (error) { - reject(error as Error); + // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors + reject(error); } }, delay); }); diff --git a/tsconfig.json b/tsconfig.json index 4c6bb3c..3418fb4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "rootDir": "./src", "emitDeclarationOnly": true, "declaration": true, "declarationDir": "./types", diff --git a/types/src/QueryContext.d.ts b/types/QueryContext.d.ts similarity index 100% rename from types/src/QueryContext.d.ts rename to types/QueryContext.d.ts diff --git a/types/src/QueryProvider.d.ts b/types/QueryProvider.d.ts similarity index 100% rename from types/src/QueryProvider.d.ts rename to types/QueryProvider.d.ts diff --git a/types/src/cache.d.ts b/types/cache.d.ts similarity index 100% rename from types/src/cache.d.ts rename to types/cache.d.ts diff --git a/types/src/composable/index.d.ts b/types/composable/index.d.ts similarity index 100% rename from types/src/composable/index.d.ts rename to types/composable/index.d.ts diff --git a/types/src/composable/useQueryObserver.d.ts b/types/composable/useQueryObserver.d.ts similarity index 100% rename from types/src/composable/useQueryObserver.d.ts rename to types/composable/useQueryObserver.d.ts diff --git a/types/src/index.d.ts b/types/index.d.ts similarity index 100% rename from types/src/index.d.ts rename to types/index.d.ts diff --git a/types/src/middleware/index.d.ts b/types/middleware/index.d.ts similarity index 100% rename from types/src/middleware/index.d.ts rename to types/middleware/index.d.ts diff --git a/types/src/middleware/queryObserver.d.ts b/types/middleware/queryObserver.d.ts similarity index 100% rename from types/src/middleware/queryObserver.d.ts rename to types/middleware/queryObserver.d.ts diff --git a/types/src/queryCacheUtils.d.ts b/types/queryCacheUtils.d.ts similarity index 100% rename from types/src/queryCacheUtils.d.ts rename to types/queryCacheUtils.d.ts diff --git a/types/src/queryClient.d.ts b/types/queryClient.d.ts similarity index 100% rename from types/src/queryClient.d.ts rename to types/queryClient.d.ts diff --git a/types/src/types-internal.d.ts b/types/types-internal.d.ts similarity index 100% rename from types/src/types-internal.d.ts rename to types/types-internal.d.ts diff --git a/types/src/types.d.ts b/types/types.d.ts similarity index 100% rename from types/src/types.d.ts rename to types/types.d.ts diff --git a/types/src/useLazyQuery$.d.ts b/types/useLazyQuery$.d.ts similarity index 100% rename from types/src/useLazyQuery$.d.ts rename to types/useLazyQuery$.d.ts diff --git a/types/src/useLazyQuery.d.ts b/types/useLazyQuery.d.ts similarity index 100% rename from types/src/useLazyQuery.d.ts rename to types/useLazyQuery.d.ts diff --git a/types/src/useMutation.d.ts b/types/useMutation.d.ts similarity index 100% rename from types/src/useMutation.d.ts rename to types/useMutation.d.ts diff --git a/types/src/useObservable.d.ts b/types/useObservable.d.ts similarity index 100% rename from types/src/useObservable.d.ts rename to types/useObservable.d.ts diff --git a/types/src/useQuery$.d.ts b/types/useQuery$.d.ts similarity index 100% rename from types/src/useQuery$.d.ts rename to types/useQuery$.d.ts diff --git a/types/src/useQuery.d.ts b/types/useQuery.d.ts similarity index 100% rename from types/src/useQuery.d.ts rename to types/useQuery.d.ts diff --git a/types/src/useQueryContext.d.ts b/types/useQueryContext.d.ts similarity index 100% rename from types/src/useQueryContext.d.ts rename to types/useQueryContext.d.ts diff --git a/types/src/useQueryCore.d.ts b/types/useQueryCore.d.ts similarity index 100% rename from types/src/useQueryCore.d.ts rename to types/useQueryCore.d.ts diff --git a/types/src/useQueryData.d.ts b/types/useQueryData.d.ts similarity index 100% rename from types/src/useQueryData.d.ts rename to types/useQueryData.d.ts diff --git a/types/src/utils.d.ts b/types/utils.d.ts similarity index 100% rename from types/src/utils.d.ts rename to types/utils.d.ts From a445ff71a5bde59d135195bc0d5a4349bb7df0bb Mon Sep 17 00:00:00 2001 From: Zheng Song <41896553+szhsin@users.noreply.github.com> Date: Sun, 24 May 2026 19:45:14 +1000 Subject: [PATCH 3/3] chore: add ci workflow --- .github/workflows/ci.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1909363 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,12 @@ +name: CI + +on: + push: + +jobs: + ci: + runs-on: ubuntu-latest + + steps: + - name: CI action + uses: szhsin/ci-action@v1