From d31c02ca82f8374e69ce62ea5f6d28342b265716 Mon Sep 17 00:00:00 2001 From: karancoder Date: Mon, 2 Dec 2024 22:19:02 +0530 Subject: [PATCH] update react-query v5.62.0 --- packages/graz/package.json | 2 +- packages/graz/src/hooks/account.ts | 76 ++++++++++++------------- packages/graz/src/hooks/chains.ts | 32 ++++++----- packages/graz/src/hooks/methods.ts | 90 +++++++++++++----------------- packages/graz/src/hooks/wallet.ts | 5 +- pnpm-lock.yaml | 40 +++++-------- 6 files changed, 113 insertions(+), 132 deletions(-) diff --git a/packages/graz/package.json b/packages/graz/package.json index 859d5ef..d168031 100644 --- a/packages/graz/package.json +++ b/packages/graz/package.json @@ -57,7 +57,7 @@ "@dao-dao/cosmiframe": "0.1.0", "@keplr-wallet/cosmos": "0.12.156", "@metamask/providers": "12.0.0", - "@tanstack/react-query": "4.35.0", + "@tanstack/react-query": "5.62.0", "@terra-money/station-connector": "1.1.0", "@vectis/extension-client": "^0.7.2", "@walletconnect/sign-client": "2.17.2", diff --git a/packages/graz/src/hooks/account.ts b/packages/graz/src/hooks/account.ts index 10ac728..9a3b7fd 100644 --- a/packages/graz/src/hooks/account.ts +++ b/packages/graz/src/hooks/account.ts @@ -147,9 +147,9 @@ export const useBalances = ( [address, args?.chainId, chains, clients], ); - return useQuery( + return useQuery({ queryKey, - async ({ queryKey: [, _clients, _chains, _address] }) => { + queryFn: async ({ queryKey: [, _clients, _chains, _address] }) => { if (!_address) { throw new Error("address is not defined"); } @@ -166,18 +166,16 @@ export const useBalances = ( }); return res; }, - { - enabled: - Boolean(address) && - Boolean(chains) && - chains.length > 0 && - !isEmpty(clients) && - (args?.enabled === undefined ? true : args.enabled), - refetchOnMount: false, - refetchOnReconnect: true, - refetchOnWindowFocus: false, - }, - ); + enabled: + Boolean(address) && + Boolean(chains) && + chains.length > 0 && + !isEmpty(clients) && + (args?.enabled === undefined ? true : args.enabled), + refetchOnMount: false, + refetchOnReconnect: true, + refetchOnWindowFocus: false, + }); }; /** @@ -216,19 +214,17 @@ export const useBalance = ( const queryKey = ["USE_BALANCE", args.denom, balances, chains, address, args.chainId] as const; - const query = useQuery( + const query = useQuery({ queryKey, - ({ queryKey: [, _denom, _balances] }) => { + queryFn: ({ queryKey: [, _denom, _balances] }) => { return _balances?.find((x) => x.denom === _denom); }, - { - enabled: - Boolean(args.denom) && - Boolean(balances) && - Boolean(balances?.length) && - (args.enabled === undefined ? true : args.enabled), - }, - ); + enabled: + Boolean(args.denom) && + Boolean(balances) && + Boolean(balances?.length) && + (args.enabled === undefined ? true : args.enabled), + }); return { ...query, @@ -276,8 +272,10 @@ export type UseConnectChainArgs = MutationEventArgs; * @see {@link connect} */ export const useConnect = ({ onError, onLoading, onSuccess }: UseConnectChainArgs = {}) => { - const queryKey = ["USE_CONNECT", onError, onLoading, onSuccess]; - const mutation = useMutation(queryKey, connect, { + const mutationKey = ["USE_CONNECT", onError, onLoading, onSuccess]; + const mutation = useMutation({ + mutationKey, + mutationFn: connect, onError: (err, args) => onError?.(err, args), onMutate: onLoading, onSuccess: (connectResult) => Promise.resolve(onSuccess?.(connectResult)), @@ -287,7 +285,7 @@ export const useConnect = ({ onError, onLoading, onSuccess }: UseConnectChainArg connect: (args?: ConnectArgs) => mutation.mutate(args), connectAsync: (args?: ConnectArgs) => mutation.mutateAsync(args), error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, isSupported: Boolean(isSupported), status: mutation.status, @@ -319,8 +317,10 @@ export const useConnect = ({ onError, onLoading, onSuccess }: UseConnectChainArg * @see {@link disconnect} */ export const useDisconnect = ({ onError, onLoading, onSuccess }: MutationEventArgs = {}) => { - const queryKey = ["USE_DISCONNECT", onError, onLoading, onSuccess]; - const mutation = useMutation(queryKey, disconnect, { + const mutationKey = ["USE_DISCONNECT", onError, onLoading, onSuccess]; + const mutation = useMutation({ + mutationKey, + mutationFn: disconnect, onError: (err) => Promise.resolve(onError?.(err, undefined)), onMutate: onLoading, onSuccess: () => Promise.resolve(onSuccess?.(undefined)), @@ -330,7 +330,7 @@ export const useDisconnect = ({ onError, onLoading, onSuccess }: MutationEventAr disconnect: (args?: { chainId?: ChainId }) => mutation.mutate(args), disconnectAsync: (args?: { chainId?: ChainId }) => mutation.mutateAsync(args), error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, status: mutation.status, }; @@ -416,9 +416,9 @@ export const useBalanceStaked = ( const queryKey = useMemo(() => ["USE_BALANCE_STAKED", client, chains, address] as const, [chains, address, client]); - return useQuery( + return useQuery({ queryKey, - async ({ queryKey: [, _client, _chains, _address] }) => { + queryFn: async ({ queryKey: [, _client, _chains, _address] }) => { if (!_address) { throw new Error("address is not defined"); } @@ -432,11 +432,9 @@ export const useBalanceStaked = ( }); return res; }, - { - enabled: Boolean(address) && Boolean(chains) && chains.length > 0 && Boolean(client), - refetchOnMount: false, - refetchOnReconnect: true, - refetchOnWindowFocus: false, - }, - ); + enabled: Boolean(address) && Boolean(chains) && chains.length > 0 && Boolean(client), + refetchOnMount: false, + refetchOnReconnect: true, + refetchOnWindowFocus: false, + }); }; diff --git a/packages/graz/src/hooks/chains.ts b/packages/graz/src/hooks/chains.ts index 95af852..dc3d770 100644 --- a/packages/graz/src/hooks/chains.ts +++ b/packages/graz/src/hooks/chains.ts @@ -89,11 +89,11 @@ export const useChainInfos = ({ chainId }: { chainId?: string[] }) => { export const useActiveChainCurrency = ({ denom }: { denom: string }): UseQueryResult => { const chains = useActiveChains(); const queryKey = ["USE_ACTIVE_CHAIN_CURRENCY", denom] as const; - const query = useQuery( + const query = useQuery({ queryKey, - ({ queryKey: [, _denom] }) => + queryFn: ({ queryKey: [, _denom] }) => chains?.find((c) => c.currencies.find((x) => x.coinMinimalDenom === _denom))?.currencies.find((x) => x), - ); + }); return query; }; @@ -118,17 +118,15 @@ export const useQueryClientValidators = => { const status = args.status ?? "BOND_STATUS_BONDED"; const queryKey = ["USE_ACTIVE_CHAIN_VALIDATORS", args.queryClient, status] as const; - const query = useQuery( + const query = useQuery({ queryKey, - async ({ queryKey: [, _queryClient, _status] }) => { + queryFn: async ({ queryKey: [, _queryClient, _status] }) => { if (!_queryClient) throw new Error("Query client is not defined"); const res = await _queryClient.staking.validators(_status); return res; }, - { - enabled: typeof args.queryClient !== "undefined", - }, - ); + enabled: typeof args.queryClient !== "undefined", + }); return query; }; @@ -196,8 +194,10 @@ export type UseSuggestChainArgs = MutationEventArgs; * ``` */ export const useSuggestChain = ({ onError, onLoading, onSuccess }: UseSuggestChainArgs = {}) => { - const queryKey = ["USE_SUGGEST_CHAIN", onError, onLoading, onSuccess]; - const mutation = useMutation(queryKey, suggestChain, { + const mutationKey = ["USE_SUGGEST_CHAIN", onError, onLoading, onSuccess]; + const mutation = useMutation({ + mutationKey, + mutationFn: suggestChain, onError: (err, args) => Promise.resolve(onError?.(err, args.chainInfo)), onMutate: (data) => onLoading?.(data.chainInfo), onSuccess: (chainInfo) => Promise.resolve(onSuccess?.(chainInfo)), @@ -205,7 +205,7 @@ export const useSuggestChain = ({ onError, onLoading, onSuccess }: UseSuggestCha return { error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, suggest: mutation.mutate, suggestAsync: mutation.mutateAsync, @@ -246,8 +246,10 @@ export type UseSuggestChainAndConnectArgs = MutationEventArgs { - const queryKey = ["USE_SUGGEST_CHAIN_AND_CONNECT", onError, onLoading, onSuccess]; - const mutation = useMutation(queryKey, suggestChainAndConnect, { + const mutationKey = ["USE_SUGGEST_CHAIN_AND_CONNECT", onError, onLoading, onSuccess]; + const mutation = useMutation({ + mutationKey, + mutationFn: suggestChainAndConnect, onError: (err, args) => Promise.resolve(onError?.(err, args)), onMutate: (args) => onLoading?.(args), onSuccess: (res) => Promise.resolve(onSuccess?.(res)), @@ -255,7 +257,7 @@ export const useSuggestChainAndConnect = ({ onError, onLoading, onSuccess }: Use const { data: isSupported } = useCheckWallet(); return { error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, isSupported: Boolean(isSupported), status: mutation.status, diff --git a/packages/graz/src/hooks/methods.ts b/packages/graz/src/hooks/methods.ts index 526e217..732f35c 100644 --- a/packages/graz/src/hooks/methods.ts +++ b/packages/graz/src/hooks/methods.ts @@ -52,19 +52,17 @@ export const useSendTokens = ({ const { data: account } = useAccount(); const accountAddress = account?.bech32Address; - const mutation = useMutation( - ["USE_SEND_TOKENS", onError, onLoading, onSuccess, accountAddress], - (args: SendTokensArgs) => sendTokens({ senderAddress: accountAddress, ...args }), - { - onError: (err, data) => Promise.resolve(onError?.(err, data)), - onMutate: onLoading, - onSuccess: (txResponse) => Promise.resolve(onSuccess?.(txResponse)), - }, - ); + const mutation = useMutation({ + mutationKey: ["USE_SEND_TOKENS", onError, onLoading, onSuccess, accountAddress], + mutationFn: (args: SendTokensArgs) => sendTokens({ senderAddress: accountAddress, ...args }), + onError: (err, data) => Promise.resolve(onError?.(err, data)), + onMutate: onLoading, + onSuccess: (txResponse) => Promise.resolve(onSuccess?.(txResponse)), + }); return { error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, sendTokens: mutation.mutate, sendTokensAsync: mutation.mutateAsync, @@ -99,19 +97,17 @@ export const useSendIbcTokens = ({ const { data: account } = useAccount(); const accountAddress = account?.bech32Address; - const mutation = useMutation( - ["USE_SEND_IBC_TOKENS", onError, onLoading, onSuccess, accountAddress], - (args: SendIbcTokensArgs) => sendIbcTokens({ senderAddress: accountAddress, ...args }), - { - onError: (err, data) => Promise.resolve(onError?.(err, data)), - onMutate: onLoading, - onSuccess: (txResponse) => Promise.resolve(onSuccess?.(txResponse)), - }, - ); + const mutation = useMutation({ + mutationKey: ["USE_SEND_IBC_TOKENS", onError, onLoading, onSuccess, accountAddress], + mutationFn: (args: SendIbcTokensArgs) => sendIbcTokens({ senderAddress: accountAddress, ...args }), + onError: (err, data) => Promise.resolve(onError?.(err, data)), + onMutate: onLoading, + onSuccess: (txResponse) => Promise.resolve(onSuccess?.(txResponse)), + }); return { error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, sendIbcTokens: mutation.mutate, sendIbcTokensAsync: mutation.mutateAsync, @@ -165,19 +161,17 @@ export const useInstantiateContract = >( return instantiateContract(contractArgs); }; - const mutation = useMutation( - ["USE_INSTANTIATE_CONTRACT", onError, onLoading, onSuccess, codeId, accountAddress], + const mutation = useMutation({ + mutationKey: ["USE_INSTANTIATE_CONTRACT", onError, onLoading, onSuccess, codeId, accountAddress], mutationFn, - { - onError: (err, data) => Promise.resolve(onError?.(err, data)), - onMutate: onLoading, - onSuccess: (instantiateResult) => Promise.resolve(onSuccess?.(instantiateResult)), - }, - ); + onError: (err, data) => Promise.resolve(onError?.(err, data)), + onMutate: onLoading, + onSuccess: (instantiateResult) => Promise.resolve(onSuccess?.(instantiateResult)), + }); return { error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, instantiateContract: mutation.mutate, instantiateContractAsync: mutation.mutateAsync, @@ -242,19 +236,17 @@ export const useExecuteContract = >({ return executeContract(executeArgs); }; - const mutation = useMutation( - ["USE_EXECUTE_CONTRACT", onError, onLoading, onSuccess, contractAddress, accountAddress], + const mutation = useMutation({ + mutationKey: ["USE_EXECUTE_CONTRACT", onError, onLoading, onSuccess, contractAddress, accountAddress], mutationFn, - { - onError: (err, data) => Promise.resolve(onError?.(err, data)), - onMutate: onLoading, - onSuccess: (executeResult) => Promise.resolve(onSuccess?.(executeResult)), - }, - ); + onError: (err, data) => Promise.resolve(onError?.(err, data)), + onMutate: onLoading, + onSuccess: (executeResult) => Promise.resolve(onSuccess?.(executeResult)), + }); return { error: mutation.error, - isLoading: mutation.isLoading, + isLoading: mutation.isPending, isSuccess: mutation.isSuccess, executeContract: mutation.mutate, executeContractAsync: mutation.mutateAsync, @@ -275,16 +267,14 @@ export const useQuerySmart = (args?: { queryMsg?: Record; }): UseQueryResult => { const { data: client } = useCosmWasmClient(); - const query: UseQueryResult = useQuery( - ["USE_QUERY_SMART", args?.address, args?.queryMsg, client], - ({ queryKey: [, _address] }) => { + const query: UseQueryResult = useQuery({ + queryKey: ["USE_QUERY_SMART", args?.address, args?.queryMsg, client], + queryFn: ({ queryKey: [, _address] }) => { if (!args?.address || !args.queryMsg) throw new Error("address or queryMsg undefined"); return getQuerySmart(args.address, args.queryMsg, client); }, - { - enabled: Boolean(args?.address) && Boolean(args?.queryMsg) && Boolean(client), - }, - ); + enabled: Boolean(args?.address) && Boolean(args?.queryMsg) && Boolean(client), + }); return query; }; @@ -302,16 +292,14 @@ export const useQueryRaw = (args?: { }): UseQueryResult => { const { data: client } = useCosmWasmClient(); const queryKey = ["USE_QUERY_RAW", args?.key, args?.address, client] as const; - const query: UseQueryResult = useQuery( + const query: UseQueryResult = useQuery({ queryKey, - ({ queryKey: [, _address] }) => { + queryFn: ({ queryKey: [, _address] }) => { if (!args?.address || !args.key) throw new Error("address or key undefined"); return getQueryRaw(args.address, args.key, client); }, - { - enabled: Boolean(args?.address) && Boolean(args?.key) && Boolean(client), - }, - ); + enabled: Boolean(args?.address) && Boolean(args?.key) && Boolean(client), + }); return query; }; diff --git a/packages/graz/src/hooks/wallet.ts b/packages/graz/src/hooks/wallet.ts index 1ee43ae..be82143 100644 --- a/packages/graz/src/hooks/wallet.ts +++ b/packages/graz/src/hooks/wallet.ts @@ -51,7 +51,10 @@ export const useCheckWallet = (type?: WalletType): UseQueryResult => { const walletType = useGrazInternalStore((x) => type || x.walletType); const queryKey = ["USE_CHECK_WALLET", walletType] as const; - const query = useQuery(queryKey, ({ queryKey: [, _type] }) => checkWallet(_type)); + const query = useQuery({ + queryKey, + queryFn: ({ queryKey: [, _type] }) => checkWallet(_type), + }); return query; }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 23e0490..d70010b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -250,8 +250,8 @@ importers: specifier: 12.0.0 version: 12.0.0 '@tanstack/react-query': - specifier: 4.35.0 - version: 4.35.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 5.62.0 + version: 5.62.0(react@18.2.0) '@terra-money/station-connector': specifier: 1.1.0 version: 1.1.0(@cosmjs/amino@0.31.3)(@terra-money/feather.js@3.0.0-beta.2)(axios@1.6.8) @@ -3712,20 +3712,13 @@ packages: resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} engines: {node: '>=6'} - '@tanstack/query-core@4.35.0': - resolution: {integrity: sha512-4GMcKQuLZQi6RFBiBZNsLhl+hQGYScRZ5ZoVq8QAzfqz9M7vcGin/2YdSESwl7WaV+Qzsb5CZOAbMBes4lNTnA==} + '@tanstack/query-core@5.62.0': + resolution: {integrity: sha512-sx38bGrqF9bop92AXOvzDr0L9fWDas5zXdPglxa9cuqeVSWS7lY6OnVyl/oodfXjgOGRk79IfCpgVmxrbHuFHg==} - '@tanstack/react-query@4.35.0': - resolution: {integrity: sha512-LLYDNnM9ewYHgjm2rzhk4KG/puN2rdoqCUD+N9+V7SwlsYwJk5ypX58rpkoZAhFyZ+KmFUJ7Iv2lIEOoUqydIg==} + '@tanstack/react-query@5.62.0': + resolution: {integrity: sha512-tj2ltjAn2a3fs+Dqonlvs6GyLQ/LKVJE2DVSYW+8pJ3P6/VCVGrfqv5UEchmlP7tLOvvtZcOuSyI2ooVlR5Yqw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true + react: ^18 || ^19 '@terra-money/feather.js@3.0.0-beta.2': resolution: {integrity: sha512-H048FhtK8G3lIPoVC0rN8Z+jUcJS44twXI+r7k1LY1K49MVUMArP6e7XqLiJONzBZCkEQE/W05F9ogCPrqMaHQ==} @@ -13057,7 +13050,7 @@ snapshots: '@typescript-eslint/parser': 6.6.0(eslint@8.49.0)(typescript@5.2.2) eslint: 8.49.0 eslint-config-prettier: 9.0.0(eslint@8.49.0) - eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.28.1) + eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0)) eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-plugin-import@2.28.1)(eslint@8.49.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.49.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) @@ -14646,15 +14639,12 @@ snapshots: dependencies: defer-to-connect: 1.1.3 - '@tanstack/query-core@4.35.0': {} + '@tanstack/query-core@5.62.0': {} - '@tanstack/react-query@4.35.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@tanstack/react-query@5.62.0(react@18.2.0)': dependencies: - '@tanstack/query-core': 4.35.0 + '@tanstack/query-core': 5.62.0 react: 18.2.0 - use-sync-external-store: 1.2.0(react@18.2.0) - optionalDependencies: - react-dom: 18.2.0(react@18.2.0) '@terra-money/feather.js@3.0.0-beta.2': dependencies: @@ -17066,7 +17056,7 @@ snapshots: dependencies: eslint: 8.49.0 - eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.28.1): + eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0)): dependencies: eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) @@ -17083,7 +17073,7 @@ snapshots: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.49.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-plugin-import@2.28.1)(eslint@8.49.0))(eslint@8.49.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) fast-glob: 3.3.1 get-tsconfig: 4.7.0 @@ -17095,7 +17085,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-plugin-import@2.28.1)(eslint@8.49.0))(eslint@8.49.0): dependencies: debug: 3.2.7 optionalDependencies: @@ -17122,7 +17112,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.6.0(eslint@8.49.0)(typescript@5.2.2))(eslint-plugin-import@2.28.1)(eslint@8.49.0))(eslint@8.49.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3