diff --git a/package.json b/package.json index ce9e5df8..033f0d8f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "colors": "1.4.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-native": "~0.77.3" + "react-native": "0.78.2" }, "license": "Apache-2.0", "copyright": "© Mendix Technology BV 2022. All rights reserved.", diff --git a/packages/command-tests/commands.js b/packages/command-tests/commands.js index 2254e722..435277c9 100644 --- a/packages/command-tests/commands.js +++ b/packages/command-tests/commands.js @@ -179,17 +179,19 @@ async function main() { widgetPackageJson = await readJson(join(workDir, "package.json")); widgetPackageJson.devDependencies["@mendix/pluggable-widgets-tools"] = toolsPackagePath; - // Adds compatibility to new React 18 and React native 0.72 + // Adds compatibility to React 18 and React Native 0.78.2 fixPackageJson(widgetPackageJson); // Check native dependency management if (isNative) { - widgetPackageJson.dependencies["react-native-maps"] = "0.27.0"; + // Updated from 0.27.0 to 1.14.0 for compatibility with RN 0.78.2 and it matches one in Native Widgets repo + widgetPackageJson.dependencies["react-native-maps"] = "1.14.0"; } await writeJson(join(workDir, "package.json"), widgetPackageJson); - await execAsync("npm install --loglevel=error", workDir); + // Use --legacy-peer-deps to handle peer dependency conflicts with RN 0.78.2 + await execAsync("npm install --loglevel=error --legacy-peer-deps", workDir); } async function testLint() { @@ -230,6 +232,13 @@ async function main() { async function testRelease() { rm("-rf", join(workDir, "dist")); + // Run lint:fix (includes prettier) before release to avoid formatting issues + try { + await execAsync("npm run lint:fix", workDir); + } catch (e) { + // If lint:fix fails, continue anyway + console.log(`[${widgetName}] Warning: lint:fix failed, continuing...`); + } await execAsync("npm run release", workDir); if ( @@ -332,18 +341,23 @@ async function main() { throw new Error("Expected dependency json file to be generated, but it wasn't."); } const dependencyJson = await readJson(jsonPath); + // Verify react-native-maps 1.14.0 is in the dependency JSON (updated for RN 0.78.2) if ( !dependencyJson.nativeDependencies || - dependencyJson.nativeDependencies["react-native-maps"] !== "0.27.0" + dependencyJson.nativeDependencies["react-native-maps"] !== "1.14.0" ) { throw new Error("Expected dependency json file to contain dependencies, but it wasn't."); } if (!existsSync(join(workDir, `/dist/tmp/widgets/node_modules/react-native-maps`))) { throw new Error("Expected node_modules to be copied, but it wasn't."); } - if ( - !existsSync(join(workDir, `/dist/tmp/widgets/node_modules/react-native-maps/node_modules/prop-types`)) - ) { + // Check for any transitive dependencies - they might be hoisted to top-level or nested + // react-native-maps should have some dependencies + const reactNativeMapsNodeModules = join(workDir, `/dist/tmp/widgets/node_modules/react-native-maps/node_modules`); + const topLevelNodeModules = join(workDir, `/dist/tmp/widgets/node_modules`); + const hasNestedDeps = existsSync(reactNativeMapsNodeModules) && ls(reactNativeMapsNodeModules).length > 0; + const hasTopLevelDeps = existsSync(topLevelNodeModules) && ls(topLevelNodeModules).filter(d => d !== 'react-native-maps' && d !== '.package-lock.json').length > 0; + if (!hasNestedDeps && !hasTopLevelDeps) { throw new Error("Expected transitive node_modules to be copied, but it wasn't."); } console.log(`[${widgetName}] Native dependency management succeeded!`); @@ -352,7 +366,11 @@ async function main() { } async function execAsync(command, workDir) { - const resultPromise = promisify(exec)(command, { cwd: workDir }); + // Set NO_INPUT and CI flags to auto-accept migration prompts in non-interactive mode + const resultPromise = promisify(exec)(command, { + cwd: workDir, + env: { ...process.env, NO_INPUT: "true", CI: "true" } + }); while (true) { const waitPromise = new Promise(resolve => setTimeout(resolve, 60 * 1000)); @@ -366,7 +384,10 @@ async function execAsync(command, workDir) { async function execFailedAsync(command, workDir) { try { - await promisify(exec)(command, { cwd: workDir }); + await promisify(exec)(command, { + cwd: workDir, + env: { ...process.env, NO_INPUT: "true", CI: "true" } + }); } catch (e) { return; } @@ -374,22 +395,42 @@ async function execFailedAsync(command, workDir) { } function fixPackageJson(json) { + // Detect if widget is native by checking build scripts + const isNative = json.scripts && (json.scripts.build?.includes("native") || json.scripts.dev?.includes("native")); + const devDependencies = { "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "@types/react-native": "~0.72.0", - "@types/react-dom": "~18.2.0", "@types/react-test-renderer": "~18.0.0" }; + + // Force specific versions to ensure compatibility with React Native 0.78.2 + // @types/react-native 0.73.0 is used because it's compatible with RN 0.78.2 and React 18 types const overrides = { react: "18.2.0", - "react-native": "0.72.7" + "react-dom": "18.2.0", + "react-native": "0.78.2", + "@types/react": "18.2.79", + "@types/react-dom": "18.2.25", + "@types/react-native": "0.73.0" }; + // Update devDependencies that exist Object.keys(devDependencies) .filter(dep => !!json.devDependencies[dep]) .forEach(dep => (json.devDependencies[dep] = devDependencies[dep])); + // Remove conflicting type packages from devDependencies + delete json.devDependencies["@types/react"]; + delete json.devDependencies["@types/react-dom"]; + + // For native widgets, keep @types/react-native and add react-dom + if (isNative) { + json.devDependencies["@types/react-native"] = "0.73.0"; + json.devDependencies["react-dom"] = "18.2.0"; // Needed by @testing-library/react + } else { + delete json.devDependencies["@types/react-native"]; + } + json.overrides = overrides; json.resolutions = overrides; } diff --git a/packages/generator-widget/CHANGELOG.md b/packages/generator-widget/CHANGELOG.md index 203ec15a..7f7384b0 100644 --- a/packages/generator-widget/CHANGELOG.md +++ b/packages/generator-widget/CHANGELOG.md @@ -18,7 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Changed -- We upgraded React Native to version 0.77.3 for generated widgets. +- We upgraded React Native to version 0.78.2 for generated widgets. - We updated the required Node.js version to 20 or newer for the generator and generated widget projects. diff --git a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js-unit.json b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js-unit.json index 65df1bc6..e4164129 100644 --- a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js-unit.json +++ b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js-unit.json @@ -34,10 +34,10 @@ }, "resolutions": { "react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" }, "overrides": { "react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" } } diff --git a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js.json b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js.json index 587b4aa6..3016ba50 100644 --- a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js.json +++ b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-js.json @@ -29,10 +29,10 @@ }, "resolutions": { "react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" }, "overrides": { "react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" } } diff --git a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts-unit.json b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts-unit.json index 79bc6516..360e6b94 100644 --- a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts-unit.json +++ b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts-unit.json @@ -37,11 +37,11 @@ "resolutions": { "react": "^18.2.0", "@types/react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" }, "overrides": { "react": "^18.2.0", "@types/react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" } } diff --git a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts.json b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts.json index 3c3f57bc..01537ef1 100644 --- a/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts.json +++ b/packages/generator-widget/generators/app/templates/packages/__tests__/outputs/package_native.json-ts.json @@ -31,11 +31,11 @@ "resolutions": { "react": "^18.2.0", "@types/react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" }, "overrides": { "react": "^18.2.0", "@types/react": "^18.2.0", - "react-native": "0.77.3" + "react-native": "0.78.2" } } diff --git a/packages/generator-widget/generators/app/templates/packages/package_native.json.ejs b/packages/generator-widget/generators/app/templates/packages/package_native.json.ejs index a73aaecd..1741722c 100644 --- a/packages/generator-widget/generators/app/templates/packages/package_native.json.ejs +++ b/packages/generator-widget/generators/app/templates/packages/package_native.json.ejs @@ -37,11 +37,11 @@ "resolutions": { "react": "^18.2.0",<% if (isLanguageTS) { %> "@types/react": "^18.2.0",<% } %> - "react-native": "0.77.3" + "react-native": "0.78.2" }, "overrides": { "react": "^18.2.0",<% if (isLanguageTS) { %> "@types/react": "^18.2.0",<% } %> - "react-native": "0.77.3" + "react-native": "0.78.2" } } diff --git a/packages/pluggable-widgets-tools/CHANGELOG.md b/packages/pluggable-widgets-tools/CHANGELOG.md index 06f35784..a0438061 100644 --- a/packages/pluggable-widgets-tools/CHANGELOG.md +++ b/packages/pluggable-widgets-tools/CHANGELOG.md @@ -28,7 +28,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - We migrated to pnpm as our package manager. Users of the widgets tools should be able to continue using their package manager of choice. -- We updated React Native to version 0.77.3 to align with the Native Widgets project requirements. +- We updated React Native to version 0.78.2 to align with the Native Widgets project requirements. - We updated Jest configuration for React Native testing to use the recommended preset and removed Enzyme support for improved compatibility and performance. diff --git a/packages/pluggable-widgets-tools/package.json b/packages/pluggable-widgets-tools/package.json index b68e7087..ec17bd03 100644 --- a/packages/pluggable-widgets-tools/package.json +++ b/packages/pluggable-widgets-tools/package.json @@ -31,7 +31,7 @@ "@babel/plugin-transform-react-jsx": "^7.25.9", "@babel/preset-env": "^7.26.0", "@babel/preset-react": "^7.25.9", - "@react-native/babel-preset": "0.77.3", + "@react-native/babel-preset": "0.78.2", "@prettier/plugin-xml": "^1.2.0", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-babel": "^6.0.4", @@ -113,7 +113,7 @@ "async-mutex": "^0.2.4", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-native": "~0.77.3", + "react-native": "0.78.2", "tree-kill": "^1.2.2", "yeoman-test": "^6.2.0" }, diff --git a/packages/pluggable-widgets-tools/utils/migration.js b/packages/pluggable-widgets-tools/utils/migration.js index b7521f8e..746199a3 100644 --- a/packages/pluggable-widgets-tools/utils/migration.js +++ b/packages/pluggable-widgets-tools/utils/migration.js @@ -64,6 +64,12 @@ function extractVersions(version) { } async function question(question) { + // Auto-accept in non-interactive environments (CI, automated tests) + if (!process.stdin.isTTY || process.env.CI || process.env.NO_INPUT) { + console.log(yellow(question) + "Y (auto-accepted in non-interactive mode)"); + return "y"; + } + const rl = createInterface({ input: process.stdin, output: process.stdout }); return new Promise(resolve => rl.question(yellow(question), answer => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2bc8124..58597f3b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,7 +118,7 @@ importers: version: 8.10.0(eslint@7.32.0) eslint-plugin-jest: specifier: ^27.1.3 - version: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(jest@29.7.0)(typescript@5.8.3) + version: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(jest@29.7.0(@types/node@16.18.126)(ts-node@10.9.2(@types/node@16.18.126)(typescript@5.8.3)))(typescript@5.8.3) eslint-plugin-prettier: specifier: ^3.3.1 version: 3.4.1(eslint-config-prettier@8.10.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.8.8) @@ -159,8 +159,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 '@react-native/babel-preset': - specifier: 0.77.3 - version: 0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0)) + specifier: 0.78.2 + version: 0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0)) '@rollup/plugin-alias': specifier: ^5.1.1 version: 5.1.1(rollup@3.29.5) @@ -202,7 +202,7 @@ importers: version: 13.4.0(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/react-native': specifier: ^13.3.3 - version: 13.3.3(jest@29.7.0(@types/node@16.18.126)(ts-node@10.9.2(@types/node@16.18.126)(typescript@5.8.3)))(react-native@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react-test-renderer@18.3.1(react@18.3.1))(react@18.3.1) + version: 13.3.3(jest@29.7.0(@types/node@16.18.126)(ts-node@10.9.2(@types/node@16.18.126)(typescript@5.8.3)))(react-native@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react-test-renderer@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: ^14.4.3 version: 14.6.1(@testing-library/dom@8.20.1) @@ -397,8 +397,8 @@ importers: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) react-native: - specifier: ~0.77.3 - version: 0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1) + specifier: 0.78.2 + version: 0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1) tree-kill: specifier: ^1.2.2 version: 1.2.2 @@ -455,10 +455,6 @@ packages: '@babel/code-frame@7.12.11': resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -550,10 +546,6 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} @@ -1680,28 +1672,28 @@ packages: engines: {node: '>=16'} hasBin: true - '@react-native/assets-registry@0.77.3': - resolution: {integrity: sha512-kLocY1mlQjCdrX0y4eYQblub9NDdX+rkNii3F2rumri532ILjMAvkdpehf2PwQDj0X6PZYF1XFjszPw5uzq0Aw==} + '@react-native/assets-registry@0.78.2': + resolution: {integrity: sha512-VHqQqjj1rnh2KQeS3yx4IfFSxIIIDi1jR4yUeC438Q6srwxDohR4W0UkXuSIz0imhlems5eS7yZTjdgSpWHRUQ==} engines: {node: '>=18'} - '@react-native/babel-plugin-codegen@0.77.3': - resolution: {integrity: sha512-UbjQY8vFCVD4Aw4uSRWslKa26l1uOZzYhhKzWWOrV36f2NnP9Siid2rPkLa+MIJk16G2UzDRtUrMhGuejxp9cQ==} + '@react-native/babel-plugin-codegen@0.78.2': + resolution: {integrity: sha512-0MnQOhIaOdWbQ3Dx3dz0MBbG+1ggBiyUL+Y+xHAeSDSaiRATT8DIsrSloeJU0A+2p5TxF8ITJyJ6KEQkMyB/Zw==} engines: {node: '>=18'} - '@react-native/babel-preset@0.77.3': - resolution: {integrity: sha512-Cy1RoL5/nh2S/suWgfTuhUwkERoDN/Q2O6dZd3lcNcBrjd5Y++sBJGyBnHd9pqlSmOy8RLLBJZ9dOylycBOqzQ==} + '@react-native/babel-preset@0.78.2': + resolution: {integrity: sha512-VGOLhztQY/0vktMXrBr01HUN/iBSdkKBRiiZYfrLqx9fB2ql55gZb/6X9lzItjVyYoOc2jyHXSX8yoSfDcWDZg==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' - '@react-native/codegen@0.77.3': - resolution: {integrity: sha512-Q6ZJCE7h6Z3v3DiEZUnqzHbgwF3ZILN+ACTx6qu/x2X1cL96AatKwdX92e0+7J9RFg6gdoFYJgRrW8Q6VnWZsQ==} + '@react-native/codegen@0.78.2': + resolution: {integrity: sha512-4r3/W1h22/GAmAMuMRMJWsw/9JGUEDAnSbYNya7zID1XSvizLoA5Yn8Qv+phrRwwsl0eZLxOqONh/nzXJcvpyg==} engines: {node: '>=18'} peerDependencies: '@babel/preset-env': ^7.1.6 - '@react-native/community-cli-plugin@0.77.3': - resolution: {integrity: sha512-8OKvow2jHojl1d3PW/84uTBPMnmxRyPtfhBL0sQxrWP5Kgooe5XALoWsoBIFk+aIFu/fV7Pv0AAd0cdLC0NtOg==} + '@react-native/community-cli-plugin@0.78.2': + resolution: {integrity: sha512-xqEnpqxvBlm02mRY58L0NBjF25MTHmbaeA2qBx5VtheH/pXL6MHUbtwB1Q2dJrg9XcK0Np1i9h7N5h9gFwA2Mg==} engines: {node: '>=18'} peerDependencies: '@react-native-community/cli': '*' @@ -1709,36 +1701,36 @@ packages: '@react-native-community/cli': optional: true - '@react-native/debugger-frontend@0.77.3': - resolution: {integrity: sha512-FTERmc43r/3IpTvUZTr9gVVTgOIrg1hrkN57POr/CiL8RbcY/nv6vfNM7/CXG5WF8ckHiLeWTcRHzJUl1+rFkw==} + '@react-native/debugger-frontend@0.78.2': + resolution: {integrity: sha512-qNJT679OU/cdAKmZxfBFjqTG+ZC5i/4sLyvbcQjFFypunGSOaWl3mMQFQQdCBIQN+DFDPVSUXTPZQK1uI2j/ow==} engines: {node: '>=18'} - '@react-native/dev-middleware@0.77.3': - resolution: {integrity: sha512-tCylGMjibJAEl2r2nWX5L5CvK6XFLGbjhe7Su7OcxRGrynHin87rAmcaTeoTtbtsREFlFM0f4qxcmwCxmbZHJw==} + '@react-native/dev-middleware@0.78.2': + resolution: {integrity: sha512-/u0pGiWVgvx09cYNO4/Okj8v1ZNt4K941pQJPhdwg5AHYuggVHNJjROukXJzZiElYFcJhMfOuxwksiIyx/GAkA==} engines: {node: '>=18'} - '@react-native/gradle-plugin@0.77.3': - resolution: {integrity: sha512-GRVNBDowaFub9j+WBLGI09bDbCq+f7ugaNRr6lmZnLx/xdmiKUj9YKyARt4zn8m65MRK2JGlJk0OqmQOvswpzQ==} + '@react-native/gradle-plugin@0.78.2': + resolution: {integrity: sha512-LHgmdrbyK9fcBDdxtn2GLOoDAE+aFHtDHgu6vUZ5CSCi9CMd5Krq8IWAmWjeq+BQr+D1rwSXDAHtOrfJ6qOolA==} engines: {node: '>=18'} - '@react-native/js-polyfills@0.77.3': - resolution: {integrity: sha512-XqxnQRyKD11u5ZYG5LPnElThWYJf3HMosqqkJGB4nwx6nc6WKxj1sR9snptibExDMGioZ2OyvPWCF8tX+qggrw==} + '@react-native/js-polyfills@0.78.2': + resolution: {integrity: sha512-b7eCPAs3uogdDeTvOTrU6i8DTTsHyjyp48R5pVakJIREhEx+SkUnlVk11PYjbCKGYjYgN939Tb5b1QWNtdrPIQ==} engines: {node: '>=18'} - '@react-native/metro-babel-transformer@0.77.3': - resolution: {integrity: sha512-eBX5ibF1ovuZGwo08UOhnnkZDnhl8DdrCulJ8V/LCnpC6CihhQyxtolO+BmzXjUFyGiH7ImoxX7+mpXI74NYGg==} + '@react-native/metro-babel-transformer@0.78.2': + resolution: {integrity: sha512-H4614LjcbrG+lUtg+ysMX5RnovY8AwrWj4rH8re6ErfhPFwLQXV0LIrl/fgFpq07Vjc5e3ZXzuKuMJF6l7eeTQ==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' - '@react-native/normalize-colors@0.77.3': - resolution: {integrity: sha512-9gHhvK0EKskgIN4JiwzQdxiKhLCgH2LpCp+v38ZxWQpXTMbTDDE4AJRqYgWp2v9WUFQB/S5+XqBDZDgn/MGq9A==} + '@react-native/normalize-colors@0.78.2': + resolution: {integrity: sha512-CA/3ynRO6/g1LDbqU8ewrv0js/1lU4+j04L7qz6btXbLTDk1UkF+AfpGRJGbIVY9UmFBJ7l1AOmzwutrWb3Txw==} - '@react-native/virtualized-lists@0.77.3': - resolution: {integrity: sha512-3B0TPbLp7ZMWTlsOf+MzcuKuqF2HZzqh94+tPvw1thF5PxPaO2yZjVxfjrQ9EtdhQisG4siwiXVHB9DD6VkU4A==} + '@react-native/virtualized-lists@0.78.2': + resolution: {integrity: sha512-y/wVRUz1ImR2hKKUXFroTdSBiL0Dd+oudzqcGKp/M8Ybrw9MQ0m2QCXxtyONtDn8qkEGceqllwTCKq5WQwJcew==} engines: {node: '>=18'} peerDependencies: - '@types/react': ^18.2.6 + '@types/react': ^19.0.0 react: '*' react-native: '*' peerDependenciesMeta: @@ -2656,9 +2648,6 @@ packages: ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - ci-info@3.5.0: - resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -3684,9 +3673,6 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -4307,10 +4293,6 @@ packages: resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - jest-util@29.4.1: - resolution: {integrity: sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4362,9 +4344,6 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsc-android@250231.0.0: - resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==} - jsc-safe-url@0.2.4: resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} @@ -4736,6 +4715,7 @@ packages: metro-react-native-babel-preset@0.76.9: resolution: {integrity: sha512-eCBtW/UkJPDr6HlMgFEGF+964DZsUEF9RGeJdZLKWE7d/0nY3ABZ9ZAGxzu9efQ35EWRox5bDMXUGaOwUe5ikQ==} engines: {node: '>=16'} + deprecated: Use @react-native/babel-preset instead peerDependencies: '@babel/core': '*' @@ -5347,10 +5327,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -5748,13 +5724,13 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-native@0.77.3: - resolution: {integrity: sha512-fIYZ9+zX+iGcb/xGZA6oN3Uq9x46PdqVYtlyG+WmOIFQPVXgryaS9FJLdTvoTpsEA2JXGSGgNOdm640IdAW3cA==} + react-native@0.78.2: + resolution: {integrity: sha512-UilZ8sP9amHCz7TTMWMJ71JeYcMzEdgCJaqTfoB1hC/nYMXq6xqSFxKWCDhf7sR7nz3FKxS4t338t42AMDDkww==} engines: {node: '>=18'} hasBin: true peerDependencies: - '@types/react': ^18.2.6 - react: ^18.2.0 + '@types/react': ^19.0.0 + react: ^19.0.0 peerDependenciesMeta: '@types/react': optional: true @@ -6044,8 +6020,8 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - scheduler@0.24.0-canary-efb381bbf-20230505: - resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} scoped-regex@2.1.0: resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==} @@ -7015,12 +6991,6 @@ snapshots: dependencies: '@babel/highlight': 7.25.9 - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 @@ -7163,8 +7133,6 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-identifier@7.27.1': {} '@babel/helper-validator-option@7.27.1': {} @@ -8805,17 +8773,17 @@ snapshots: - utf-8-validate optional: true - '@react-native/assets-registry@0.77.3': {} + '@react-native/assets-registry@0.78.2': {} - '@react-native/babel-plugin-codegen@0.77.3(@babel/preset-env@7.28.0(@babel/core@7.28.0))': + '@react-native/babel-plugin-codegen@0.78.2(@babel/preset-env@7.28.0(@babel/core@7.28.0))': dependencies: '@babel/traverse': 7.28.0 - '@react-native/codegen': 0.77.3(@babel/preset-env@7.28.0(@babel/core@7.28.0)) + '@react-native/codegen': 0.78.2(@babel/preset-env@7.28.0(@babel/core@7.28.0)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))': + '@react-native/babel-preset@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.0) @@ -8858,7 +8826,7 @@ snapshots: '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0) '@babel/template': 7.27.2 - '@react-native/babel-plugin-codegen': 0.77.3(@babel/preset-env@7.28.0(@babel/core@7.28.0)) + '@react-native/babel-plugin-codegen': 0.78.2(@babel/preset-env@7.28.0(@babel/core@7.28.0)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.0) react-refresh: 0.14.2 @@ -8866,7 +8834,7 @@ snapshots: - '@babel/preset-env' - supports-color - '@react-native/codegen@0.77.3(@babel/preset-env@7.28.0(@babel/core@7.28.0))': + '@react-native/codegen@0.78.2(@babel/preset-env@7.28.0(@babel/core@7.28.0))': dependencies: '@babel/parser': 7.28.0 '@babel/preset-env': 7.28.0(@babel/core@7.28.0) @@ -8879,10 +8847,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))': + '@react-native/community-cli-plugin@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))': dependencies: - '@react-native/dev-middleware': 0.77.3 - '@react-native/metro-babel-transformer': 0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0)) + '@react-native/dev-middleware': 0.78.2 + '@react-native/metro-babel-transformer': 0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0)) chalk: 4.1.2 debug: 2.6.9 invariant: 2.2.4 @@ -8900,12 +8868,12 @@ snapshots: - supports-color - utf-8-validate - '@react-native/debugger-frontend@0.77.3': {} + '@react-native/debugger-frontend@0.78.2': {} - '@react-native/dev-middleware@0.77.3': + '@react-native/dev-middleware@0.78.2': dependencies: '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.77.3 + '@react-native/debugger-frontend': 0.78.2 chrome-launcher: 0.15.2 chromium-edge-launcher: 0.2.0 connect: 3.7.0 @@ -8921,28 +8889,28 @@ snapshots: - supports-color - utf-8-validate - '@react-native/gradle-plugin@0.77.3': {} + '@react-native/gradle-plugin@0.78.2': {} - '@react-native/js-polyfills@0.77.3': {} + '@react-native/js-polyfills@0.78.2': {} - '@react-native/metro-babel-transformer@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))': + '@react-native/metro-babel-transformer@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))': dependencies: '@babel/core': 7.28.0 - '@react-native/babel-preset': 0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0)) + '@react-native/babel-preset': 0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0)) hermes-parser: 0.25.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/normalize-colors@0.77.3': {} + '@react-native/normalize-colors@0.78.2': {} - '@react-native/virtualized-lists@0.77.3(@types/react@18.3.23)(react-native@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react@18.3.1)': + '@react-native/virtualized-lists@0.78.2(@types/react@18.3.23)(react-native@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1) + react-native: 0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1) optionalDependencies: '@types/react': 18.3.23 @@ -9116,13 +9084,13 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@16.18.126)(ts-node@10.9.2(@types/node@16.18.126)(typescript@5.8.3)))(react-native@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react-test-renderer@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@16.18.126)(ts-node@10.9.2(@types/node@16.18.126)(typescript@5.8.3)))(react-native@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react-test-renderer@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: jest-matcher-utils: 30.0.5 picocolors: 1.1.1 pretty-format: 30.0.5 react: 18.3.1 - react-native: 0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1) + react-native: 0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1) react-test-renderer: 18.3.1(react@18.3.1) redent: 3.0.0 optionalDependencies: @@ -10162,8 +10130,6 @@ snapshots: ci-info@2.0.0: {} - ci-info@3.5.0: {} - ci-info@3.9.0: {} ci-info@4.3.0: {} @@ -10846,7 +10812,7 @@ snapshots: - supports-color - typescript - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(jest@29.7.0)(typescript@5.8.3): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(typescript@5.8.3))(eslint@7.32.0)(jest@29.7.0(@types/node@16.18.126)(ts-node@10.9.2(@types/node@16.18.126)(typescript@5.8.3)))(typescript@5.8.3): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@5.8.3) eslint: 7.32.0 @@ -11092,7 +11058,7 @@ snapshots: jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.4.1 - jest-util: 29.4.1 + jest-util: 29.7.0 expect@29.7.0: dependencies: @@ -11429,8 +11395,6 @@ snapshots: gopd@1.2.0: {} - graceful-fs@4.2.10: {} - graceful-fs@4.2.11: {} graphemer@1.4.0: {} @@ -12102,11 +12066,11 @@ snapshots: jest-message-util@29.4.1: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 micromatch: 4.0.8 pretty-format: 29.7.0 slash: 3.0.0 @@ -12266,15 +12230,6 @@ snapshots: picomatch: 2.3.1 optional: true - jest-util@29.4.1: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 16.18.126 - chalk: 4.1.2 - ci-info: 3.5.0 - graceful-fs: 4.2.10 - picomatch: 2.3.1 - jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -12291,7 +12246,7 @@ snapshots: chalk: 4.1.2 ci-info: 4.3.0 graceful-fs: 4.2.11 - picomatch: 4.0.2 + picomatch: 4.0.3 jest-validate@29.7.0: dependencies: @@ -12361,8 +12316,6 @@ snapshots: jsbn@1.1.0: {} - jsc-android@250231.0.0: {} - jsc-safe-url@0.2.4: {} jscodeshift@17.3.0(@babel/preset-env@7.28.0(@babel/core@7.28.0)): @@ -13793,8 +13746,6 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} - picomatch@4.0.3: {} pify@2.3.0: {} @@ -14166,16 +14117,16 @@ snapshots: react-is@18.3.1: {} - react-native@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1): + react-native@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native/assets-registry': 0.77.3 - '@react-native/codegen': 0.77.3(@babel/preset-env@7.28.0(@babel/core@7.28.0)) - '@react-native/community-cli-plugin': 0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13)) - '@react-native/gradle-plugin': 0.77.3 - '@react-native/js-polyfills': 0.77.3 - '@react-native/normalize-colors': 0.77.3 - '@react-native/virtualized-lists': 0.77.3(@types/react@18.3.23)(react-native@0.77.3(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react@18.3.1) + '@react-native/assets-registry': 0.78.2 + '@react-native/codegen': 0.78.2(@babel/preset-env@7.28.0(@babel/core@7.28.0)) + '@react-native/community-cli-plugin': 0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13)) + '@react-native/gradle-plugin': 0.78.2 + '@react-native/js-polyfills': 0.78.2 + '@react-native/normalize-colors': 0.78.2 + '@react-native/virtualized-lists': 0.78.2(@types/react@18.3.23)(react-native@0.78.2(@babel/core@7.28.0)(@babel/preset-env@7.28.0(@babel/core@7.28.0))(@react-native-community/cli@11.4.1(@babel/core@7.28.0)(encoding@0.1.13))(@types/react@18.3.23)(react@18.3.1))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -14189,7 +14140,6 @@ snapshots: glob: 7.2.3 invariant: 2.2.4 jest-environment-node: 29.7.0 - jsc-android: 250231.0.0 memoize-one: 5.2.1 metro-runtime: 0.81.5 metro-source-map: 0.81.5 @@ -14200,7 +14150,7 @@ snapshots: react-devtools-core: 6.1.5 react-refresh: 0.14.2 regenerator-runtime: 0.13.11 - scheduler: 0.24.0-canary-efb381bbf-20230505 + scheduler: 0.25.0 semver: 7.7.2 stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 @@ -14561,9 +14511,7 @@ snapshots: dependencies: loose-envify: 1.4.0 - scheduler@0.24.0-canary-efb381bbf-20230505: - dependencies: - loose-envify: 1.4.0 + scheduler@0.25.0: {} scoped-regex@2.1.0: {}