diff --git a/package.json b/package.json index a7e4c459f7..5938c99420 100644 --- a/package.json +++ b/package.json @@ -70,9 +70,7 @@ "detox@npm:20.46.0/ajv": "^8.18.0", "@eslint/eslintrc@npm:2.1.4/ajv": "^6.14.0", "@eslint/eslintrc@npm:3.3.3/ajv": "^6.14.0", - "eslint@npm:8.57.0/ajv": "^6.14.0", - "eslint@npm:8.57.1/ajv": "^6.14.0", - "eslint@npm:9.39.2/ajv": "^6.14.0", + "eslint@npm:9.39.4/ajv": "^6.14.0", "express@npm:4.19.2/path-to-regexp": "0.1.12", "@eslint/config-array@npm:0.21.1/minimatch": "^3.1.3", "@eslint/eslintrc@npm:2.1.4/minimatch": "^3.1.3", @@ -86,9 +84,7 @@ "eslint-plugin-node@npm:11.1.0/minimatch": "^3.1.3", "eslint-plugin-react@npm:7.35.0/minimatch": "^3.1.3", "eslint-plugin-react@npm:7.37.5/minimatch": "^3.1.3", - "eslint@npm:8.57.0/minimatch": "^3.1.3", - "eslint@npm:8.57.1/minimatch": "^3.1.3", - "eslint@npm:9.39.2/minimatch": "^3.1.3", + "eslint@npm:9.39.4/minimatch": "^3.1.3", "glob@npm:6.0.4/minimatch": "^3.1.3", "glob@npm:7.1.6/minimatch": "^3.1.3", "glob@npm:7.2.3/minimatch": "^3.1.3", @@ -110,9 +106,10 @@ "@sentry/node@npm:10.31.0/minimatch": "^9.0.7", "@tufjs/models@npm:2.0.1/minimatch": "^9.0.7", "@typescript-eslint/typescript-estree@npm:6.21.0/minimatch": "^9.0.7", - "@typescript-eslint/typescript-estree@npm:7.18.0/minimatch": "^9.0.7", "@typescript-eslint/typescript-estree@npm:8.50.0/minimatch": "^9.0.7", "@typescript-eslint/typescript-estree@npm:8.54.0/minimatch": "^9.0.7", + "@typescript-eslint/typescript-estree@npm:8.56.1/minimatch": "^9.0.7", + "@typescript-eslint/typescript-estree@npm:8.57.0/minimatch": "^9.0.7", "editorconfig@npm:1.0.4/minimatch": "^9.0.7", "glob@npm:10.4.1/minimatch": "^9.0.7", "glob@npm:10.4.5/minimatch": "^9.0.7", @@ -121,6 +118,9 @@ "nx@npm:19.6.4/minimatch": "^9.0.7", "webdriverio@npm:8.40.5/minimatch": "^9.0.7", "glob@npm:13.0.0/minimatch": "^10.2.3", + "@sentry-internal/eslint-config-sdk@npm:10.43.0/@typescript-eslint/eslint-plugin": "^8.0.0", + "@sentry-internal/eslint-config-sdk@npm:10.43.0/@typescript-eslint/parser": "^8.0.0", + "eslint-plugin-ft-flow": "^3.0.0", "axios": "^1.13.5", "fast-xml-parser": "^5.3.6", "form-data": "4.0.5", diff --git a/packages/core/.eslintrc.js b/packages/core/.eslintrc.js index 3ad06277ab..de56f0a329 100644 --- a/packages/core/.eslintrc.js +++ b/packages/core/.eslintrc.js @@ -28,15 +28,27 @@ module.exports = { files: ['*.ts', '*.tsx'], extends: ['plugin:react/recommended'], plugins: ['react', 'react-native'], + parserOptions: { + project: './tsconfig.json', + }, rules: { '@typescript-eslint/typedef': ['error', { arrowParameter: false, variableDeclarationIgnoreFunction: true }], + // @typescript-eslint/ban-types was removed in v8, replaced by more specific rules. + // no-empty-object-type was 'off' under ban-types, keep it off. + '@typescript-eslint/no-empty-object-type': 'off', + // no-explicit-any was 'warn' in v5 recommended, keep it as 'warn' (v8 defaults to 'error') + '@typescript-eslint/no-explicit-any': 'warn', + // Allow require() in React Native code (dynamic requires are a common RN pattern) + '@typescript-eslint/no-require-imports': 'off', + // In @typescript-eslint v8, caughtErrors defaults to 'all' (was 'none' in v5). + // The codebase commonly uses catch(e) {} without using the error variable. + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrors: 'none' }], }, }, { // Test Files files: ['*.test.ts', '*.test.tsx', '*.test.js', '*.test.jsx'], rules: { - '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/unbound-method': 'off', @@ -51,6 +63,8 @@ module.exports = { }, rules: { 'no-console': 'off', + // In ESLint 9, no-unused-vars reports catch clause variables by default + 'no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrors: 'none' }], }, }, { diff --git a/packages/core/package.json b/packages/core/package.json index 29ebcd6487..a4ecc6d469 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,10 +38,10 @@ "test:watch": "npx jest --watch", "yalc:add:sentry-javascript": "yalc add @sentry/browser @sentry/core @sentry/react @sentry/types", "fix": "npx run-s fix:eslint fix:prettier", - "fix:eslint": "eslint --config .eslintrc.js --fix .", + "fix:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint --config .eslintrc.js --fix .", "fix:prettier": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --write \"{src,test,scripts,plugin/src}/**/**.ts\"", "lint": "npx run-s lint:eslint lint:prettier", - "lint:eslint": "eslint --config .eslintrc.js .", + "lint:eslint": "ESLINT_USE_FLAT_CONFIG=false eslint --config .eslintrc.js .", "lint:prettier": "prettier --config ../../.prettierrc.json --ignore-path ../../.prettierignore --check \"{src,test,scripts,plugin/src}/**/**.ts\"" }, "bin": { @@ -95,13 +95,13 @@ "@types/uglify-js": "^3.17.2", "@types/uuid": "^9.0.4", "@types/xmlhttprequest": "^1.8.2", - "@typescript-eslint/eslint-plugin": "^5.48.0", - "@typescript-eslint/parser": "^5.48.0", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", "babel-jest": "^29.6.3", "babel-plugin-module-resolver": "^5.0.0", "babel-preset-fbjs": "^3.4.0", "downlevel-dts": "^0.11.0", - "eslint": "^8.57.0", + "eslint": "^9.0.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-native": "^3.8.1", "expo": "^53.0.0", diff --git a/packages/core/plugin/src/withSentry.ts b/packages/core/plugin/src/withSentry.ts index 8331dbf2c4..538df82d37 100644 --- a/packages/core/plugin/src/withSentry.ts +++ b/packages/core/plugin/src/withSentry.ts @@ -43,7 +43,7 @@ const withSentryPlugin: ConfigPlugin = (config, props) => { warnOnce(`There was a problem with configuring your native Android project: ${e}`); } // if `enableAndroidGradlePlugin` is provided configure the Sentry Android Gradle Plugin - if (props?.experimental_android && props?.experimental_android?.enableAndroidGradlePlugin) { + if (props?.experimental_android?.enableAndroidGradlePlugin) { try { cfg = withSentryAndroidGradlePlugin(cfg, props.experimental_android); } catch (e) { diff --git a/packages/core/src/js/integrations/debugsymbolicator.ts b/packages/core/src/js/integrations/debugsymbolicator.ts index 8daafd0005..037a36f11f 100644 --- a/packages/core/src/js/integrations/debugsymbolicator.ts +++ b/packages/core/src/js/integrations/debugsymbolicator.ts @@ -85,6 +85,7 @@ async function symbolicate(rawStack: string, skipFirstFrames: number = 0): Promi : newStack; const stackWithoutInternalCallsites = stackWithoutPoppedFrames.filter( + // eslint-disable-next-line @typescript-eslint/prefer-optional-chain -- keep falsy check for empty string file paths (frame: { file?: string }) => frame.file && frame.file.match(INTERNAL_CALLSITES_REGEX) === null, ); diff --git a/packages/core/src/js/misc.ts b/packages/core/src/js/misc.ts index 17ae67ac50..760bf8ff0a 100644 --- a/packages/core/src/js/misc.ts +++ b/packages/core/src/js/misc.ts @@ -12,7 +12,7 @@ export function isHardCrash(payload: EnvelopeItemPayload): boolean { const values: Exception[] = typeof payload !== 'string' && 'exception' in payload && payload.exception?.values ? payload.exception.values : []; for (const exception of values) { - if (exception.mechanism && exception.mechanism.handled === false && exception.mechanism.type === 'onerror') { + if (exception.mechanism?.handled === false && exception.mechanism.type === 'onerror') { return true; } } diff --git a/packages/core/src/js/tools/utils.ts b/packages/core/src/js/tools/utils.ts index e7ed5bc849..f3b4d06e32 100644 --- a/packages/core/src/js/tools/utils.ts +++ b/packages/core/src/js/tools/utils.ts @@ -139,11 +139,7 @@ export function prependModule( module: Module, ): Module[] { const modifiedPreModules = [...modules]; - if ( - modifiedPreModules.length > 0 && - modifiedPreModules[0] !== undefined && - modifiedPreModules[0].path === PRELUDE_MODULE_PATH - ) { + if (modifiedPreModules.length > 0 && modifiedPreModules[0]?.path === PRELUDE_MODULE_PATH) { // prelude module must be first as it measures the bundle startup time modifiedPreModules.unshift(modules[0] as Module); modifiedPreModules[1] = module; diff --git a/packages/core/src/js/tracing/integrations/nativeFrames.ts b/packages/core/src/js/tracing/integrations/nativeFrames.ts index 77b31edd63..f41e0887e9 100644 --- a/packages/core/src/js/tracing/integrations/nativeFrames.ts +++ b/packages/core/src/js/tracing/integrations/nativeFrames.ts @@ -197,8 +197,7 @@ export const nativeFramesIntegration = (): Integration => { if ( event.type !== 'transaction' || !event.transaction || - !event.contexts || - !event.contexts.trace || + !event.contexts?.trace || !event.timestamp || !event.contexts.trace.span_id ) { diff --git a/packages/core/src/js/tracing/integrations/timeToDisplayIntegration.ts b/packages/core/src/js/tracing/integrations/timeToDisplayIntegration.ts index 92b38370df..6fc2394e94 100644 --- a/packages/core/src/js/tracing/integrations/timeToDisplayIntegration.ts +++ b/packages/core/src/js/tracing/integrations/timeToDisplayIntegration.ts @@ -23,6 +23,7 @@ export const timeToDisplayIntegration = (): Integration => { enableTimeToInitialDisplayForPreloadedRoutes = getReactNavigationIntegration(client)?.options.enableTimeToInitialDisplayForPreloadedRoutes ?? false; }, + // eslint-disable-next-line complexity processEvent: async event => { if (event.type !== 'transaction') { // TimeToDisplay data is only relevant for transactions diff --git a/packages/core/src/js/tracing/reactnativenavigation.ts b/packages/core/src/js/tracing/reactnativenavigation.ts index c35f22922c..840ed74e56 100644 --- a/packages/core/src/js/tracing/reactnativenavigation.ts +++ b/packages/core/src/js/tracing/reactnativenavigation.ts @@ -158,7 +158,7 @@ export const reactNativeNavigationIntegration = ({ } // We ignore actions that pertain to the same screen. - const isSameComponent = prevComponentEvent && event.componentId === prevComponentEvent.componentId; + const isSameComponent = event.componentId === prevComponentEvent?.componentId; if (isSameComponent) { discardLatestNavigationSpan(); return; diff --git a/packages/core/src/js/tracing/reactnavigation.ts b/packages/core/src/js/tracing/reactnavigation.ts index 9296be1d3d..e16d4ea7d3 100644 --- a/packages/core/src/js/tracing/reactnavigation.ts +++ b/packages/core/src/js/tracing/reactnavigation.ts @@ -308,6 +308,7 @@ export const reactNavigationIntegration = ({ * @param unknownEvent - The event object that contains navigation action data * @param isAppRestart - Whether this span is being started due to an app restart rather than a normal navigation action */ + // eslint-disable-next-line complexity const startIdleNavigationSpan = (unknownEvent?: unknown, isAppRestart = false): void => { const event = unknownEvent as UnsafeAction | undefined; if (useDispatchedActionData && event?.data.noop) { @@ -414,6 +415,7 @@ export const reactNavigationIntegration = ({ /** * To be called AFTER the state has been changed to populate the transaction with the current route. */ + // eslint-disable-next-line complexity const updateLatestNavigationSpanWithCurrentRoute = (): void => { const stateChangedTimestamp = timestampInSeconds(); const previousRoute = latestRoute; @@ -438,7 +440,7 @@ export const reactNavigationIntegration = ({ addTimeToInitialDisplayFallback(latestNavigationSpan.spanContext().spanId, NATIVE.getNewScreenTimeToDisplay()); - if (previousRoute && previousRoute.key === route.key) { + if (previousRoute?.key === route.key) { debug.log(`[${INTEGRATION_NAME}] Navigation state changed, but route is the same as previous.`); pushRecentRouteKey(route.key); latestRoute = route; diff --git a/packages/core/src/js/utils/ignorerequirecyclelogs.ts b/packages/core/src/js/utils/ignorerequirecyclelogs.ts index db9897d3fb..e8e93af2bf 100644 --- a/packages/core/src/js/utils/ignorerequirecyclelogs.ts +++ b/packages/core/src/js/utils/ignorerequirecyclelogs.ts @@ -9,7 +9,7 @@ interface ReactNativeVersion { * This is a workaround for using fetch on RN, this is a known issue in react-native and only generates a warning. */ export function ignoreRequireCycleLogs(version?: ReactNativeVersion): void { - if (version && version.major === 0 && version.minor < 70) { + if (version?.major === 0 && version.minor < 70) { // Do not ignore require cycle logs on React Native versions >= 0.70 // https://github.com/getsentry/sentry-react-native/issues/3484#issuecomment-1877034820 LogBox.ignoreLogs(['Require cycle:']); diff --git a/packages/core/src/js/utils/safe.ts b/packages/core/src/js/utils/safe.ts index 7deb1d8d4c..6a5b56d6fd 100644 --- a/packages/core/src/js/utils/safe.ts +++ b/packages/core/src/js/utils/safe.ts @@ -1,9 +1,7 @@ import { debug } from '@sentry/core'; import type { ReactNativeOptions } from '../options'; -type DangerTypesWithoutCallSignature = - // eslint-disable-next-line @typescript-eslint/ban-types - Object | null | undefined; +type DangerTypesWithoutCallSignature = object | null | undefined; /** * Returns callback factory wrapped with try/catch diff --git a/packages/core/test/tools/metroconfig.test.ts b/packages/core/test/tools/metroconfig.test.ts index 685dcb0fcb..23d9366b85 100644 --- a/packages/core/test/tools/metroconfig.test.ts +++ b/packages/core/test/tools/metroconfig.test.ts @@ -344,9 +344,7 @@ describe('metroconfig', () => { context.resolveRequest = resolver; return resolver(context, `real${moduleName}`, platform, moduleName); } - return ( - metroConfig.resolver?.resolveRequest && metroConfig.resolver.resolveRequest(context, moduleName, platform) - ); + return metroConfig.resolver?.resolveRequest?.(context, moduleName, platform); } function ExpectToBeCalledWithMetroParameters( diff --git a/packages/core/test/tracing/reactnavigation.test.ts b/packages/core/test/tracing/reactnavigation.test.ts index d5a4baa541..10efcee496 100644 --- a/packages/core/test/tracing/reactnavigation.test.ts +++ b/packages/core/test/tracing/reactnavigation.test.ts @@ -1,7 +1,6 @@ /* eslint-disable deprecation/deprecation */ /* eslint-disable @typescript-eslint/no-explicit-any */ -import type { SentrySpan } from '@sentry/core'; -import type { Event, Measurements, StartSpanOptions } from '@sentry/core'; +import type { Event, Measurements, SentrySpan, StartSpanOptions } from '@sentry/core'; import { getActiveSpan, getCurrentScope, diff --git a/packages/core/test/utils/sentryeventemitterfallback.test.ts b/packages/core/test/utils/sentryeventemitterfallback.test.ts index dcee207da9..a216e7515a 100644 --- a/packages/core/test/utils/sentryeventemitterfallback.test.ts +++ b/packages/core/test/utils/sentryeventemitterfallback.test.ts @@ -173,7 +173,7 @@ describe('SentryEventEmitterFallback', () => { jest.useFakeTimers(); // Capture the callback passed to addListener - // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/ban-types + // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unsafe-function-type let callback: Function = () => {}; const mockOnce = jest.fn().mockImplementationOnce((eventName, cb) => { if (eventName === NewFrameEventName) { diff --git a/packages/core/typings/global.d.ts b/packages/core/typings/global.d.ts index fa1125a77d..9f79123cf6 100644 --- a/packages/core/typings/global.d.ts +++ b/packages/core/typings/global.d.ts @@ -17,7 +17,7 @@ declare global { interface ObjectConstructor { freeze(o: T): Readonly; - // eslint-disable-next-line @typescript-eslint/ban-types -- Matching TypeScript's official Object.freeze signature from lib.es5.d.ts + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type -- Matching TypeScript's official Object.freeze signature from lib.es5.d.ts freeze(f: T): T; freeze(o: T): Readonly; diff --git a/performance-tests/TestAppPlain/package.json b/performance-tests/TestAppPlain/package.json index a71924ec67..41e4a67f72 100644 --- a/performance-tests/TestAppPlain/package.json +++ b/performance-tests/TestAppPlain/package.json @@ -19,13 +19,13 @@ "@react-native-community/cli-platform-android": "19.1.1", "@react-native-community/cli-platform-ios": "19.1.1", "@react-native/babel-preset": "0.80.2", - "@react-native/eslint-config": "0.80.2", + "@react-native/eslint-config": "0.84.1", "@react-native/metro-config": "0.80.2", "@react-native/typescript-config": "0.80.2", "@types/jest": "^29.5.13", "@types/react": "^19.1.0", "@types/react-test-renderer": "^19.1.0", - "eslint": "^8.19.0", + "eslint": "^9.0.0", "jest": "^29.6.3", "prettier": "2.8.8", "react-test-renderer": "19.1.0", diff --git a/performance-tests/TestAppSentry/package.json b/performance-tests/TestAppSentry/package.json index b0c24dcc55..e3e0ea4195 100644 --- a/performance-tests/TestAppSentry/package.json +++ b/performance-tests/TestAppSentry/package.json @@ -21,13 +21,13 @@ "@react-native-community/cli-platform-android": "19.1.1", "@react-native-community/cli-platform-ios": "19.1.1", "@react-native/babel-preset": "0.80.2", - "@react-native/eslint-config": "0.80.2", + "@react-native/eslint-config": "0.84.1", "@react-native/metro-config": "0.80.2", "@react-native/typescript-config": "0.80.2", "@types/jest": "^29.5.13", "@types/react": "^19.1.0", "@types/react-test-renderer": "^19.1.0", - "eslint": "^8.19.0", + "eslint": "^9.0.0", "jest": "^29.6.3", "prettier": "2.8.8", "react-test-renderer": "19.1.0", diff --git a/samples/expo/package.json b/samples/expo/package.json index ab4ede6088..b4a8d28939 100644 --- a/samples/expo/package.json +++ b/samples/expo/package.json @@ -10,8 +10,8 @@ "android": "expo run:android", "ios": "expo run:ios", "ts:check": "tsc", - "lint": "npx eslint . --ext .js,.jsx,.ts,.tsx", - "fix": "npx eslint . --ext .js,.jsx,.ts,.tsx --fix && prettier --write \"**/*.{js,jsx,ts,tsx,json}\"", + "lint": "ESLINT_USE_FLAT_CONFIG=false npx eslint . --ext .js,.jsx,.ts,.tsx", + "fix": "ESLINT_USE_FLAT_CONFIG=false npx eslint . --ext .js,.jsx,.ts,.tsx --fix && prettier --write \"**/*.{js,jsx,ts,tsx,json}\"", "export": "expo export --source-maps --clear --platform all", "export:web": "expo export --source-maps --clear --platform web", "prebuild": "expo prebuild --clean --no-install", @@ -47,12 +47,12 @@ "devDependencies": { "@babel/core": "^7.26.0", "@babel/preset-env": "^7.26.0", - "@react-native/eslint-config": "0.83.2", + "@react-native/eslint-config": "0.84.1", "@sentry/babel-plugin-component-annotate": "5.1.1", "@types/node": "20.10.4", "@typescript-eslint/eslint-plugin": "^8.50.0", "@typescript-eslint/parser": "^8.50.0", - "eslint": "^8.57.0", + "eslint": "^9.0.0", "eslint-config-expo": "~55.0.0", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.32.0", diff --git a/samples/react-native-macos/.eslintrc.js b/samples/react-native-macos/.eslintrc.js index b84c804e8d..77c01018a4 100644 --- a/samples/react-native-macos/.eslintrc.js +++ b/samples/react-native-macos/.eslintrc.js @@ -8,6 +8,8 @@ module.exports = { files: ['*.ts', '*.tsx'], rules: { '@typescript-eslint/no-shadow': ['error'], + // In @typescript-eslint v8, caughtErrors defaults to 'all' (was 'none' in v5). + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrors: 'none' }], 'no-shadow': 'off', 'no-undef': 'off', quotes: [2, 'single', { avoidEscape: true }], diff --git a/samples/react-native-macos/package.json b/samples/react-native-macos/package.json index e4c9bc014d..73c9fe75f9 100644 --- a/samples/react-native-macos/package.json +++ b/samples/react-native-macos/package.json @@ -4,8 +4,8 @@ "private": true, "scripts": { "start": "react-native start --experimental-debugger", - "lint": "npx eslint . --ext .js,.jsx,.ts,.tsx", - "fix": "npx eslint . --ext .js,.jsx,.ts,.tsx --fix", + "lint": "ESLINT_USE_FLAT_CONFIG=false npx eslint . --ext .js,.jsx,.ts,.tsx", + "fix": "ESLINT_USE_FLAT_CONFIG=false npx eslint . --ext .js,.jsx,.ts,.tsx --fix", "type-check": "tsc --noEmit", "pod-install-legacy": "cd macos; bundle exec pod install; cd ..", "pod-install-legacy-production": "cd macos; PRODUCTION=1 bundle exec pod install; cd ..", @@ -37,15 +37,16 @@ "@babel/preset-env": "^7.22.5", "@babel/runtime": "^7.22.5", "@react-native/babel-preset": "0.73.21", - "@react-native/eslint-config": "0.73.2", + "@react-native/eslint-config": "0.84.1", "@react-native/metro-config": "0.73.5", "@react-native/typescript-config": "0.73.1", "@types/react": "^18.2.65", "@types/react-native-vector-icons": "^6.4.18", - "@typescript-eslint/eslint-plugin": "^5.37.0", - "@typescript-eslint/parser": "^5.37.0", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", "babel-plugin-module-resolver": "^5.0.0", - "eslint": "^8.19.0", + "eslint": "^9.0.0", + "eslint-plugin-jest": "^29.0.0", "jest": "^29.6.3", "prettier": "2.8.8", "sentry-react-native-samples-utils": "workspace:^", diff --git a/samples/react-native/.eslintrc.js b/samples/react-native/.eslintrc.js index b84c804e8d..77c01018a4 100644 --- a/samples/react-native/.eslintrc.js +++ b/samples/react-native/.eslintrc.js @@ -8,6 +8,8 @@ module.exports = { files: ['*.ts', '*.tsx'], rules: { '@typescript-eslint/no-shadow': ['error'], + // In @typescript-eslint v8, caughtErrors defaults to 'all' (was 'none' in v5). + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrors: 'none' }], 'no-shadow': 'off', 'no-undef': 'off', quotes: [2, 'single', { avoidEscape: true }], diff --git a/samples/react-native/package.json b/samples/react-native/package.json index 7299919ad8..87050c2ec9 100644 --- a/samples/react-native/package.json +++ b/samples/react-native/package.json @@ -23,8 +23,8 @@ "test-android-auto": "scripts/test-android-auto.sh", "test-ios-manual": "scripts/test-ios-manual.sh", "test-ios-auto": "scripts/test-ios-auto.sh", - "lint": "npx eslint . --ext .js,.jsx,.ts,.tsx", - "fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix", + "lint": "ESLINT_USE_FLAT_CONFIG=false npx eslint . --ext .js,.jsx,.ts,.tsx", + "fix": "ESLINT_USE_FLAT_CONFIG=false eslint . --ext .js,.jsx,.ts,.tsx --fix", "pod-install-debug-static": "scripts/pod-install-debug-static.sh", "pod-install-debug-static-legacy": "scripts/pod-install-debug-static-legacy.sh", "pod-install-debug-dynamic": "scripts/pod-install-debug-dynamic.sh", @@ -74,7 +74,7 @@ "@react-native-community/cli-platform-android": "19.1.1", "@react-native-community/cli-platform-ios": "19.1.1", "@react-native/babel-preset": "0.80.2", - "@react-native/eslint-config": "0.80.2", + "@react-native/eslint-config": "0.84.1", "@react-native/metro-config": "0.80.2", "@react-native/typescript-config": "0.80.2", "@sentry/babel-plugin-component-annotate": "5.1.1", @@ -83,13 +83,14 @@ "@types/node": "^22.13.1", "@types/react": "^19.1.0", "@types/react-test-renderer": "^19.1.0", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", "babel-jest": "^29.6.3", "babel-plugin-module-resolver": "^5.0.0", "detox": "^20.33.0", - "eslint": "^8.19.0", + "eslint": "^9.0.0", "eslint-plugin-ft-flow": "^3.0.11", + "eslint-plugin-jest": "^29.0.0", "jest": "^29.6.3", "patch-package": "^8.0.0", "prettier": "2.8.8", diff --git a/yarn.lock b/yarn.lock index 979f74e27e..e7dbb26beb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -689,20 +689,6 @@ __metadata: languageName: node linkType: hard -"@babel/eslint-parser@npm:^7.20.0": - version: 7.25.1 - resolution: "@babel/eslint-parser@npm:7.25.1" - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals": "npm:5.1.1-v1" - eslint-visitor-keys: "npm:^2.1.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - checksum: 73207b7e84a58bd6560d29f11cf5c6f9d64a01b9299d4d0a145423a028ea4c402be2fd09228647fdbec14b65a07d4138e751468fd33d9a9363c9698582fa80b5 - languageName: node - linkType: hard - "@babel/eslint-parser@npm:^7.25.1": version: 7.25.9 resolution: "@babel/eslint-parser@npm:7.25.9" @@ -5631,7 +5617,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -5678,13 +5664,6 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.11.0 - resolution: "@eslint-community/regexpp@npm:4.11.0" - checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec - languageName: node - linkType: hard - "@eslint-community/regexpp@npm:^4.5.1": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" @@ -5703,6 +5682,17 @@ __metadata: languageName: node linkType: hard +"@eslint/config-array@npm:^0.21.2": + version: 0.21.2 + resolution: "@eslint/config-array@npm:0.21.2" + dependencies: + "@eslint/object-schema": ^2.1.7 + debug: ^4.3.1 + minimatch: ^3.1.5 + checksum: f3d6ba56d6a3dfc5400575011fb4ae5ac189c96b6ca4920adb6da2d084f9eaa28583fa0aa55e123c42baa2bd31f85228ee35a05c8a395b58fb8d976e16482697 + languageName: node + linkType: hard + "@eslint/config-helpers@npm:^0.4.2": version: 0.4.2 resolution: "@eslint/config-helpers@npm:0.4.2" @@ -5721,51 +5711,37 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/eslintrc@npm:^3.3.1": + version: 3.3.3 + resolution: "@eslint/eslintrc@npm:3.3.3" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 + espree: ^10.0.1 + globals: ^14.0.0 ignore: ^5.2.0 import-fresh: ^3.2.1 - js-yaml: ^4.1.0 + js-yaml: ^4.1.1 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + checksum: d1e16e47f1bb29af32defa597eaf84ac0ff8c06760c0a5f4933c604cd9d931d48c89bed96252222f22abac231898a53bc41385a5e6129257f0060b5ec431bdb2 languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.3.1": - version: 3.3.3 - resolution: "@eslint/eslintrc@npm:3.3.3" +"@eslint/eslintrc@npm:^3.3.5": + version: 3.3.5 + resolution: "@eslint/eslintrc@npm:3.3.5" dependencies: - ajv: ^6.12.4 + ajv: ^6.14.0 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.1 - minimatch: ^3.1.2 + minimatch: ^3.1.5 strip-json-comments: ^3.1.1 - checksum: d1e16e47f1bb29af32defa597eaf84ac0ff8c06760c0a5f4933c604cd9d931d48c89bed96252222f22abac231898a53bc41385a5e6129257f0060b5ec431bdb2 - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.1": - version: 8.57.1 - resolution: "@eslint/js@npm:8.57.1" - checksum: 2afb77454c06e8316793d2e8e79a0154854d35e6782a1217da274ca60b5044d2c69d6091155234ed0551a1e408f86f09dd4ece02752c59568fa403e60611e880 + checksum: b1c0ac8938891f47a92ef662c790cc599f6562b06562f4035efd075f99c2b62eb4960ee0e2021d424942c8d1084665b581f3799d863c67979b269a8ccda48364 languageName: node linkType: hard @@ -5776,6 +5752,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:9.39.4": + version: 9.39.4 + resolution: "@eslint/js@npm:9.39.4" + checksum: 5b1cd1e6c13bc119c92911e6cef7cf886d942c9e047db0c923bbdd539ed6b9820d986b4559be1f2e24836de7fbad95bbfe268b2bf3d1fef76de37bdc8fae19d8 + languageName: node + linkType: hard + "@eslint/object-schema@npm:^2.1.7": version: 2.1.7 resolution: "@eslint/object-schema@npm:2.1.7" @@ -6742,28 +6725,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": ^2.0.2 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.13.0": - version: 0.13.0 - resolution: "@humanwhocodes/config-array@npm:0.13.0" - dependencies: - "@humanwhocodes/object-schema": ^2.0.3 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: eae69ff9134025dd2924f0b430eb324981494be26f0fddd267a33c28711c4db643242cf9fddf7dadb9d16c96b54b2d2c073e60a56477df86e0173149313bd5d6 - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -6771,13 +6732,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2, @humanwhocodes/object-schema@npm:^2.0.3": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 - languageName: node - linkType: hard - "@humanwhocodes/retry@npm:^0.4.0, @humanwhocodes/retry@npm:^0.4.2": version: 0.4.3 resolution: "@humanwhocodes/retry@npm:0.4.3" @@ -7734,7 +7688,7 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": +"@nodelib/fs.walk@npm:^1.2.3": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: @@ -10521,60 +10475,13 @@ __metadata: languageName: node linkType: hard -"@react-native/eslint-config@npm:0.73.2": - version: 0.73.2 - resolution: "@react-native/eslint-config@npm:0.73.2" - dependencies: - "@babel/core": "npm:^7.20.0" - "@babel/eslint-parser": "npm:^7.20.0" - "@react-native/eslint-plugin": "npm:0.73.1" - "@typescript-eslint/eslint-plugin": "npm:^5.57.1" - "@typescript-eslint/parser": "npm:^5.57.1" - eslint-config-prettier: "npm:^8.5.0" - eslint-plugin-eslint-comments: "npm:^3.2.0" - eslint-plugin-ft-flow: "npm:^2.0.1" - eslint-plugin-jest: "npm:^26.5.3" - eslint-plugin-prettier: "npm:^4.2.1" - eslint-plugin-react: "npm:^7.30.1" - eslint-plugin-react-hooks: "npm:^4.6.0" - eslint-plugin-react-native: "npm:^4.0.0" - peerDependencies: - eslint: ">=8" - prettier: ">=2" - checksum: 6d9de3267d80f1ee4f046a54a86bb906448dbc2a1a708fa7b7cb92f7611dec666b5908451501cd39b8b67eda4c8cfac6b2707a0ea65eb0228c79dcd47fc9b4c5 - languageName: node - linkType: hard - -"@react-native/eslint-config@npm:0.80.2": - version: 0.80.2 - resolution: "@react-native/eslint-config@npm:0.80.2" +"@react-native/eslint-config@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/eslint-config@npm:0.84.1" dependencies: "@babel/core": ^7.25.2 "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.80.2 - "@typescript-eslint/eslint-plugin": ^7.1.1 - "@typescript-eslint/parser": ^7.1.1 - eslint-config-prettier: ^8.5.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-ft-flow: ^2.0.1 - eslint-plugin-jest: ^27.9.0 - eslint-plugin-react: ^7.30.1 - eslint-plugin-react-hooks: ^5.2.0 - eslint-plugin-react-native: ^4.0.0 - peerDependencies: - eslint: ">=8" - prettier: ">=2" - checksum: d5b127af21a11da2917f63f468d5a9b71f2921aea5dc76cd14495dcaa449a5181458582f8d02fc6fb50402d439f12380127931b0b8827e31c7c13cf94b75e741 - languageName: node - linkType: hard - -"@react-native/eslint-config@npm:0.83.2": - version: 0.83.2 - resolution: "@react-native/eslint-config@npm:0.83.2" - dependencies: - "@babel/core": ^7.25.2 - "@babel/eslint-parser": ^7.25.1 - "@react-native/eslint-plugin": 0.83.2 + "@react-native/eslint-plugin": 0.84.1 "@typescript-eslint/eslint-plugin": ^8.36.0 "@typescript-eslint/parser": ^8.36.0 eslint-config-prettier: ^8.5.0 @@ -10583,32 +10490,18 @@ __metadata: eslint-plugin-jest: ^29.0.1 eslint-plugin-react: ^7.30.1 eslint-plugin-react-hooks: ^7.0.1 - eslint-plugin-react-native: ^4.0.0 + eslint-plugin-react-native: ^5.0.0 peerDependencies: - eslint: ">=8" + eslint: ^8.0.0 || ^9.0.0 prettier: ">=2" - checksum: af63fa2452c7c99e4e3eff6c45a217f0044fa5463efcadcab8b7be05e21a14ad18d4b0f83abe9f4846afba9c95124c2e07a5c73d0114959a7cc18024cbc1bc44 - languageName: node - linkType: hard - -"@react-native/eslint-plugin@npm:0.73.1": - version: 0.73.1 - resolution: "@react-native/eslint-plugin@npm:0.73.1" - checksum: 82a9bd30ada10ec4e926021967d1ffeb7c82eaaba6f7171cc655daf3339d2e2c15897bc3cd0f529e83ef2958c3b9b0365590a6b672a1a0efe7c781bd3e854473 - languageName: node - linkType: hard - -"@react-native/eslint-plugin@npm:0.80.2": - version: 0.80.2 - resolution: "@react-native/eslint-plugin@npm:0.80.2" - checksum: 41e60d6686c3960c9ab94e89b6a8fdf5583bebad0d5f4e2c43d8a1202d2e5657d6f50f042c7c50dc3fa8e19935ec135647998e8e2f054f98bb868b36701ab8df + checksum: df33735342142c02dc97391f636d4bd934e8354cbf0232bf153fa87369b47f13f9878a060a6f8e45e857b4f8ec849a12b14f34e3eda34bd206d3c374b7ef8d95 languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.83.2": - version: 0.83.2 - resolution: "@react-native/eslint-plugin@npm:0.83.2" - checksum: 589232694962f87bf82f8b869cc7a8e56e4c1cbd8459e5247621128e3c4f4409e3e9648c37271a3e65754eee08106acca399c5d185d16e9401cbb4e28b978b07 +"@react-native/eslint-plugin@npm:0.84.1": + version: 0.84.1 + resolution: "@react-native/eslint-plugin@npm:0.84.1" + checksum: 7ff1a967fa1e9c2c27f1912638e39cdede5e9218e3df76c7292627c3a9d356bab360a981ba7ed845741a49acbc33efaf2d3d6c75849ae3f8e9440db527583016 languageName: node linkType: hard @@ -11543,13 +11436,13 @@ __metadata: "@types/uglify-js": ^3.17.2 "@types/uuid": ^9.0.4 "@types/xmlhttprequest": ^1.8.2 - "@typescript-eslint/eslint-plugin": ^5.48.0 - "@typescript-eslint/parser": ^5.48.0 + "@typescript-eslint/eslint-plugin": ^8.0.0 + "@typescript-eslint/parser": ^8.0.0 babel-jest: ^29.6.3 babel-plugin-module-resolver: ^5.0.0 babel-preset-fbjs: ^3.4.0 downlevel-dts: ^0.11.0 - eslint: ^8.57.0 + eslint: ^9.0.0 eslint-plugin-react: ^7.37.0 eslint-plugin-react-native: ^3.8.1 expo: ^53.0.0 @@ -12183,7 +12076,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:7.0.15, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:7.0.15, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.15": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -12492,7 +12385,7 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:7.5.8, @types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": +"@types/semver@npm:7.5.8, @types/semver@npm:^7.5.0": version: 7.5.8 resolution: "@types/semver@npm:7.5.8" checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 @@ -12699,30 +12592,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.37.0, @typescript-eslint/eslint-plugin@npm:^5.48.0, @typescript-eslint/eslint-plugin@npm:^5.57.1, @typescript-eslint/eslint-plugin@npm:^5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" - dependencies: - "@eslint-community/regexpp": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:5.62.0" - "@typescript-eslint/type-utils": "npm:5.62.0" - "@typescript-eslint/utils": "npm:5.62.0" - debug: "npm:^4.3.4" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - natural-compare-lite: "npm:^1.4.0" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" - peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: fc104b389c768f9fa7d45a48c86d5c1ad522c1d0512943e782a56b1e3096b2cbcc1eea3fcc590647bf0658eef61aac35120a9c6daf979bf629ad2956deb516a1 - languageName: node - linkType: hard - "@typescript-eslint/eslint-plugin@npm:^6.0.0": version: 6.21.0 resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" @@ -12748,26 +12617,23 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.1.1, @typescript-eslint/eslint-plugin@npm:^7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" +"@typescript-eslint/eslint-plugin@npm:^8.0.0": + version: 8.57.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.57.0" dependencies: - "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/type-utils": 7.18.0 - "@typescript-eslint/utils": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - graphemer: ^1.4.0 - ignore: ^5.3.1 + "@eslint-community/regexpp": ^4.12.2 + "@typescript-eslint/scope-manager": 8.57.0 + "@typescript-eslint/type-utils": 8.57.0 + "@typescript-eslint/utils": 8.57.0 + "@typescript-eslint/visitor-keys": 8.57.0 + ignore: ^7.0.5 natural-compare: ^1.4.0 - ts-api-utils: ^1.3.0 + ts-api-utils: ^2.4.0 peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: dfcf150628ca2d4ccdfc20b46b0eae075c2f16ef5e70d9d2f0d746acf4c69a09f962b93befee01a529f14bbeb3e817b5aba287d7dd0edc23396bc5ed1f448c3d + "@typescript-eslint/parser": ^8.57.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 659349bc75c6454383c7887e24772e727f0c2c425dd006057bf1281553e109bb64d39794841181614bb70d62bcb4ca40c4396ffd4ec560fc8fa5fd034e8b1488 languageName: node linkType: hard @@ -12831,23 +12697,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.37.0, @typescript-eslint/parser@npm:^5.48.0, @typescript-eslint/parser@npm:^5.57.1, @typescript-eslint/parser@npm:^5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/parser@npm:5.62.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:5.62.0" - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/typescript-estree": "npm:5.62.0" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 - languageName: node - linkType: hard - "@typescript-eslint/parser@npm:^6.0.0": version: 6.21.0 resolution: "@typescript-eslint/parser@npm:6.21.0" @@ -12866,21 +12715,19 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.1.1, @typescript-eslint/parser@npm:^7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/parser@npm:7.18.0" +"@typescript-eslint/parser@npm:^8.0.0": + version: 8.57.0 + resolution: "@typescript-eslint/parser@npm:8.57.0" dependencies: - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/typescript-estree": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - debug: ^4.3.4 + "@typescript-eslint/scope-manager": 8.57.0 + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/typescript-estree": 8.57.0 + "@typescript-eslint/visitor-keys": 8.57.0 + debug: ^4.4.3 peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 132b56ac3b2d90b588d61d005a70f6af322860974225b60201cbf45abf7304d67b7d8a6f0ade1c188ac4e339884e78d6dcd450417f1481998f9ddd155bab0801 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 8c36cde51c91e9e31e7b4c1490dcb999035f83bfeb0e515536b1fb9398eb78632b57ef44cf88abb2b82f48279c7535986d73a7d60f6196585737acac90fba8a2 languageName: node linkType: hard @@ -12971,13 +12818,16 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/scope-manager@npm:5.62.0" +"@typescript-eslint/project-service@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/project-service@npm:8.57.0" dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 + "@typescript-eslint/tsconfig-utils": ^8.57.0 + "@typescript-eslint/types": ^8.57.0 + debug: ^4.4.3 + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + checksum: 7980c07daaed135e834eb2f8ce33a886aa1c5e897bd4e52768e7326547dbb2f5326c8675cda4329d0347db5e85c5c810314135dafa85cfd65a88f6908a90eaac languageName: node linkType: hard @@ -13031,6 +12881,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/scope-manager@npm:8.57.0" + dependencies: + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/visitor-keys": 8.57.0 + checksum: effeccbaf4e8b777c8fe928693064625d799aa0aeb81de77f051b74787013ff976e07c6c2462030c0653e3a9623d7c772f3751eef48cfb86cfb3718f96cae8c6 + languageName: node + linkType: hard + "@typescript-eslint/tsconfig-utils@npm:8.50.0, @typescript-eslint/tsconfig-utils@npm:^8.50.0": version: 8.50.0 resolution: "@typescript-eslint/tsconfig-utils@npm:8.50.0" @@ -13058,20 +12918,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/type-utils@npm:5.62.0" - dependencies: - "@typescript-eslint/typescript-estree": "npm:5.62.0" - "@typescript-eslint/utils": "npm:5.62.0" - debug: "npm:^4.3.4" - tsutils: "npm:^3.21.0" +"@typescript-eslint/tsconfig-utils@npm:8.57.0, @typescript-eslint/tsconfig-utils@npm:^8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.57.0" peerDependencies: - eslint: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: fc41eece5f315dfda14320be0da78d3a971d650ea41300be7196934b9715f3fe1120a80207551eb71d39568275dbbcf359bde540d1ca1439d8be15e9885d2739 + typescript: ">=4.8.4 <6.0.0" + checksum: 44896e10f3a3290c2e643cb8459c8e87c3ce170b3463c7e9dfcec8277409e7d1b42780f5ff9f60142e93a96186e31ffd593bda10f7767e98138fec5971fcb56b languageName: node linkType: hard @@ -13092,23 +12944,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/type-utils@npm:7.18.0" - dependencies: - "@typescript-eslint/typescript-estree": 7.18.0 - "@typescript-eslint/utils": 7.18.0 - debug: ^4.3.4 - ts-api-utils: ^1.3.0 - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 68fd5df5146c1a08cde20d59b4b919acab06a1b06194fe4f7ba1b928674880249890785fbbc97394142f2ef5cff5a7fba9b8a940449e7d5605306505348e38bc - languageName: node - linkType: hard - "@typescript-eslint/type-utils@npm:8.50.0": version: 8.50.0 resolution: "@typescript-eslint/type-utils@npm:8.50.0" @@ -13157,6 +12992,22 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/type-utils@npm:8.57.0" + dependencies: + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/typescript-estree": 8.57.0 + "@typescript-eslint/utils": 8.57.0 + debug: ^4.4.3 + ts-api-utils: ^2.4.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 6ca38a08f4731023d3c3c4d91ffd880ce2dcb1028f712dab117f0ec49583a00cb2b84218a703a5a8237c3b0011f8a791a14d17e9f86580698d57a69901393669 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:4.33.0": version: 4.33.0 resolution: "@typescript-eslint/types@npm:4.33.0" @@ -13206,6 +13057,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:8.57.0, @typescript-eslint/types@npm:^8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/types@npm:8.57.0" + checksum: b89150688472378585beb64796a6b600d7b0997341fb2a7d6af409de2b3308386d40fd8ff58fe31ca9e8ec8a690c2fbf5e9b9bcbba3ed40b158145a8bb0eca85 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:^8.11.0": version: 8.48.1 resolution: "@typescript-eslint/types@npm:8.48.1" @@ -13213,24 +13071,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.62.0, @typescript-eslint/typescript-estree@npm:^5.55.0": - version: 5.62.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:6.21.0": version: 6.21.0 resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" @@ -13326,6 +13166,25 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.57.0" + dependencies: + "@typescript-eslint/project-service": 8.57.0 + "@typescript-eslint/tsconfig-utils": 8.57.0 + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/visitor-keys": 8.57.0 + debug: ^4.4.3 + minimatch: ^10.2.2 + semver: ^7.7.3 + tinyglobby: ^0.2.15 + ts-api-utils: ^2.4.0 + peerDependencies: + typescript: ">=4.8.4 <6.0.0" + checksum: bbdbe42848a56634e01d622a025145fe0647bc9cafaabf4f9e7e8a570bb092bf6e7963fbd3d3bf0d7d05fe85c6ca1109e10cf778e1824fe1520e0e05b9412af6 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:^4.33.0": version: 4.33.0 resolution: "@typescript-eslint/typescript-estree@npm:4.33.0" @@ -13344,21 +13203,21 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.62.0, @typescript-eslint/utils@npm:^5.10.0": +"@typescript-eslint/typescript-estree@npm:^5.55.0": version: 5.62.0 - resolution: "@typescript-eslint/utils@npm:5.62.0" + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@types/json-schema": "npm:^7.0.9" - "@types/semver": "npm:^7.3.12" - "@typescript-eslint/scope-manager": "npm:5.62.0" "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/typescript-estree": "npm:5.62.0" - eslint-scope: "npm:^5.1.1" + "@typescript-eslint/visitor-keys": "npm:5.62.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" semver: "npm:^7.3.7" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 + tsutils: "npm:^3.21.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 languageName: node linkType: hard @@ -13379,20 +13238,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.18.0, @typescript-eslint/utils@npm:^7.0.0": - version: 7.18.0 - resolution: "@typescript-eslint/utils@npm:7.18.0" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/typescript-estree": 7.18.0 - peerDependencies: - eslint: ^8.56.0 - checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 - languageName: node - linkType: hard - "@typescript-eslint/utils@npm:8.50.0, @typescript-eslint/utils@npm:^8.0.0": version: 8.50.0 resolution: "@typescript-eslint/utils@npm:8.50.0" @@ -13438,6 +13283,35 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/utils@npm:8.57.0" + dependencies: + "@eslint-community/eslint-utils": ^4.9.1 + "@typescript-eslint/scope-manager": 8.57.0 + "@typescript-eslint/types": 8.57.0 + "@typescript-eslint/typescript-estree": 8.57.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.0.0" + checksum: 720db77c89644116d519efca2a1c9d2d960f53c511c0e7a4de8a53a224efcff30dd19741d769a12683c93629b889e7cf8e7550342112773596cbb30b32b302e4 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^7.0.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + peerDependencies: + eslint: ^8.56.0 + checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:4.33.0": version: 4.33.0 resolution: "@typescript-eslint/visitor-keys@npm:4.33.0" @@ -13508,10 +13382,13 @@ __metadata: languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 +"@typescript-eslint/visitor-keys@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.57.0" + dependencies: + "@typescript-eslint/types": 8.57.0 + eslint-visitor-keys: ^5.0.0 + checksum: ac3bfeb2553038ec0dad24f85e9897df9531b565e069944b60e4a59f564ad321ab58557d609b2379ac880db124df184b28d1b9653ca6c8bfdd44a1b48a477839 languageName: node linkType: hard @@ -13877,13 +13754,13 @@ __metadata: "@react-native-community/cli-platform-android": 19.1.1 "@react-native-community/cli-platform-ios": 19.1.1 "@react-native/babel-preset": 0.80.2 - "@react-native/eslint-config": 0.80.2 + "@react-native/eslint-config": 0.84.1 "@react-native/metro-config": 0.80.2 "@react-native/typescript-config": 0.80.2 "@types/jest": ^29.5.13 "@types/react": ^19.1.0 "@types/react-test-renderer": ^19.1.0 - eslint: ^8.19.0 + eslint: ^9.0.0 jest: ^29.6.3 prettier: 2.8.8 react: 19.1.0 @@ -13904,7 +13781,7 @@ __metadata: "@react-native-community/cli-platform-android": 19.1.1 "@react-native-community/cli-platform-ios": 19.1.1 "@react-native/babel-preset": 0.80.2 - "@react-native/eslint-config": 0.80.2 + "@react-native/eslint-config": 0.84.1 "@react-native/metro-config": 0.80.2 "@react-native/new-app-screen": 0.80.2 "@react-native/typescript-config": 0.80.2 @@ -13912,7 +13789,7 @@ __metadata: "@types/jest": ^29.5.13 "@types/react": ^19.1.0 "@types/react-test-renderer": ^19.1.0 - eslint: ^8.19.0 + eslint: ^9.0.0 jest: ^29.6.3 prettier: 2.8.8 react: 19.1.0 @@ -14003,7 +13880,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.8.1, acorn@npm:^8.8.2": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -14070,7 +13947,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.14.0": +"ajv@npm:^6.12.4, ajv@npm:^6.14.0": version: 6.14.0 resolution: "ajv@npm:6.14.0" dependencies: @@ -17140,7 +17017,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -18059,15 +17936,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce - languageName: node - linkType: hard - "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -19068,20 +18936,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-ft-flow@npm:^2.0.1": - version: 2.0.3 - resolution: "eslint-plugin-ft-flow@npm:2.0.3" - dependencies: - lodash: "npm:^4.17.21" - string-natural-compare: "npm:^3.0.1" - peerDependencies: - "@babel/eslint-parser": ^7.12.0 - eslint: ^8.1.0 - checksum: 6272f7c352154875dc85c7dcd7cf66f6ed926a9a6aba81c675583bcc6695147597d6b9a6db0f643a387d14eccd61dc36daf20eec1c49e91ce1c63c01ffe295f7 - languageName: node - linkType: hard - -"eslint-plugin-ft-flow@npm:^3.0.11": +"eslint-plugin-ft-flow@npm:^3.0.0": version: 3.0.11 resolution: "eslint-plugin-ft-flow@npm:3.0.11" dependencies: @@ -19152,42 +19007,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^26.5.3": - version: 26.9.0 - resolution: "eslint-plugin-jest@npm:26.9.0" - dependencies: - "@typescript-eslint/utils": "npm:^5.10.0" - peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: 6d5fd5c95368f1ca2640389aeb7ce703d6202493c3ec6bdedb4eaca37233710508b0c75829e727765a16fd27029a466d34202bc7f2811c752038ccbbce224400 - languageName: node - linkType: hard - -"eslint-plugin-jest@npm:^27.9.0": - version: 27.9.0 - resolution: "eslint-plugin-jest@npm:27.9.0" - dependencies: - "@typescript-eslint/utils": "npm:^5.10.0" - peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: "*" - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: e2a4b415105408de28ad146818fcc6f4e122f6a39c6b2216ec5c24a80393f1390298b20231b0467bc5fd730f6e24b05b89e1a6a3ce651fc159aa4174ecc233d0 - languageName: node - linkType: hard - -"eslint-plugin-jest@npm:^29.0.1": +"eslint-plugin-jest@npm:^29.0.0, eslint-plugin-jest@npm:^29.0.1": version: 29.15.0 resolution: "eslint-plugin-jest@npm:29.15.0" dependencies: @@ -19262,21 +19082,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-prettier@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-plugin-prettier@npm:4.2.1" - dependencies: - prettier-linter-helpers: "npm:^1.0.0" - peerDependencies: - eslint: ">=7.28.0" - prettier: ">=2.0.0" - peerDependenciesMeta: - eslint-config-prettier: - optional: true - checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 - languageName: node - linkType: hard - "eslint-plugin-prettier@npm:^5.0.0": version: 5.3.1 resolution: "eslint-plugin-prettier@npm:5.3.1" @@ -19306,7 +19111,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^5.1.0, eslint-plugin-react-hooks@npm:^5.2.0": +"eslint-plugin-react-hooks@npm:^5.1.0": version: 5.2.0 resolution: "eslint-plugin-react-hooks@npm:5.2.0" peerDependencies: @@ -19349,14 +19154,14 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-native@npm:^4.0.0": - version: 4.1.0 - resolution: "eslint-plugin-react-native@npm:4.1.0" +"eslint-plugin-react-native@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-react-native@npm:5.0.0" dependencies: - eslint-plugin-react-native-globals: "npm:^0.1.1" + eslint-plugin-react-native-globals: ^0.1.1 peerDependencies: - eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: b6acc5aa91f95cb4600d6ab4c00cf22577083e72c61aabcf010f4388d97e4fc53ba075db54eeee53cba25b297e1a6ec611434f2c2d0bfb3e8dc6419400663fe9 + eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: e0cf21bb486afb428089b45eba9cc32af54b83e4db0b815f00fa1b7fbf22e41bfa69b06b638af7425ab80f9b81fff53a215a99c51d8a882742bc8b5460667535 languageName: node linkType: hard @@ -19425,7 +19230,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": +"eslint-scope@npm:5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -19435,16 +19240,6 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e - languageName: node - linkType: hard - "eslint-scope@npm:^8.4.0": version: 8.4.0 resolution: "eslint-scope@npm:8.4.0" @@ -19499,99 +19294,52 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.19.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" - dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.0 - "@humanwhocodes/config-array": ^0.11.14 - "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 - ajv: ^6.12.4 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - find-up: ^5.0.0 - glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 - ignore: ^5.2.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 - bin: - eslint: bin/eslint.js - checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 - languageName: node - linkType: hard - -"eslint@npm:^8.57.0": - version: 8.57.1 - resolution: "eslint@npm:8.57.1" +"eslint@npm:^9.0.0": + version: 9.39.4 + resolution: "eslint@npm:9.39.4" dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.1 - "@humanwhocodes/config-array": ^0.13.0 + "@eslint-community/eslint-utils": ^4.8.0 + "@eslint-community/regexpp": ^4.12.1 + "@eslint/config-array": ^0.21.2 + "@eslint/config-helpers": ^0.4.2 + "@eslint/core": ^0.17.0 + "@eslint/eslintrc": ^3.3.5 + "@eslint/js": 9.39.4 + "@eslint/plugin-kit": ^0.4.1 + "@humanfs/node": ^0.16.6 "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 - ajv: ^6.12.4 + "@humanwhocodes/retry": ^0.4.2 + "@types/estree": ^1.0.6 + ajv: ^6.14.0 chalk: ^4.0.0 - cross-spawn: ^7.0.2 + cross-spawn: ^7.0.6 debug: ^4.3.2 - doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 + eslint-scope: ^8.4.0 + eslint-visitor-keys: ^4.2.1 + espree: ^10.4.0 + esquery: ^1.5.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 + file-entry-cache: ^8.0.0 find-up: ^5.0.0 glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 ignore: ^5.2.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 lodash.merge: ^4.6.2 - minimatch: ^3.1.2 + minimatch: ^3.1.5 natural-compare: ^1.4.0 optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true bin: eslint: bin/eslint.js - checksum: e2489bb7f86dd2011967759a09164e65744ef7688c310bc990612fc26953f34cc391872807486b15c06833bdff737726a23e9b4cdba5de144c311377dc41d91b + checksum: 474550582ab15ca0863c4624bea1978567434cc907097f0cf12e05fcb18f10e96be408da33c2e0195c037162a8b0f2dbf1bc37622509f6a2e221dcdc52ce68fe languageName: node linkType: hard @@ -19655,17 +19403,6 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: ^8.9.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 - languageName: node - linkType: hard - "esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" @@ -19676,15 +19413,6 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.2, esquery@npm:^1.6.0": - version: 1.6.0 - resolution: "esquery@npm:1.6.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 - languageName: node - linkType: hard - "esquery@npm:^1.5.0": version: 1.7.0 resolution: "esquery@npm:1.7.0" @@ -19694,6 +19422,15 @@ __metadata: languageName: node linkType: hard +"esquery@npm:^1.6.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 + languageName: node + linkType: hard + "esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" @@ -20686,15 +20423,6 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 - languageName: node - linkType: hard - "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -20871,17 +20599,6 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: ^3.2.9 - keyv: ^4.5.3 - rimraf: ^3.0.2 - checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec - languageName: node - linkType: hard - "flat-cache@npm:^4.0.0": version: 4.0.1 resolution: "flat-cache@npm:4.0.1" @@ -21645,15 +21362,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: ^0.20.2 - checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c - languageName: node - linkType: hard - "globals@npm:^14.0.0": version: 14.0.0 resolution: "globals@npm:14.0.0" @@ -22904,13 +22612,6 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - "is-plain-obj@npm:^1.0.0, is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -27178,7 +26879,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.1.3": +"minimatch@npm:^3.1.2, minimatch@npm:^3.1.3, minimatch@npm:^3.1.5": version: 3.1.5 resolution: "minimatch@npm:3.1.5" dependencies: @@ -27205,7 +26906,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.7": +"minimatch@npm:^9.0.4, minimatch@npm:^9.0.7": version: 9.0.9 resolution: "minimatch@npm:9.0.9" dependencies: @@ -27578,13 +27279,6 @@ __metadata: languageName: node linkType: hard -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -31942,7 +31636,7 @@ __metadata: dependencies: "@babel/core": ^7.26.0 "@babel/preset-env": ^7.26.0 - "@react-native/eslint-config": 0.83.2 + "@react-native/eslint-config": 0.84.1 "@sentry/babel-plugin-component-annotate": 5.1.1 "@sentry/core": 10.43.0 "@sentry/react-native": 8.4.0 @@ -31950,7 +31644,7 @@ __metadata: "@types/react": ~19.2.10 "@typescript-eslint/eslint-plugin": ^8.50.0 "@typescript-eslint/parser": ^8.50.0 - eslint: ^8.57.0 + eslint: ^9.0.0 eslint-config-expo: ~55.0.0 eslint-import-resolver-typescript: ^4.4.4 eslint-plugin-import: ^2.32.0 @@ -31985,7 +31679,7 @@ __metadata: "@babel/preset-env": ^7.22.5 "@babel/runtime": ^7.22.5 "@react-native/babel-preset": 0.73.21 - "@react-native/eslint-config": 0.73.2 + "@react-native/eslint-config": 0.84.1 "@react-native/metro-config": 0.73.5 "@react-native/typescript-config": 0.73.1 "@react-navigation/bottom-tabs": ^6.5.12 @@ -31996,11 +31690,12 @@ __metadata: "@sentry/react-native": 8.4.0 "@types/react": ^18.2.65 "@types/react-native-vector-icons": ^6.4.18 - "@typescript-eslint/eslint-plugin": ^5.37.0 - "@typescript-eslint/parser": ^5.37.0 + "@typescript-eslint/eslint-plugin": ^8.0.0 + "@typescript-eslint/parser": ^8.0.0 babel-plugin-module-resolver: ^5.0.0 delay: ^6.0.0 - eslint: ^8.19.0 + eslint: ^9.0.0 + eslint-plugin-jest: ^29.0.0 jest: ^29.6.3 prettier: 2.8.8 react: 18.2.0 @@ -32031,7 +31726,7 @@ __metadata: "@react-native-community/cli-platform-ios": 19.1.1 "@react-native-vector-icons/ionicons": ^12.3.0 "@react-native/babel-preset": 0.80.2 - "@react-native/eslint-config": 0.80.2 + "@react-native/eslint-config": 0.84.1 "@react-native/metro-config": 0.80.2 "@react-native/new-app-screen": 0.80.2 "@react-native/typescript-config": 0.80.2 @@ -32050,14 +31745,15 @@ __metadata: "@types/node": ^22.13.1 "@types/react": ^19.1.0 "@types/react-test-renderer": ^19.1.0 - "@typescript-eslint/eslint-plugin": ^7.18.0 - "@typescript-eslint/parser": ^7.18.0 + "@typescript-eslint/eslint-plugin": ^8.0.0 + "@typescript-eslint/parser": ^8.0.0 babel-jest: ^29.6.3 babel-plugin-module-resolver: ^5.0.0 delay: ^6.0.0 detox: ^20.33.0 - eslint: ^8.19.0 + eslint: ^9.0.0 eslint-plugin-ft-flow: ^3.0.11 + eslint-plugin-jest: ^29.0.0 jest: ^29.6.3 patch-package: ^8.0.0 prettier: 2.8.8 @@ -33660,13 +33356,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - "thenify-all@npm:^1.0.0": version: 1.6.0 resolution: "thenify-all@npm:1.6.0"