diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 019cb05a4..7ef5d72c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -117,7 +117,7 @@ jobs: yarn lint:js echo "::remove-matcher owner=eslint-stylish::" fi - yarn tsc + yarn tsgo yarn test:js shell: bash working-directory: packages/app diff --git a/packages/app/example/package.json b/packages/app/example/package.json index f0d3e7337..625f3a21c 100644 --- a/packages/app/example/package.json +++ b/packages/app/example/package.json @@ -37,7 +37,7 @@ "@rnx-kit/cli": "^0.18.11", "@rnx-kit/metro-config": "^2.2.3", "@rnx-kit/polyfills": "^0.2.0", - "@rnx-kit/tsconfig": "^2.0.0", + "@rnx-kit/tsconfig": "^3.0.0", "@types/react": "~19.1.0", "@wdio/types": "^9.20.0", "appium": "^3.1.1", diff --git a/packages/app/example/test/specs/wdio.config.mjs b/packages/app/example/test/specs/wdio.config.mjs index 9eb348531..ed5ba7fcb 100644 --- a/packages/app/example/test/specs/wdio.config.mjs +++ b/packages/app/example/test/specs/wdio.config.mjs @@ -2,9 +2,6 @@ import { spawnSync } from "node:child_process"; import * as fs from "node:fs"; -/** @typedef {import("@wdio/types").Capabilities.WebdriverIOConfig["logLevel"]} LogLevel */ -/** @typedef {import("@wdio/types").Options.Testrunner["runner"]} Runner */ - function getAvailableSimulators(search = "iPhone") { const { error, status, stderr, stdout } = spawnSync( "xcrun", @@ -112,7 +109,7 @@ const findLatestIPhoneSimulator = (() => { })(); export const config = { - runner: /** @type {Runner} */ ("local"), + runner: /** @type {const} */ ("local"), port: 4723, specs: ["**/*.spec.js"], capabilities: (() => { @@ -150,7 +147,7 @@ export const config = { throw new Error(`Unknown platform: ${targetPlatform}`); } })(), - logLevel: /** @type {LogLevel} */ ("info"), + logLevel: /** @type {const} */ ("info"), waitforTimeout: 60000, specFileRetries: 3, }; diff --git a/packages/app/example/tsconfig.json b/packages/app/example/tsconfig.json index e2d9fd84b..b83486453 100644 --- a/packages/app/example/tsconfig.json +++ b/packages/app/example/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "jsx": "react-native", "noEmit": true, - "lib": ["ES2021", "DOM"] + "lib": ["ES2022", "DOM"] }, "include": [ "index.ts", diff --git a/packages/app/package.json b/packages/app/package.json index 3750d1f77..21626fbec 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -73,7 +73,7 @@ "generate:code": "node scripts/internal/generate-manifest.mts", "generate:docs": "node scripts/internal/generate-manifest-docs.mts", "generate:schema": "node scripts/internal/generate-schema.mts", - "lint:js": "eslint $(git ls-files '*.[cm][jt]s' '*.[jt]s' '*.tsx' ':!:*.config.js' ':!:.yarn/releases') && tsc && tsc --project tsconfig.cjs.json", + "lint:js": "eslint $(git ls-files '*.[cm][jt]s' '*.[jt]s' '*.tsx' ':!:*.config.js' ':!:.yarn/releases') && tsgo && tsgo --project tsconfig.cjs.json", "lint:kt": "ktlint --relative 'android/app/src/**/*.kt'", "lint:rb": "bundle exec rubocop", "lint:swift": "swiftlint", @@ -120,7 +120,7 @@ "devDependencies": { "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", - "@expo/config-plugins": "^10.0.0", + "@expo/config-plugins": "^54.0.0", "@expo/json-file": "~9.1.5", "@microsoft/eslint-plugin-sdl": "^1.0.0", "@react-native-community/cli": "^20.0.0", @@ -128,7 +128,7 @@ "@react-native-community/template": "^0.81.0", "@rnx-kit/eslint-plugin": "^0.9.0", "@rnx-kit/lint-lockfile": "^0.1.0", - "@rnx-kit/tsconfig": "^2.0.0", + "@rnx-kit/tsconfig": "^3.0.0", "@swc-node/register": "^1.10.0", "@swc/core": "^1.11.0", "@types/js-yaml": "^4.0.5", @@ -137,6 +137,7 @@ "@types/prompts": "~2.4.0", "@types/react": "~19.1.0", "@types/semver": "^7.3.6", + "@typescript/native-preview": "^7.0.0-0", "eslint": "^9.12.0", "eslint-plugin-wdio": "^9.0.0", "js-yaml": "^4.1.0", @@ -148,8 +149,7 @@ "react-native": "^0.81.0", "react-native-macos": "^0.81.1", "react-native-windows": "^0.81.0", - "suggestion-bot": "^4.0.0", - "typescript": "^5.0.0" + "suggestion-bot": "^4.0.0" }, "engines": { "node": ">=18.12" diff --git a/packages/app/scripts/config-plugins/plugins/mod-compiler.mjs b/packages/app/scripts/config-plugins/plugins/mod-compiler.mjs index 7b37b3798..9adf64411 100644 --- a/packages/app/scripts/config-plugins/plugins/mod-compiler.mjs +++ b/packages/app/scripts/config-plugins/plugins/mod-compiler.mjs @@ -1,10 +1,11 @@ // @ts-check +/** @import { ExportedConfig } from "@expo/config-plugins"; */ import { BaseMods, evalModsAsync } from "../ExpoConfigPlugins.mjs"; import { getAndroidModFileProviders } from "./withAndroidBaseMods.mjs"; import { getIosModFileProviders } from "./withIosBaseMods.mjs"; import { getMacOsModFileProviders } from "./withMacOsBaseMods.mjs"; -/** @type {import("@expo/config-plugins").withDefaultBaseMods} */ +/** @type {(config: ExportedConfig, props?: Record) => ExportedConfig} */ export const withDefaultBaseMods = (config, props) => { config = BaseMods.withIosBaseMods(config, { ...props, @@ -23,7 +24,7 @@ export const withDefaultBaseMods = (config, props) => { return config; }; -/** @type {import("@expo/config-plugins").compileModsAsync} */ +/** @type {typeof evalModsAsync} */ export const compileModsAsync = (config, props) => { if (props.introspect === true) { console.warn("`introspect` is not supported by react-native-test-app"); diff --git a/packages/app/scripts/init.mjs b/packages/app/scripts/init.mjs index 68419cc81..ac352cdfa 100755 --- a/packages/app/scripts/init.mjs +++ b/packages/app/scripts/init.mjs @@ -164,6 +164,9 @@ function instructionsFor(platform) { throw new Error(`Unknown platform: ${platform}`); } +/** + * @returns {Promise} + */ function main() { return new Promise((resolve) => { parseArgs( diff --git a/packages/app/scripts/schema.mjs b/packages/app/scripts/schema.mjs index 2285e6d72..a796b0cde 100644 --- a/packages/app/scripts/schema.mjs +++ b/packages/app/scripts/schema.mjs @@ -2,7 +2,7 @@ import { URL, fileURLToPath } from "node:url"; import { readJSONFile } from "./helpers.js"; -/** @typedef {import("./types.js").Docs} Docs */ +/** @import { Docs } from "./types.ts"; */ /** * @param {string} content @@ -16,7 +16,9 @@ function extractBrief(content = "") { function readManifest() { const manifest = fileURLToPath(new URL("../package.json", import.meta.url)); - return /** @type {import("../package.json")} */ (readJSONFile(manifest)); + return /** @type {typeof import("../package.json")} */ ( + readJSONFile(manifest) + ); } /** diff --git a/packages/app/test/helpers.test.ts b/packages/app/test/helpers.test.ts index ff27a4e92..5223936b1 100644 --- a/packages/app/test/helpers.test.ts +++ b/packages/app/test/helpers.test.ts @@ -1,3 +1,4 @@ +import type Mustache from "mustache"; import { equal, fail, notEqual } from "node:assert/strict"; import * as fs from "node:fs"; import * as path from "node:path"; @@ -56,7 +57,7 @@ describe("getPackageVersion()", () => { describe("requireTransitive()", () => { it("imports transitive dependencies", () => { - const mustache = requireTransitive([ + const mustache = requireTransitive([ "react-native-windows", "@react-native-windows/cli", "mustache", @@ -71,7 +72,7 @@ describe("requireTransitive()", () => { fail("Failed to resolve 'react-native-windows'"); } - const mustache = requireTransitive( + const mustache = requireTransitive( ["@react-native-windows/cli", "mustache"], fs.realpathSync(rnwDir) ); diff --git a/packages/app/windows/app.mjs b/packages/app/windows/app.mjs index d1230de77..b4d66ba0b 100755 --- a/packages/app/windows/app.mjs +++ b/packages/app/windows/app.mjs @@ -200,7 +200,7 @@ export async function generateSolution(destPath, options, fs = nodefs) { .map((project) => toProjectEntry(project, destPath)) .join(os.EOL); - /** @type {typeof import("mustache")} */ + /** @type {typeof import("mustache").default} */ const mustache = requireTransitive( ["@react-native-windows/cli", "mustache"], fs.realpathSync(rnWindowsPath) diff --git a/yarn.lock b/yarn.lock index cfe109fdb..075460a09 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1945,32 +1945,42 @@ __metadata: languageName: node linkType: hard -"@expo/config-plugins@npm:^10.0.0": - version: 10.1.2 - resolution: "@expo/config-plugins@npm:10.1.2" +"@expo/config-plugins@npm:^54.0.0": + version: 54.0.4 + resolution: "@expo/config-plugins@npm:54.0.4" dependencies: - "@expo/config-types": "npm:^53.0.5" - "@expo/json-file": "npm:~9.1.5" - "@expo/plist": "npm:^0.3.5" + "@expo/config-types": "npm:^54.0.10" + "@expo/json-file": "npm:~10.0.8" + "@expo/plist": "npm:^0.4.8" "@expo/sdk-runtime-versions": "npm:^1.0.0" chalk: "npm:^4.1.2" debug: "npm:^4.3.5" getenv: "npm:^2.0.0" - glob: "npm:^10.4.2" + glob: "npm:^13.0.0" resolve-from: "npm:^5.0.0" semver: "npm:^7.5.4" slash: "npm:^3.0.0" slugify: "npm:^1.6.6" xcode: "npm:^3.0.1" xml2js: "npm:0.6.0" - checksum: 10c0/d5ef0f002db40cb182058b2fe9df6f5f77ff09e18aa0bc8109047d75cd912487bace59bcff7104c6f68f6b49f89d0b387ab6f90f8069c63c9f3fccb9fb9b99de + checksum: 10c0/c7537485a0e883d8a98f1fb93335a1f56d4be2c2a4b5676ba09a8e9253190996241022f841c437e64578fa63b20b6ecf843d88b52930b890fa199d7aa188253f languageName: node linkType: hard -"@expo/config-types@npm:^53.0.5": - version: 53.0.5 - resolution: "@expo/config-types@npm:53.0.5" - checksum: 10c0/a7c96f65327de5608aedaf0669bc95b721323113064bdad3473d6faa07b619100ef1df5811f3fdb5dc50d05610842aec8d6bc1902dd0345d51ba2d520884487d +"@expo/config-types@npm:^54.0.10": + version: 54.0.10 + resolution: "@expo/config-types@npm:54.0.10" + checksum: 10c0/a304e18314937cbe3a146fe7daf23d5b78049676dabc14b1e181330f9e74ab2f4ada288f23999f254b59ee7c59380f895ffcb536f537e9039cd10336b1c1d7bc + languageName: node + linkType: hard + +"@expo/json-file@npm:~10.0.8": + version: 10.0.12 + resolution: "@expo/json-file@npm:10.0.12" + dependencies: + "@babel/code-frame": "npm:^7.20.0" + json5: "npm:^2.2.3" + checksum: 10c0/52131a6426e96208ff1b295d580fc70eebb8e292b29fde1db016b2f21a0942a7521feec96b3f58efe5b32dcc1642d569b4211d651146fcdb9bf7e5f08b635878 languageName: node linkType: hard @@ -1984,14 +1994,14 @@ __metadata: languageName: node linkType: hard -"@expo/plist@npm:^0.3.5": - version: 0.3.5 - resolution: "@expo/plist@npm:0.3.5" +"@expo/plist@npm:^0.4.8": + version: 0.4.8 + resolution: "@expo/plist@npm:0.4.8" dependencies: "@xmldom/xmldom": "npm:^0.8.8" base64-js: "npm:^1.2.3" xmlbuilder: "npm:^15.1.1" - checksum: 10c0/d0cde0024b6363f3c96ac186a59795d7c7655986407623324083261ea7e8dcaa7014f385baa1a70422765299eb6d828515ebf0d40590caf34f81997288b74cc1 + checksum: 10c0/5bacdb6f8c5e0e56da07f4504290036e3a5433164a29bea7857e72234137d8eaa04adb319221fcc1ec7f931d40d7f9f6fc9528fa601ed18c308a4cf8179f7783 languageName: node linkType: hard @@ -2283,22 +2293,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10c0/7da011805b259ec5c955f01cee903da72ad97c5e6f01ca96197267d3f33103d5b2f8a1af192140f3aa64526c593c8d098ae366c2b11f7f17645d12387c2fd420 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.0": - version: 5.0.1 - resolution: "@isaacs/brace-expansion@npm:5.0.1" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10c0/e5d67c7bbf1f17b88132a35bc638af306d48acbb72810d48fa6e6edd8ab375854773108e8bf70f021f7ef6a8273455a6d1f0c3b5aa2aff06ce7894049ab77fb8 - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2313,6 +2307,13 @@ __metadata: languageName: node linkType: hard +"@isaacs/cliui@npm:^9.0.0": + version: 9.0.0 + resolution: "@isaacs/cliui@npm:9.0.0" + checksum: 10c0/971063b7296419f85053dacd0a0285dcadaa3dfc139228b23e016c1a9848121ad4aa5e7fcca7522062014e1eb6239a7424188b9f2cba893a79c90aae5710319c + languageName: node + linkType: hard + "@isaacs/fs-minipass@npm:^4.0.0": version: 4.0.1 resolution: "@isaacs/fs-minipass@npm:4.0.1" @@ -3980,10 +3981,10 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tsconfig@npm:^2.0.0": - version: 2.1.1 - resolution: "@rnx-kit/tsconfig@npm:2.1.1" - checksum: 10c0/53aed185abd644250d95c732e44ecb66bcdf3005cc6eb854ba217346fa29cf0ea892bbd391e15050a5b553fe7dc983130add30c9aa30b1f66a0ca498d3409d94 +"@rnx-kit/tsconfig@npm:^3.0.0": + version: 3.0.0 + resolution: "@rnx-kit/tsconfig@npm:3.0.0" + checksum: 10c0/87725a8b4bff64e998f1babfde4982aab3ec22538d0bde67f4980c019199741a91e796ba047d8cfafb538af3c6c07c1ae07239c9b3d73fe7ba30ab36cfbfe984 languageName: node linkType: hard @@ -4636,6 +4637,87 @@ __metadata: languageName: node linkType: hard +"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260216.1": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260216.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260216.1": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260216.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260216.1": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260216.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260216.1": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260216.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260216.1": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260216.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260216.1": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260216.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260216.1": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260216.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@typescript/native-preview@npm:^7.0.0-0": + version: 7.0.0-dev.20260216.1 + resolution: "@typescript/native-preview@npm:7.0.0-dev.20260216.1" + dependencies: + "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260216.1" + "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260216.1" + "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260216.1" + "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260216.1" + "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260216.1" + "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260216.1" + "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260216.1" + dependenciesMeta: + "@typescript/native-preview-darwin-arm64": + optional: true + "@typescript/native-preview-darwin-x64": + optional: true + "@typescript/native-preview-linux-arm": + optional: true + "@typescript/native-preview-linux-arm64": + optional: true + "@typescript/native-preview-linux-x64": + optional: true + "@typescript/native-preview-win32-arm64": + optional: true + "@typescript/native-preview-win32-x64": + optional: true + bin: + tsgo: bin/tsgo.js + checksum: 10c0/db461ea3c92cf34f865e37418498aa6af38375af71d747550121468e310f8a1cc3e74467a61c240ad55b33d5c4728dc2be8eb3a1b2ee718d8c783af710df3c68 + languageName: node + linkType: hard + "@vscode/sudo-prompt@npm:^9.0.0": version: 9.3.1 resolution: "@vscode/sudo-prompt@npm:9.3.1" @@ -5743,6 +5825,15 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.2 + resolution: "balanced-match@npm:4.0.2" + dependencies: + jackspeak: "npm:^4.2.3" + checksum: 10c0/493eee4bece3f8b270cea8d3d6d1122ce008dd6b0d5aca8a3f1e623be6897be18c926018eadc454bd719bb7cc46d939c39fa2a05fff86b30f65382f020f6926d + languageName: node + linkType: hard + "bare-events@npm:^2.2.0, bare-events@npm:^2.5.4": version: 2.5.4 resolution: "bare-events@npm:2.5.4" @@ -5925,6 +6016,15 @@ __metadata: languageName: node linkType: hard +"brace-expansion@npm:^5.0.2": + version: 5.0.2 + resolution: "brace-expansion@npm:5.0.2" + dependencies: + balanced-match: "npm:^4.0.2" + checksum: 10c0/60c765e5df6fc0ceca3d5703202ae6779db61f28ea3bf93a04dbf0d50c22ef8e4644e09d0459c827077cd2d09ba8f199a04d92c36419fcf874601a5565013174 + languageName: node + linkType: hard + "braces@npm:^3.0.3": version: 3.0.3 resolution: "braces@npm:3.0.3" @@ -7761,7 +7861,7 @@ __metadata: "@rnx-kit/cli": "npm:^0.18.11" "@rnx-kit/metro-config": "npm:^2.2.3" "@rnx-kit/polyfills": "npm:^0.2.0" - "@rnx-kit/tsconfig": "npm:^2.0.0" + "@rnx-kit/tsconfig": "npm:^3.0.0" "@types/react": "npm:~19.1.0" "@wdio/types": "npm:^9.20.0" appium: "npm:^3.1.1" @@ -8496,7 +8596,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.4.2": +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10": version: 10.5.0 resolution: "glob@npm:10.5.0" dependencies: @@ -8544,6 +8644,17 @@ __metadata: languageName: node linkType: hard +"glob@npm:^13.0.0": + version: 13.0.3 + resolution: "glob@npm:13.0.3" + dependencies: + minimatch: "npm:^10.2.0" + minipass: "npm:^7.1.2" + path-scurry: "npm:^2.0.0" + checksum: 10c0/333dc5c40ca0e50400465d8f5c45aa7cdd32580c4d1a4c502dfb4fb9c469a936b8e0c6bbd09cd6353fd05982e48d7f79e819159a36fb3e0a41ee722607bc11a9 + languageName: node + linkType: hard + "glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -9468,12 +9579,12 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^4.1.1": - version: 4.1.1 - resolution: "jackspeak@npm:4.1.1" +"jackspeak@npm:^4.1.1, jackspeak@npm:^4.2.3": + version: 4.2.3 + resolution: "jackspeak@npm:4.2.3" dependencies: - "@isaacs/cliui": "npm:^8.0.2" - checksum: 10c0/84ec4f8e21d6514db24737d9caf65361511f75e5e424980eebca4199f400874f45e562ac20fa8aeb1dd20ca2f3f81f0788b6e9c3e64d216a5794fd6f30e0e042 + "@isaacs/cliui": "npm:^9.0.0" + checksum: 10c0/b5c0c414f1607c2aa0597f4bf2c03b8443897fccd5fd3c2b3e4f77d556b2bc7c3d3413828ba91e0789f6fb40ad90242f7f89fb20aee9e9d705bc1681f7564f67 languageName: node linkType: hard @@ -10635,12 +10746,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.1.1": - version: 10.1.1 - resolution: "minimatch@npm:10.1.1" +"minimatch@npm:^10.1.1, minimatch@npm:^10.2.0": + version: 10.2.0 + resolution: "minimatch@npm:10.2.0" dependencies: - "@isaacs/brace-expansion": "npm:^5.0.0" - checksum: 10c0/c85d44821c71973d636091fddbfbffe62370f5ee3caf0241c5b60c18cd289e916200acb2361b7e987558cd06896d153e25d505db9fc1e43e6b4b6752e2702902 + brace-expansion: "npm:^5.0.2" + checksum: 10c0/256e72812bb99a86cdc788bf46a4da3f6e139db9123e20ed85a6795b93fdc0b76468ac511eb5535a023adb02a53fd598f971e990d0ca3bd6de6d41ea0199def1 languageName: node linkType: hard @@ -12221,7 +12332,7 @@ __metadata: dependencies: "@babel/core": "npm:^7.25.2" "@babel/preset-env": "npm:^7.25.3" - "@expo/config-plugins": "npm:^10.0.0" + "@expo/config-plugins": "npm:^54.0.0" "@expo/json-file": "npm:~9.1.5" "@microsoft/eslint-plugin-sdl": "npm:^1.0.0" "@react-native-community/cli": "npm:^20.0.0" @@ -12231,7 +12342,7 @@ __metadata: "@rnx-kit/lint-lockfile": "npm:^0.1.0" "@rnx-kit/react-native-host": "npm:^0.5.15" "@rnx-kit/tools-react-native": "npm:^2.1.0" - "@rnx-kit/tsconfig": "npm:^2.0.0" + "@rnx-kit/tsconfig": "npm:^3.0.0" "@swc-node/register": "npm:^1.10.0" "@swc/core": "npm:^1.11.0" "@types/js-yaml": "npm:^4.0.5" @@ -12240,6 +12351,7 @@ __metadata: "@types/prompts": "npm:~2.4.0" "@types/react": "npm:~19.1.0" "@types/semver": "npm:^7.3.6" + "@typescript/native-preview": "npm:^7.0.0-0" ajv: "npm:^8.0.0" cliui: "npm:^8.0.0" eslint: "npm:^9.12.0" @@ -12257,7 +12369,6 @@ __metadata: react-native-windows: "npm:^0.81.0" semver: "npm:^7.3.5" suggestion-bot: "npm:^4.0.0" - typescript: "npm:^5.0.0" uuid: "npm:^11.0.0" peerDependencies: "@callstack/react-native-visionos": 0.76 - 0.79