diff --git a/.changeset/renovate-475bdf8.md b/.changeset/renovate-475bdf8.md new file mode 100644 index 000000000..bed1d58e8 --- /dev/null +++ b/.changeset/renovate-475bdf8.md @@ -0,0 +1,6 @@ +--- +'@scaleway/eslint-config-react': patch +--- + +Updated dependency `@typescript-eslint/eslint-plugin` to `6.4.0`. +Updated dependency `@typescript-eslint/parser` to `6.4.0`. diff --git a/.eslintrc b/.eslintrc index deabf7514..4c15ea56e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -27,7 +27,9 @@ }, "extends": ["@scaleway/react/typescript"], "rules": { - "no-console": "off" + "no-console": "off", + "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/no-floating-promises": "warn" } }, { diff --git a/packages/changesets-renovate/src/__tests__/generate-changeset.ts b/packages/changesets-renovate/src/__tests__/generate-changeset.ts index b20ea4b2e..9f91a1a01 100644 --- a/packages/changesets-renovate/src/__tests__/generate-changeset.ts +++ b/packages/changesets-renovate/src/__tests__/generate-changeset.ts @@ -1,4 +1,11 @@ -import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals' +import { + afterEach, + beforeEach, + describe, + expect, + it, + jest, +} from '@jest/globals' import fs from 'node:fs/promises' import { simpleGit } from 'simple-git' import { run } from '..' diff --git a/packages/eslint-config-react/package.json b/packages/eslint-config-react/package.json index 1e7cbca49..b966e9a44 100644 --- a/packages/eslint-config-react/package.json +++ b/packages/eslint-config-react/package.json @@ -18,8 +18,8 @@ "license": "MIT", "dependencies": { "@emotion/eslint-plugin": "11.11.0", - "@typescript-eslint/eslint-plugin": "5.62.0", - "@typescript-eslint/parser": "5.62.0", + "@typescript-eslint/eslint-plugin": "6.4.0", + "@typescript-eslint/parser": "6.4.0", "eslint-config-airbnb": "19.0.4", "eslint-config-airbnb-typescript": "17.1.0", "eslint-config-prettier": "9.0.0", diff --git a/packages/eslint-config-react/typescript.js b/packages/eslint-config-react/typescript.js index 5d95afc66..2e8bd38aa 100644 --- a/packages/eslint-config-react/typescript.js +++ b/packages/eslint-config-react/typescript.js @@ -29,6 +29,7 @@ module.exports = { '@typescript-eslint/prefer-reduce-type-parameter': 'error', '@typescript-eslint/prefer-string-starts-ends-with': 'error', '@typescript-eslint/prefer-ts-expect-error': 'error', + '@typescript-eslint/no-floating-promises': 'error', // https://github.com/typescript-eslint/typescript-eslint/issues/4619 '@typescript-eslint/no-misused-promises': [ 'error', @@ -38,10 +39,12 @@ module.exports = { }, }, ], + '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-unused-vars': 'error', '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/consistent-type-exports': 'error', '@typescript-eslint/consistent-type-definitions': ['error', 'type'], + '@typescript-eslint/no-redundant-type-constituents': 'warn', // We favor object defaults instead of default props in TS // https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/default_props/#you-may-not-need-defaultprops // https://twitter.com/dan_abramov/status/1133878326358171650 diff --git a/packages/outdated-browser/src/__tests__/index.ts b/packages/outdated-browser/src/__tests__/index.ts index 34aa0e91f..51f13ff5d 100644 --- a/packages/outdated-browser/src/__tests__/index.ts +++ b/packages/outdated-browser/src/__tests__/index.ts @@ -1,4 +1,11 @@ -import { afterEach, beforeAll, describe, expect, jest, test } from '@jest/globals' +import { + afterEach, + beforeAll, + describe, + expect, + jest, + test, +} from '@jest/globals' /** * @jest-environment jsdom diff --git a/packages/use-dataloader/src/__tests__/dataloader.test.ts b/packages/use-dataloader/src/__tests__/dataloader.test.ts index d0f2f0ba2..8709e5fff 100644 --- a/packages/use-dataloader/src/__tests__/dataloader.test.ts +++ b/packages/use-dataloader/src/__tests__/dataloader.test.ts @@ -54,9 +54,14 @@ describe('Dataloader class', () => { notifyChanges, }) expect(method).toBeCalledTimes(0) - instance.load().catch(undefined) - instance.load().catch(undefined) - await instance.load() + + // simulate multiple call in // + await Promise.all([ + instance.load().catch(undefined), + instance.load().catch(undefined), + instance.load(), + ]) + expect(method).toBeCalledTimes(1) instance.clearData() }) @@ -71,7 +76,9 @@ describe('Dataloader class', () => { }) expect(instance.getData()).toBe(undefined) expect(notify).toBeCalledTimes(0) - instance.load().catch(undefined) + + instance.load().catch(() => null) + expect(method).toBeCalledTimes(1) instance.cancel() expect(notify).toBeCalledTimes(0) @@ -145,7 +152,9 @@ describe('Dataloader class', () => { method, notifyChanges, }) + instance.load().catch(undefined) + instance.cancel() await waitForExpect(() => expect(instance.status).toBe(StatusEnum.IDLE)) expect(notifyChanges).toBeCalledTimes(1) @@ -181,9 +190,11 @@ describe('Dataloader class', () => { notifyChanges, }), ) - instances.forEach(instance => { - instance.load().catch(undefined) - }) + + for await (const instance of instances) { + await instance.load().catch(() => null) + } + await waitForExpect(() => expect(method).toBeCalledTimes(5)) }) }) diff --git a/packages/use-dataloader/src/useDataLoader.ts b/packages/use-dataloader/src/useDataLoader.ts index fea1f1cdb..01ac6e23a 100644 --- a/packages/use-dataloader/src/useDataLoader.ts +++ b/packages/use-dataloader/src/useDataLoader.ts @@ -112,7 +112,10 @@ export const useDataLoader = ( useEffect(() => { if (needLoad) { - request.load().then(onSuccessRef.current).catch(onErrorRef.current) + const defaultOnSuccessOrError = () => {} + const onSuccessLoad = onSuccessRef.current ?? defaultOnSuccessOrError + const onFailedLoad = onErrorRef.current ?? defaultOnSuccessOrError + request.load().then(onSuccessLoad).catch(onFailedLoad) } optimisticIsLoadingRef.current = false }, [needLoad, request]) @@ -130,10 +133,11 @@ export const useDataLoader = ( needPollingRef.current && !request.isCalled) ) { - request - .load(true) - .then(onSuccessRef.current) - .catch(onErrorRef.current) + const defaultOnSuccessOrError = () => {} + const onSuccessLoad = onSuccessRef.current ?? defaultOnSuccessOrError + const onFailedLoad = onErrorRef.current ?? defaultOnSuccessOrError + + request.load(true).then(onSuccessLoad).catch(onFailedLoad) } }, pollingInterval) } diff --git a/packages/use-gtm/src/__tests__/index.tsx b/packages/use-gtm/src/__tests__/index.tsx index 3a01a4eb0..d6fb2f53d 100644 --- a/packages/use-gtm/src/__tests__/index.tsx +++ b/packages/use-gtm/src/__tests__/index.tsx @@ -1,4 +1,11 @@ -import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals' +import { + afterEach, + beforeEach, + describe, + expect, + it, + jest, +} from '@jest/globals' import { fireEvent, renderHook } from '@testing-library/react' import mockdate from 'mockdate' import type { ReactNode } from 'react' diff --git a/packages/use-i18n/src/__tests__/usei18n.tsx b/packages/use-i18n/src/__tests__/usei18n.tsx index cebad5660..288413755 100644 --- a/packages/use-i18n/src/__tests__/usei18n.tsx +++ b/packages/use-i18n/src/__tests__/usei18n.tsx @@ -1,4 +1,11 @@ -import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals' +import { + afterEach, + beforeEach, + describe, + expect, + it, + jest, +} from '@jest/globals' import { act, renderHook, waitFor } from '@testing-library/react' import mockdate from 'mockdate' import type { ReactNode } from 'react' diff --git a/packages/use-media/src/useMedia.ts b/packages/use-media/src/useMedia.ts index 49bd93644..51b4727b1 100644 --- a/packages/use-media/src/useMedia.ts +++ b/packages/use-media/src/useMedia.ts @@ -22,7 +22,7 @@ const createUseMedia = effect(() => { let mounted = true const mediaQueryList: MediaQueryList = - typeof window === 'undefined' || + typeof window !== 'undefined' && typeof window.matchMedia === 'undefined' ? mockMediaQueryList : window.matchMedia(query) diff --git a/packages/use-storage/src/index.ts b/packages/use-storage/src/index.ts index 4b001e802..ed27cd709 100644 --- a/packages/use-storage/src/index.ts +++ b/packages/use-storage/src/index.ts @@ -16,12 +16,13 @@ declare global { } } -const canUseDOM = !!( +const canUseDOM = typeof window !== 'undefined' && - typeof window.document !== 'undefined' && - typeof window.localStorage !== 'undefined' && - typeof window.sessionStorage !== 'undefined' -) + !!( + typeof window.document !== 'undefined' && + typeof window.localStorage !== 'undefined' && + typeof window.sessionStorage !== 'undefined' + ) const subscribeStorage = (callback: () => void) => { if (canUseDOM) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1bd3374e3..ba9d2e565 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -153,17 +153,17 @@ importers: specifier: 11.11.0 version: 11.11.0(eslint@8.49.0) '@typescript-eslint/eslint-plugin': - specifier: 5.62.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.49.0)(typescript@5.2.2) + specifier: 6.4.0 + version: 6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.49.0)(typescript@5.2.2) '@typescript-eslint/parser': - specifier: 5.62.0 - version: 5.62.0(eslint@8.49.0)(typescript@5.2.2) + specifier: 6.4.0 + version: 6.4.0(eslint@8.49.0)(typescript@5.2.2) eslint-config-airbnb: specifier: 19.0.4 version: 19.0.4(eslint-plugin-import@2.28.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.49.0) eslint-config-airbnb-typescript: specifier: 17.1.0 - version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0) + version: 17.1.0(@typescript-eslint/eslint-plugin@6.4.0)(@typescript-eslint/parser@6.4.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0) eslint-config-prettier: specifier: 9.0.0 version: 9.0.0(eslint@8.49.0) @@ -175,7 +175,7 @@ importers: version: 3.2.0(eslint@8.49.0) eslint-plugin-import: specifier: 2.28.1 - version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.49.0) + version: 2.28.1(@typescript-eslint/parser@6.4.0)(eslint@8.49.0) eslint-plugin-jsx-a11y: specifier: 6.7.1 version: 6.7.1(eslint@8.49.0) @@ -539,7 +539,7 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.17 + '@babel/types': 7.22.15 dev: true /@babel/helper-module-imports@7.21.4: @@ -553,7 +553,21 @@ packages: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.17 + '@babel/types': 7.22.15 + dev: true + + /@babel/helper-module-transforms@7.22.15(@babel/core@7.22.20): + resolution: {integrity: sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.20 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.15 dev: true /@babel/helper-module-transforms@7.22.17(@babel/core@7.22.20): @@ -1188,7 +1202,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.22.20 - '@babel/helper-module-transforms': 7.22.17(@babel/core@7.22.20) + '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.20) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true @@ -1383,7 +1397,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.20) - '@babel/types': 7.22.17 + '@babel/types': 7.22.15 dev: true /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.22.20): @@ -1737,6 +1751,15 @@ packages: - supports-color dev: true + /@babel/types@7.22.15: + resolution: {integrity: sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 + to-fast-properties: 2.0.0 + dev: true + /@babel/types@7.22.17: resolution: {integrity: sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==} engines: {node: '>=6.9.0'} @@ -2287,11 +2310,6 @@ packages: eslint: 8.49.0 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: false - /@eslint-community/regexpp@4.6.2: resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -3989,7 +4007,7 @@ packages: resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} dependencies: '@babel/parser': 7.22.16 - '@babel/types': 7.22.17 + '@babel/types': 7.22.19 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.3 @@ -3998,20 +4016,20 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.22.17 + '@babel/types': 7.22.19 dev: true /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: '@babel/parser': 7.22.16 - '@babel/types': 7.22.17 + '@babel/types': 7.22.19 dev: true /@types/babel__traverse@7.18.3: resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} dependencies: - '@babel/types': 7.22.17 + '@babel/types': 7.22.19 dev: true /@types/estree@1.0.0: @@ -4134,47 +4152,49 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.49.0)(typescript@5.2.2): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.49.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.49.0)(typescript@5.2.2) + '@eslint-community/regexpp': 4.6.2 + '@typescript-eslint/parser': 6.4.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/type-utils': 6.4.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.4.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4 eslint: 8.49.0 graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.5.3 - tsutils: 3.21.0(typescript@5.2.2) + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: false - /@typescript-eslint/parser@5.62.0(eslint@8.49.0)(typescript@5.2.2): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.4.0(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.4.0 debug: 4.3.4 eslint: 8.49.0 typescript: 5.2.2 @@ -4190,21 +4210,29 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: false - /@typescript-eslint/type-utils@5.62.0(eslint@8.49.0)(typescript@5.2.2): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@6.4.0: + resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 + dev: false + + /@typescript-eslint/type-utils@6.4.0(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.4.0(eslint@8.49.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.49.0 - tsutils: 3.21.0(typescript@5.2.2) + ts-api-utils: 1.0.3(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -4215,6 +4243,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false + /@typescript-eslint/types@6.4.0: + resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: false + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4236,6 +4269,27 @@ packages: - supports-color dev: false + /@typescript-eslint/typescript-estree@6.4.0(typescript@5.2.2): + resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/utils@5.62.0(eslint@8.49.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4256,6 +4310,25 @@ packages: - typescript dev: false + /@typescript-eslint/utils@6.4.0(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.2.2) + eslint: 8.49.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4264,6 +4337,14 @@ packages: eslint-visitor-keys: 3.4.1 dev: false + /@typescript-eslint/visitor-keys@6.4.0: + resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.4.0 + eslint-visitor-keys: 3.4.3 + dev: false + /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -4547,7 +4628,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.22.17 + '@babel/types': 7.22.19 '@types/babel__core': 7.20.0 '@types/babel__traverse': 7.18.3 dev: true @@ -5642,13 +5723,13 @@ packages: dependencies: confusing-browser-globals: 1.0.11 eslint: 8.49.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.4.0)(eslint@8.49.0) object.assign: 4.1.4 object.entries: 1.1.6 semver: 6.3.1 dev: false - /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0): + /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.4.0)(@typescript-eslint/parser@6.4.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0): resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 @@ -5656,11 +5737,11 @@ packages: eslint: ^7.32.0 || ^8.2.0 eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.49.0)(typescript@5.2.2) - '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.4.0(eslint@8.49.0)(typescript@5.2.2) eslint: 8.49.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.49.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.4.0)(eslint@8.49.0) dev: false /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.28.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.49.0): @@ -5675,7 +5756,7 @@ packages: dependencies: eslint: 8.49.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.49.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.49.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.4.0)(eslint@8.49.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.49.0) eslint-plugin-react: 7.33.2(eslint@8.49.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.49.0) @@ -5702,7 +5783,7 @@ packages: - supports-color dev: false - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5723,7 +5804,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.4.0(eslint@8.49.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.49.0 eslint-import-resolver-node: 0.3.7 @@ -5757,7 +5838,7 @@ packages: ignore: 5.2.0 dev: false - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.49.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.4.0)(eslint@8.49.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5767,7 +5848,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.4.0(eslint@8.49.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -5776,7 +5857,7 @@ packages: doctrine: 2.1.0 eslint: 8.49.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.7)(eslint@8.49.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -7246,7 +7327,7 @@ packages: '@babel/generator': 7.22.15 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.20) '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.20) - '@babel/types': 7.22.17 + '@babel/types': 7.22.19 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -7871,10 +7952,6 @@ packages: hasBin: true dev: false - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: false - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -8681,6 +8758,7 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: true /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} @@ -9096,6 +9174,15 @@ packages: engines: {node: '>=8'} dev: true + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: false + /ts-node@10.9.1(@types/node@18.17.17)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true