diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b29a138611..9367d55996 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -15,7 +15,7 @@ env: jobs: main: - name: Nx Cloud + name: Nx Cloud - Main Job runs-on: ubuntu-latest steps: - name: Checkout @@ -31,15 +31,46 @@ jobs: cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Install dependencies - run: pnpm install --frozen-lockfile - - name: Get base and head commits for `nx affected` - uses: nrwl/nx-set-shas@v4.3.0 + run: pnpm --filter "./packages/**" --filter query --prefer-offline install + - name: Get appropriate base and head commits for `nx affected` commands + uses: nrwl/nx-set-shas@v3 with: - main-branch-name: main + main-branch-name: 'main' + - run: | + echo "BASE: ${{ env.NX_BASE }}" + echo "HEAD: ${{ env.NX_HEAD }}" + - name: Start CI Orchestrator + run: npx nx-cloud start-ci-run - name: Run Tests run: pnpm run test:pr + - name: Stop Agents + run: npx nx-cloud stop-all-agents - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 + agents: + name: Nx Cloud - Agents + runs-on: ubuntu-latest + timeout-minutes: 10 + strategy: + matrix: + agent: [1, 2, 3] + steps: + - name: Checkout + uses: actions/checkout@v4.2.2 + with: + fetch-depth: 0 + - name: Setup pnpm + uses: pnpm/action-setup@v4.1.0 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version-file: .nvmrc + cache: pnpm + cache-dependency-path: pnpm-lock.yaml + - name: Install dependencies + run: pnpm --filter "./packages/**" --filter query --prefer-offline install + - name: Start Nx Agent ${{ matrix.agent }} + run: npx nx-cloud start-agent format: name: Format runs-on: ubuntu-latest @@ -57,7 +88,7 @@ jobs: cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Install dependencies - run: pnpm install --frozen-lockfile + run: pnpm --filter "./packages/**" --filter query --prefer-offline install - name: Run prettier run: pnpm run test:format test-react-17: @@ -78,17 +109,15 @@ jobs: cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Install dependencies - run: pnpm install --frozen-lockfile - - name: Get base and head commits for `nx affected` - uses: nrwl/nx-set-shas@v4.3.0 - with: - main-branch-name: main + run: pnpm --filter "./packages/**" --filter query --prefer-offline install + - name: Derive appropriate SHAs for base and head for `nx affected` commands + uses: nrwl/nx-set-shas@v2 - name: Run Tests uses: nick-fields/retry@v2.8.3 with: timeout_minutes: 5 max_attempts: 3 - command: pnpm nx affected --targets=test:lib + command: npx nx affected --targets=test:lib --base=${{ github.event.pull_request.base.sha }} env: NX_CLOUD_DISTRIBUTED_EXECUTION: false REACTJS_VERSION: 17 diff --git a/packages/query-core/src/types.ts b/packages/query-core/src/types.ts index 8af46426bf..4e3f201fbd 100644 --- a/packages/query-core/src/types.ts +++ b/packages/query-core/src/types.ts @@ -10,6 +10,11 @@ import type { Logger } from './logger' export type NonUndefinedGuard = T extends undefined ? never : T +export type DistributiveOmit< + TObject, + TKey extends keyof TObject, +> = TObject extends any ? Omit : never + export type OmitKeyof< TObject, TKey extends TStrictly extends 'safely' diff --git a/packages/react-query/src/__tests__/useQuery.types.test.tsx b/packages/react-query/src/__tests__/useQuery.types.test.tsx index 5e471f8751..fcf4388291 100644 --- a/packages/react-query/src/__tests__/useQuery.types.test.tsx +++ b/packages/react-query/src/__tests__/useQuery.types.test.tsx @@ -1,5 +1,7 @@ +import { expectTypeOf } from 'expect-type' import { useQuery } from '../useQuery' import { doNotExecute } from './utils' +import type { DefinedUseQueryResult, UseQueryResult } from '../types' export type Equal = (() => T extends X ? 1 : 2) extends < T, @@ -9,6 +11,39 @@ export type Equal = (() => T extends X ? 1 : 2) extends < export type Expect = T +describe('onSuccess', () => { + it('should be typed correctly', () => { + doNotExecute(() => { + expectTypeOf( + useQuery({ + queryKey: ['posts'], + queryFn: async () => ({ id: 1 }), + onSuccess: (data) => + expectTypeOf(data).toEqualTypeOf<{ id: number }>(), + }), + ).toEqualTypeOf>() + expectTypeOf( + useQuery({ + queryKey: ['posts'], + queryFn: async () => ({ id: 1 }), + initialData: { id: 1 }, + onSuccess: (data) => + expectTypeOf(data).toEqualTypeOf<{ id: number }>(), + }), + ).toEqualTypeOf>() + expectTypeOf( + useQuery({ + queryKey: ['posts'], + queryFn: async () => ({ id: 1 }), + initialData: { id: 1 }, + select: (data) => data.id, + onSuccess: (data) => expectTypeOf(data).toEqualTypeOf(), + }), + ).toEqualTypeOf>() + }) + }) +}) + describe('initialData', () => { describe('Config object overload', () => { it('TData should always be defined when initialData is provided as an object', () => { diff --git a/packages/react-query/src/queryOptions.ts b/packages/react-query/src/queryOptions.ts index 730eafb2a7..20c3a9060b 100644 --- a/packages/react-query/src/queryOptions.ts +++ b/packages/react-query/src/queryOptions.ts @@ -22,7 +22,7 @@ type ProhibitedQueryOptionsKeyInV5 = keyof Pick< 'useErrorBoundary' | 'suspense' | 'getNextPageParam' | 'getPreviousPageParam' > -export type UndefinedInitialDataOptions< +type UndefinedInitialDataOptions< TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, @@ -34,7 +34,7 @@ export type UndefinedInitialDataOptions< | NonUndefinedGuard } -export type DefinedInitialDataOptions< +type DefinedInitialDataOptions< TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, diff --git a/packages/react-query/src/useQuery.ts b/packages/react-query/src/useQuery.ts index c9426dd8dc..0ae2eda575 100644 --- a/packages/react-query/src/useQuery.ts +++ b/packages/react-query/src/useQuery.ts @@ -1,10 +1,6 @@ 'use client' import { QueryObserver, parseQueryArgs } from '@tanstack/query-core' import { useBaseQuery } from './useBaseQuery' -import type { - DefinedInitialDataOptions, - UndefinedInitialDataOptions, -} from './queryOptions' import type { InitialDataFunction, NonUndefinedGuard, @@ -19,14 +15,6 @@ import type { } from './types' // HOOK -export function useQuery< - TQueryFnData = unknown, - TError = unknown, - TData = TQueryFnData, - TQueryKey extends QueryKey = QueryKey, ->( - options: DefinedInitialDataOptions, -): DefinedUseQueryResult export function useQuery< TQueryFnData = unknown, TError = unknown, @@ -42,14 +30,6 @@ export function useQuery< | (() => NonUndefinedGuard) }, ): DefinedUseQueryResult -export function useQuery< - TQueryFnData = unknown, - TError = unknown, - TData = TQueryFnData, - TQueryKey extends QueryKey = QueryKey, ->( - options: UndefinedInitialDataOptions, -): UseQueryResult export function useQuery< TQueryFnData = unknown, TError = unknown, diff --git a/packages/react-query/src/useSuspenseQuery.ts b/packages/react-query/src/useSuspenseQuery.ts index 51ef5fe0e5..06dc015a6d 100644 --- a/packages/react-query/src/useSuspenseQuery.ts +++ b/packages/react-query/src/useSuspenseQuery.ts @@ -2,15 +2,12 @@ import { QueryObserver } from '@tanstack/query-core' import { useBaseQuery } from './useBaseQuery' import type { DefinedQueryObserverResult, + DistributiveOmit, OmitKeyof, QueryKey, } from '@tanstack/query-core' import type { UseQueryOptions } from './types' -type DistributiveOmit = TObject extends any - ? Omit - : never - export type UseSuspenseQueryResult< TData = unknown, TError = unknown, diff --git a/packages/vue-query/src/types.ts b/packages/vue-query/src/types.ts index cd807e6b1c..939717ac7a 100644 --- a/packages/vue-query/src/types.ts +++ b/packages/vue-query/src/types.ts @@ -136,7 +136,3 @@ export type VueInfiniteQueryObserverOptions< >[Property] > } - -export type DistributiveOmit = T extends any - ? Omit - : never diff --git a/packages/vue-query/src/useMutation.ts b/packages/vue-query/src/useMutation.ts index ab4354740a..b235566a98 100644 --- a/packages/vue-query/src/useMutation.ts +++ b/packages/vue-query/src/useMutation.ts @@ -18,6 +18,7 @@ import { import { useQueryClient } from './useQueryClient' import type { ToRefs } from 'vue-demi' import type { + DistributiveOmit, MutateFunction, MutateOptions, MutationFunction, @@ -25,12 +26,7 @@ import type { MutationObserverOptions, MutationObserverResult, } from '@tanstack/query-core' -import type { - DistributiveOmit, - MaybeRef, - MaybeRefDeep, - WithQueryClientKey, -} from './types' +import type { MaybeRef, MaybeRefDeep, WithQueryClientKey } from './types' type MutationResult = DistributiveOmit< MutationObserverResult, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 828c6b57fd..dc8229c444 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1356,6 +1356,15 @@ importers: specifier: npm:react-dom@^17.0.2 version: /react-dom@17.0.2(react@18.2.0) + packages/react-query/build/query-codemods: + devDependencies: + '@types/jscodeshift': + specifier: 17.3.0 + version: 17.3.0 + jscodeshift: + specifier: 17.3.0 + version: 17.3.0(@babel/preset-env@7.18.6) + packages/solid-query: dependencies: '@tanstack/query-core': @@ -1781,41 +1790,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.27.1): - resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) - '@babel/helper-split-export-declaration': 7.18.6 - transitivePeerDependencies: - - supports-color - - /@babel/helper-create-class-features-plugin@7.18.6(@babel/core@7.9.0): - resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.9.0) - '@babel/helper-split-export-declaration': 7.18.6 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.19.1): resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} engines: {node: '>=6.9.0'} @@ -1850,7 +1824,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: false /@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.9.0): resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} @@ -2062,10 +2035,6 @@ packages: resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} engines: {node: '>=6.9.0'} - /@babel/helper-plugin-utils@7.20.2: - resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} - engines: {node: '>=6.9.0'} - /@babel/helper-plugin-utils@7.27.1: resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} @@ -2296,6 +2265,8 @@ packages: '@babel/helper-plugin-utils': 7.19.0 '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.19.1) + transitivePeerDependencies: + - supports-color /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.6(@babel/core@7.27.1): resolution: {integrity: sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==} @@ -2304,9 +2275,11 @@ packages: '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-proposal-optional-chaining': 7.18.6(@babel/core@7.27.1) + transitivePeerDependencies: + - supports-color dev: true /@babel/plugin-proposal-async-generator-functions@7.18.6(@babel/core@7.19.1): @@ -2384,8 +2357,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1) - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -2396,8 +2369,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.9.0 - '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0) - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.9.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color dev: true @@ -2422,8 +2395,8 @@ packages: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1) - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.1) transitivePeerDependencies: - supports-color @@ -2736,9 +2709,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.1 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.1) + transitivePeerDependencies: + - supports-color /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.27.1): resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==} @@ -2747,9 +2722,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.1) + transitivePeerDependencies: + - supports-color /@babel/plugin-proposal-optional-chaining@7.18.6(@babel/core@7.9.0): resolution: {integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==} @@ -2758,9 +2735,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.9.0) + transitivePeerDependencies: + - supports-color dev: true /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.19.1): @@ -2782,8 +2761,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1) - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color dev: true @@ -2795,8 +2774,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.9.0 - '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.9.0) - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.9.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color dev: true @@ -2822,9 +2801,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.18.6(@babel/core@7.27.1) - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1) transitivePeerDependencies: - supports-color @@ -3058,7 +3037,6 @@ packages: dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - dev: false /@babel/plugin-syntax-import-assertions@7.18.6(@babel/core@7.19.1): resolution: {integrity: sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==} @@ -3159,7 +3137,6 @@ packages: dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - dev: false /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.1): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -3525,6 +3502,19 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true + /@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1): + resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-classes@7.18.8(@babel/core@7.19.1): resolution: {integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==} engines: {node: '>=6.9.0'} @@ -3550,12 +3540,12 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.18.6 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) '@babel/helper-split-export-declaration': 7.18.6 globals: 11.12.0 transitivePeerDependencies: @@ -3568,12 +3558,12 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.9.0 - '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.18.6 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.9.0) '@babel/helper-split-export-declaration': 7.18.6 globals: 11.12.0 transitivePeerDependencies: @@ -3747,7 +3737,6 @@ packages: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.1) - dev: false /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.1): resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} @@ -4106,6 +4095,16 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true + /@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1): + resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + dev: true + /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.19.1): resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==} engines: {node: '>=6.9.0'} @@ -4145,7 +4144,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.18.6 transitivePeerDependencies: - supports-color @@ -4157,12 +4156,25 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.18.6 transitivePeerDependencies: - supports-color dev: true + /@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1): + resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.1): resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} engines: {node: '>=6.9.0'} @@ -4191,6 +4203,19 @@ packages: '@babel/helper-plugin-utils': 7.19.0 dev: true + /@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1): + resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.1): resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} @@ -4310,7 +4335,7 @@ packages: '@babel/helper-module-imports': 7.18.6 '@babel/helper-plugin-utils': 7.19.0 '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1) - '@babel/types': 7.27.1 + '@babel/types': 7.19.0 dev: false /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.1): @@ -4457,8 +4482,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.27.1 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color /@babel/plugin-transform-spread@7.18.6(@babel/core@7.9.0): resolution: {integrity: sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==} @@ -4467,8 +4494,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color dev: true /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.19.1): @@ -4600,7 +4629,6 @@ packages: '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) transitivePeerDependencies: - supports-color - dev: false /@babel/plugin-transform-typescript@7.27.1(@babel/core@7.9.0): resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} @@ -4947,7 +4975,6 @@ packages: '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.1) - dev: false /@babel/preset-modules@0.1.5(@babel/core@7.19.1): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} @@ -5043,7 +5070,6 @@ packages: '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1) transitivePeerDependencies: - supports-color - dev: false /@babel/register@7.18.6(@babel/core@7.19.1): resolution: {integrity: sha512-tkYtONzaO8rQubZzpBnvZPFcHgh8D9F55IjOsYton4X2IBoyRn2ZSWQqySTZnUn2guZbxbQiAB27hJEbvXamhQ==} @@ -5071,7 +5097,6 @@ packages: make-dir: 2.1.0 pirates: 4.0.7 source-map-support: 0.5.21 - dev: false /@babel/runtime-corejs3@7.18.6: resolution: {integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==} @@ -7636,6 +7661,13 @@ packages: recast: 0.20.5 dev: true + /@types/jscodeshift@17.3.0: + resolution: {integrity: sha512-ogvGG8VQQqAQQ096uRh+d6tBHrYuZjsumHirKtvBa5qEyTMN3IQJ7apo+sw9lxaB/iKWIhbbLlF3zmAWk9XQIg==} + dependencies: + ast-types: 0.16.1 + recast: 0.23.11 + dev: true + /@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true @@ -8936,6 +8968,13 @@ packages: dependencies: tslib: 2.6.0 + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.0 + dev: true + /astral-regex@1.0.0: resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} engines: {node: '>=4'} @@ -9156,7 +9195,7 @@ packages: '@babel/core': 7.27.1 '@babel/helper-module-imports': 7.16.0 '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.27.1) - '@babel/types': 7.27.1 + '@babel/types': 7.19.0 html-entities: 2.3.2 dev: true @@ -9187,10 +9226,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.19.1 + '@babel/compat-data': 7.27.2 '@babel/core': 7.27.1 '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.27.1) - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true @@ -13817,6 +13856,39 @@ packages: - supports-color dev: true + /jscodeshift@17.3.0(@babel/preset-env@7.18.6): + resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==} + engines: {node: '>=16'} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 + peerDependenciesMeta: + '@babel/preset-env': + optional: true + dependencies: + '@babel/core': 7.27.1 + '@babel/parser': 7.27.2 + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1) + '@babel/preset-env': 7.18.6(@babel/core@7.19.1) + '@babel/preset-flow': 7.27.1(@babel/core@7.27.1) + '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) + '@babel/register': 7.27.1(@babel/core@7.27.1) + flow-parser: 0.121.0 + graceful-fs: 4.2.10 + micromatch: 4.0.8 + neo-async: 2.6.2 + picocolors: 1.1.1 + recast: 0.23.11 + tmp: 0.2.3 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /jsdom@16.7.0: resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} engines: {node: '>=10'} @@ -16667,6 +16739,17 @@ packages: source-map: 0.6.1 tslib: 2.6.0 + /recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.6.0 + dev: true + /rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} @@ -17247,6 +17330,11 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /simple-git@3.27.0: resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} dependencies: @@ -18178,7 +18266,6 @@ packages: /tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: false /tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} @@ -18221,6 +18308,11 @@ packages: rimraf: 3.0.2 dev: true + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: true + /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -19345,6 +19437,14 @@ packages: typedarray-to-buffer: 3.1.5 dev: true + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + dev: true + /ws@1.1.5: resolution: {integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==} peerDependencies: