@rnx-kit/cli 0.18.16 → 0.18.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -200,13 +200,16 @@ yarn rnx-cli build [options]
200
200
 
201
201
  <!-- @rnx-kit/cli/build start -->
202
202
 
203
- | Option | Description |
204
- | ------------------------------ | ---------------------------------------------------------------------------- |
205
- | -p, --platform &lt;string&gt; | Target platform |
206
- | --workspace &lt;string&gt; | Path, relative to project root, of the Xcode workspace to build (macOS only) |
207
- | --scheme &lt;string&gt; | Name of scheme to build (Apple platforms only) |
208
- | --configuration &lt;string&gt; | Build configuration for building the app; 'Debug' or 'Release' |
209
- | --destination &lt;string&gt; | Destination of the built app; 'device', 'emulator', or 'simulator' |
203
+ | Option | Description |
204
+ | ------------------------------ | ------------------------------------------------------------------------------------- |
205
+ | -p, --platform &lt;string&gt; | Target platform |
206
+ | --solution &lt;string&gt; | Path, relative to project root, of the Visual Studio solution to build (Windows only) |
207
+ | --workspace &lt;string&gt; | Path, relative to project root, of the Xcode workspace to build (macOS only) |
208
+ | --scheme &lt;string&gt; | Name of scheme to build (Apple platforms only) |
209
+ | --configuration &lt;string&gt; | Build configuration for building the app; 'Debug' or 'Release' |
210
+ | --destination &lt;string&gt; | Destination of the built app; 'device', 'emulator', or 'simulator' |
211
+ | --ccache-dir &lt;string&gt; | Path to Ccache config |
212
+ | --ccache-home &lt;string&gt; | Path to Ccache installation |
210
213
 
211
214
  <!-- @rnx-kit/cli/build end -->
212
215
 
@@ -226,14 +229,17 @@ yarn rnx-cli run [options]
226
229
 
227
230
  <!-- @rnx-kit/cli/run start -->
228
231
 
229
- | Option | Description |
230
- | ------------------------------ | ---------------------------------------------------------------------------- |
231
- | -p, --platform &lt;string&gt; | Target platform |
232
- | --workspace &lt;string&gt; | Path, relative to project root, of the Xcode workspace to build (macOS only) |
233
- | --scheme &lt;string&gt; | Name of scheme to build (Apple platforms only) |
234
- | --configuration &lt;string&gt; | Build configuration for building the app; 'Debug' or 'Release' |
235
- | --destination &lt;string&gt; | Destination of the built app; 'device', 'emulator', or 'simulator' |
236
- | -d, --device &lt;string&gt; | The name of the device to launch the app in |
232
+ | Option | Description |
233
+ | ------------------------------ | ------------------------------------------------------------------------------------- |
234
+ | -p, --platform &lt;string&gt; | Target platform |
235
+ | --solution &lt;string&gt; | Path, relative to project root, of the Visual Studio solution to build (Windows only) |
236
+ | --workspace &lt;string&gt; | Path, relative to project root, of the Xcode workspace to build (macOS only) |
237
+ | --scheme &lt;string&gt; | Name of scheme to build (Apple platforms only) |
238
+ | --configuration &lt;string&gt; | Build configuration for building the app; 'Debug' or 'Release' |
239
+ | --destination &lt;string&gt; | Destination of the built app; 'device', 'emulator', or 'simulator' |
240
+ | --ccache-dir &lt;string&gt; | Path to Ccache config |
241
+ | --ccache-home &lt;string&gt; | Path to Ccache installation |
242
+ | -d, --device &lt;string&gt; | The name of the device to launch the app in |
237
243
 
238
244
  <!-- @rnx-kit/cli/run end -->
239
245
 
@@ -263,11 +269,11 @@ yarn rnx-cli clean [options]
263
269
 
264
270
  <!-- @rnx-kit/cli/clean start -->
265
271
 
266
- | Option | Description |
267
- | ----------------------------------------------------------- | -------------------------------------------------------- |
268
- | --include &lt;android,cocoapods,metro,npm,watchman,yarn&gt; | Comma-separated flag of caches to clear e.g., `npm,yarn` |
269
- | --project-root &lt;path&gt; | Root path to your React Native project |
270
- | --verify-cache | Whether to verify the integrity of the cache |
272
+ | Option | Description |
273
+ | ----------------------------------------------------------------- | -------------------------------------------------------- |
274
+ | --include &lt;android,cocoapods,metro,npm,watchman,xcode,yarn&gt; | Comma-separated flag of caches to clear e.g., `npm,yarn` |
275
+ | --project-root &lt;path&gt; | Root path to your React Native project |
276
+ | --verify-cache | Whether to verify the integrity of the cache |
271
277
 
272
278
  <!-- @rnx-kit/cli/clean end -->
273
279
 
@@ -1,5 +1,5 @@
1
1
  import type { Command as BaseCommand, Config as BaseConfig } from "@react-native-community/cli-types";
2
- import { RNX_FAST_PATH } from "./constants";
2
+ import { RNX_FAST_PATH } from "./constants.ts";
3
3
  type Command = BaseCommand<false> | BaseCommand<true>;
4
4
  type Config = BaseConfig & {
5
5
  [RNX_FAST_PATH]?: true;
@@ -5,13 +5,13 @@ exports.loadContextForCommand = loadContextForCommand;
5
5
  const package_1 = require("@rnx-kit/tools-node/package");
6
6
  const cache_1 = require("@rnx-kit/tools-react-native/cache");
7
7
  const context_1 = require("@rnx-kit/tools-react-native/context");
8
- const index_1 = require("../index");
9
- const constants_1 = require("./constants");
8
+ const index_ts_1 = require("../index.js");
9
+ const constants_ts_1 = require("./constants.js");
10
10
  function canUseFastPath(userCommand) {
11
- const cmd = constants_1.RNX_PREFIX + userCommand;
12
- for (const command of index_1.reactNativeConfig.commands) {
11
+ const cmd = constants_ts_1.RNX_PREFIX + userCommand;
12
+ for (const command of index_ts_1.reactNativeConfig.commands) {
13
13
  if (command.name === cmd) {
14
- return !(constants_1.RNX_FAST_PATH in command) || command[constants_1.RNX_FAST_PATH] !== false;
14
+ return !(constants_ts_1.RNX_FAST_PATH in command) || command[constants_ts_1.RNX_FAST_PATH] !== false;
15
15
  }
16
16
  }
17
17
  return false;
@@ -30,8 +30,8 @@ function uniquify(commands) {
30
30
  const uniqueCommands = {};
31
31
  for (const command of commands) {
32
32
  const { name } = command;
33
- if (name.startsWith(constants_1.RNX_PREFIX)) {
34
- command.name = name.substring(constants_1.RNX_PREFIX.length);
33
+ if (name.startsWith(constants_ts_1.RNX_PREFIX)) {
34
+ command.name = name.substring(constants_ts_1.RNX_PREFIX.length);
35
35
  uniqueCommands[command.name] = command;
36
36
  }
37
37
  else if (!uniqueCommands[name]) {
@@ -56,7 +56,7 @@ async function loadContextForCommand(userCommand, root = process.cwd()) {
56
56
  let reactNativePath;
57
57
  let reactNativeVersion;
58
58
  return {
59
- [constants_1.RNX_FAST_PATH]: true,
59
+ [constants_ts_1.RNX_FAST_PATH]: true,
60
60
  root,
61
61
  get reactNativePath() {
62
62
  if (!reactNativePath) {
@@ -77,8 +77,8 @@ async function loadContextForCommand(userCommand, root = process.cwd()) {
77
77
  },
78
78
  assets: [],
79
79
  get commands() {
80
- const start = constants_1.RNX_PREFIX.length;
81
- return index_1.reactNativeConfig.commands.map((command) => ({
80
+ const start = constants_ts_1.RNX_PREFIX.length;
81
+ return index_ts_1.reactNativeConfig.commands.map((command) => ({
82
82
  ...command,
83
83
  name: command.name.substring(start),
84
84
  }));
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findExternalCommands = findExternalCommands;
4
4
  const context_1 = require("@rnx-kit/tools-react-native/context");
5
- const constants_1 = require("./constants");
5
+ const constants_ts_1 = require("./constants.js");
6
6
  function tryImport(module, fromDir) {
7
7
  try {
8
8
  const p = require.resolve(module, { paths: [fromDir] });
@@ -13,7 +13,7 @@ function tryImport(module, fromDir) {
13
13
  }
14
14
  }
15
15
  function findExternalCommands(config) {
16
- if (constants_1.RNX_FAST_PATH in config) {
16
+ if (constants_ts_1.RNX_FAST_PATH in config) {
17
17
  // Fast path means we don't need to do anything here
18
18
  return [];
19
19
  }
@@ -36,16 +36,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.main = main;
37
37
  const commander_1 = require("commander");
38
38
  const path = __importStar(require("node:path"));
39
- const context_1 = require("./context");
40
- const externalCommands_1 = require("./externalCommands");
39
+ const context_ts_1 = require("./context.js");
40
+ const externalCommands_ts_1 = require("./externalCommands.js");
41
41
  function parseDefaultValue(defaultValue, context) {
42
42
  const value = typeof defaultValue === "function" ? defaultValue(context) : defaultValue;
43
43
  return typeof value === "number" ? value.toString() : value;
44
44
  }
45
45
  async function main() {
46
46
  const [, , userCommand] = process.argv;
47
- const context = await (0, context_1.loadContextForCommand)(userCommand);
48
- const allCommands = context.commands.concat((0, externalCommands_1.findExternalCommands)(context));
47
+ const context = await (0, context_ts_1.loadContextForCommand)(userCommand);
48
+ const allCommands = context.commands.concat((0, externalCommands_ts_1.findExternalCommands)(context));
49
49
  const program = new commander_1.Command(path.basename(__filename, ".js"));
50
50
  for (const { name, description, detached, options = [], func, } of allCommands) {
51
51
  const command = program.command(name).description(description ?? name);
@@ -1,5 +1,5 @@
1
1
  import { parsePlatform } from "@rnx-kit/tools-react-native/platform";
2
- import { asBoolean, asNumber, asTransformProfile } from "../helpers/parsers";
2
+ import { asBoolean, asNumber, asTransformProfile } from "../helpers/parsers.ts";
3
3
  export declare const commonBundleCommandOptions: ({
4
4
  name: string;
5
5
  description: string;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.commonBundleCommandOptions = void 0;
4
4
  const platform_1 = require("@rnx-kit/tools-react-native/platform");
5
- const parsers_1 = require("../helpers/parsers");
5
+ const parsers_ts_1 = require("../helpers/parsers.js");
6
6
  exports.commonBundleCommandOptions = [
7
7
  {
8
8
  name: "--id <id>",
@@ -21,12 +21,12 @@ exports.commonBundleCommandOptions = [
21
21
  name: "--dev [boolean]",
22
22
  description: "If false, warnings are disabled and the bundle is minified",
23
23
  default: true,
24
- parse: parsers_1.asBoolean,
24
+ parse: parsers_ts_1.asBoolean,
25
25
  },
26
26
  {
27
27
  name: "--minify [boolean]",
28
28
  description: "Controls whether or not the bundle is minified (useful for test builds)",
29
- parse: parsers_1.asBoolean,
29
+ parse: parsers_ts_1.asBoolean,
30
30
  },
31
31
  {
32
32
  name: "--bundle-output <string>",
@@ -40,7 +40,7 @@ exports.commonBundleCommandOptions = [
40
40
  {
41
41
  name: "--max-workers <number>",
42
42
  description: "Specifies the maximum number of parallel worker threads to use for transforming files; defaults to the number of cores available on your machine",
43
- parse: parsers_1.asNumber,
43
+ parse: parsers_ts_1.asNumber,
44
44
  },
45
45
  {
46
46
  name: "--sourcemap-output <string>",
@@ -61,7 +61,7 @@ exports.commonBundleCommandOptions = [
61
61
  {
62
62
  name: "--unstable-transform-profile <string>",
63
63
  description: "[Experimental] Transform JS for a specific JS engine; currently supported: hermes, hermes-canary, default",
64
- parse: parsers_1.asTransformProfile,
64
+ parse: parsers_ts_1.asTransformProfile,
65
65
  },
66
66
  {
67
67
  name: "--reset-cache",
@@ -1,5 +1,5 @@
1
1
  import type { AllPlatforms } from "@rnx-kit/tools-react-native/platform";
2
- import type { CliPlatformBundleConfig } from "./types";
2
+ import type { CliPlatformBundleConfig } from "./types.ts";
3
3
  /**
4
4
  * Get the list of target platforms for bundling.
5
5
  *
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTargetPlatforms = getTargetPlatforms;
4
4
  exports.getCliPlatformBundleConfigs = getCliPlatformBundleConfigs;
5
5
  const config_1 = require("@rnx-kit/config");
6
- const defaultPlugins_1 = require("./defaultPlugins");
6
+ const defaultPlugins_ts_1 = require("./defaultPlugins.js");
7
7
  /**
8
8
  * Get the list of target platforms for bundling.
9
9
  *
@@ -49,7 +49,7 @@ function getCliPlatformBundleConfigs(id, overridePlatform, kitConfig = (0, confi
49
49
  const platformBundleConfig = (0, config_1.getPlatformBundleConfig)(bundleConfig, platform);
50
50
  // apply defaults to fill in any required props that are missing
51
51
  return {
52
- ...(0, defaultPlugins_1.getDefaultBundlerPlugins)(),
52
+ ...(0, defaultPlugins_ts_1.getDefaultBundlerPlugins)(),
53
53
  ...getDefaultBundleParameters(platform),
54
54
  ...platformBundleConfig,
55
55
  platform,
@@ -1,7 +1,7 @@
1
1
  import { bundle } from "@rnx-kit/metro-service";
2
2
  import type { ConfigT } from "metro-config";
3
3
  import * as nodefs from "node:fs";
4
- import type { CliPlatformBundleConfig } from "./types";
4
+ import type { CliPlatformBundleConfig } from "./types.ts";
5
5
  /**
6
6
  * Run the Metro bundler.
7
7
  *
@@ -39,7 +39,7 @@ const metro_service_1 = require("@rnx-kit/metro-service");
39
39
  const tools_filesystem_1 = require("@rnx-kit/tools-filesystem");
40
40
  const nodefs = __importStar(require("node:fs"));
41
41
  const path = __importStar(require("node:path"));
42
- const metro_config_1 = require("../helpers/metro-config");
42
+ const metro_config_ts_1 = require("../helpers/metro-config.js");
43
43
  /**
44
44
  * Run the Metro bundler.
45
45
  *
@@ -67,7 +67,7 @@ async function metroBundle(metroConfig, bundleConfig, dev, minify, output = metr
67
67
  else {
68
68
  bundleConfig.treeShake = false;
69
69
  }
70
- (0, metro_config_1.customizeMetroConfig)(metroConfig, bundleConfig);
70
+ (0, metro_config_ts_1.customizeMetroConfig)(metroConfig, bundleConfig);
71
71
  const metroBundleArgs = {
72
72
  ...bundleConfig,
73
73
  dev,
@@ -1,4 +1,4 @@
1
- import type { CliPlatformBundleConfig } from "./types";
1
+ import type { CliPlatformBundleConfig } from "./types.ts";
2
2
  type BundleConfigOverrides = Partial<Pick<CliPlatformBundleConfig, "entryFile" | "bundleOutput" | "bundleEncoding" | "sourcemapOutput" | "sourcemapSourcesRoot" | "sourcemapUseAbsolutePath" | "assetsDest" | "treeShake" | "unstableTransformProfile" | "indexedRamBundle" | "hermes">>;
3
3
  export declare const overridableCommonBundleOptions: readonly (keyof BundleConfigOverrides)[];
4
4
  /**
package/lib/bundle.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Config as CLIConfig } from "@react-native-community/cli-types";
2
- import type { CLICommonBundleOptions } from "./bundle/types";
3
- import { asBoolean } from "./helpers/parsers";
2
+ import type { CLICommonBundleOptions } from "./bundle/types.ts";
3
+ import { asBoolean } from "./helpers/parsers.ts";
4
4
  type CLIBundleOptions = CLICommonBundleOptions & {
5
5
  treeShake?: boolean;
6
6
  };
@@ -37,12 +37,12 @@ export declare const rnxBundleCommand: {
37
37
  } | {
38
38
  name: string;
39
39
  description: string;
40
- parse: typeof import("./helpers/parsers").asNumber;
40
+ parse: typeof import("./helpers/parsers.ts").asNumber;
41
41
  default?: undefined;
42
42
  } | {
43
43
  name: string;
44
44
  description: string;
45
- parse: typeof import("./helpers/parsers").asTransformProfile;
45
+ parse: typeof import("./helpers/parsers.ts").asTransformProfile;
46
46
  default?: undefined;
47
47
  })[];
48
48
  };
package/lib/bundle.js CHANGED
@@ -3,25 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rnxBundleCommand = void 0;
4
4
  exports.rnxBundle = rnxBundle;
5
5
  const metro_service_1 = require("@rnx-kit/metro-service");
6
- const cliOptions_1 = require("./bundle/cliOptions");
7
- const hermes_1 = require("./bundle/hermes");
8
- const kit_config_1 = require("./bundle/kit-config");
9
- const metro_1 = require("./bundle/metro");
10
- const overrides_1 = require("./bundle/overrides");
11
- const parsers_1 = require("./helpers/parsers");
6
+ const cliOptions_ts_1 = require("./bundle/cliOptions.js");
7
+ const hermes_ts_1 = require("./bundle/hermes.js");
8
+ const kit_config_ts_1 = require("./bundle/kit-config.js");
9
+ const metro_ts_1 = require("./bundle/metro.js");
10
+ const overrides_ts_1 = require("./bundle/overrides.js");
11
+ const parsers_ts_1 = require("./helpers/parsers.js");
12
12
  async function rnxBundle(_argv, cliConfig, cliOptions) {
13
13
  const metroConfig = await (0, metro_service_1.loadMetroConfig)(cliConfig, cliOptions);
14
- const bundleConfigs = (0, kit_config_1.getCliPlatformBundleConfigs)(cliOptions.id, cliOptions.platform);
15
- (0, overrides_1.applyBundleConfigOverrides)(cliOptions, bundleConfigs, [
16
- ...overrides_1.overridableCommonBundleOptions,
14
+ const bundleConfigs = (0, kit_config_ts_1.getCliPlatformBundleConfigs)(cliOptions.id, cliOptions.platform);
15
+ (0, overrides_ts_1.applyBundleConfigOverrides)(cliOptions, bundleConfigs, [
16
+ ...overrides_ts_1.overridableCommonBundleOptions,
17
17
  "hermes",
18
18
  "treeShake",
19
19
  ]);
20
20
  for (const bundleConfig of bundleConfigs) {
21
- await (0, metro_1.metroBundle)(metroConfig, bundleConfig, cliOptions.dev, cliOptions.minify);
21
+ await (0, metro_ts_1.metroBundle)(metroConfig, bundleConfig, cliOptions.dev, cliOptions.minify);
22
22
  const { bundleOutput, hermes, sourcemapOutput } = bundleConfig;
23
23
  if (hermes) {
24
- (0, hermes_1.emitBytecode)(cliConfig, bundleOutput, sourcemapOutput, hermes === true ? {} : hermes);
24
+ (0, hermes_ts_1.emitBytecode)(cliConfig, bundleOutput, sourcemapOutput, hermes === true ? {} : hermes);
25
25
  }
26
26
  }
27
27
  }
@@ -30,11 +30,11 @@ exports.rnxBundleCommand = {
30
30
  description: "Bundle your JavaScript for offline use",
31
31
  func: rnxBundle,
32
32
  options: [
33
- ...cliOptions_1.commonBundleCommandOptions,
33
+ ...cliOptions_ts_1.commonBundleCommandOptions,
34
34
  {
35
35
  name: "--tree-shake [boolean]",
36
36
  description: "Enable tree shaking to remove unused code and reduce the bundle size",
37
- parse: parsers_1.asBoolean,
37
+ parse: parsers_ts_1.asBoolean,
38
38
  },
39
39
  ],
40
40
  };
package/lib/clean.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Config as CLIConfig } from "@react-native-community/cli-types";
2
- import { asResolvedPath } from "./helpers/parsers";
2
+ import { asResolvedPath } from "./helpers/parsers.ts";
3
3
  type Args = {
4
4
  include?: string;
5
5
  projectRoot?: string;
package/lib/clean.js CHANGED
@@ -44,7 +44,7 @@ const fs = __importStar(require("node:fs/promises"));
44
44
  const os = __importStar(require("node:os"));
45
45
  const path = __importStar(require("node:path"));
46
46
  const ora_1 = __importDefault(require("ora"));
47
- const parsers_1 = require("./helpers/parsers");
47
+ const parsers_ts_1 = require("./helpers/parsers.js");
48
48
  async function rnxClean(_argv, { root = process.cwd() }, cliOptions) {
49
49
  if (!(0, node_fs_1.existsSync)(root)) {
50
50
  throw new Error(`Invalid project root: ${root}`);
@@ -227,7 +227,7 @@ exports.rnxCleanCommand = {
227
227
  name: "--project-root <path>",
228
228
  description: "Root path to your React Native project",
229
229
  default: process.cwd(),
230
- parse: parsers_1.asResolvedPath,
230
+ parse: parsers_ts_1.asResolvedPath,
231
231
  },
232
232
  {
233
233
  name: "--verify-cache",
@@ -1,4 +1,4 @@
1
- import type { CliServerApi, CoreDevMiddleware } from "../serve/types";
1
+ import type { CliServerApi, CoreDevMiddleware } from "../serve/types.ts";
2
2
  export declare function requireExternal(module: "@react-native-community/cli-server-api", projectRoot: string, reactNativePath: string): CliServerApi;
3
3
  export declare function requireExternal(module: "@react-native/dev-middleware", projectRoot: string, reactNativePath: string): CoreDevMiddleware;
4
4
  //# sourceMappingURL=externals.d.ts.map
@@ -7,7 +7,7 @@ const metro_plugin_duplicates_checker_1 = require("@rnx-kit/metro-plugin-duplica
7
7
  const metro_plugin_typescript_1 = require("@rnx-kit/metro-plugin-typescript");
8
8
  const metro_serializer_1 = require("@rnx-kit/metro-serializer");
9
9
  const metro_serializer_esbuild_1 = require("@rnx-kit/metro-serializer-esbuild");
10
- const defaultPlugins_1 = require("../bundle/defaultPlugins");
10
+ const defaultPlugins_ts_1 = require("../bundle/defaultPlugins.js");
11
11
  function resolvePlugin(name) {
12
12
  try {
13
13
  return require.resolve(name);
@@ -99,7 +99,7 @@ function customizeMetroConfig(metroConfigReadonly, extraParams, print) {
99
99
  }
100
100
  }
101
101
  else {
102
- const plugins = extraParams.plugins || (0, defaultPlugins_1.getDefaultBundlerPlugins)().plugins;
102
+ const plugins = extraParams.plugins || (0, defaultPlugins_ts_1.getDefaultBundlerPlugins)().plugins;
103
103
  for (const entry of plugins) {
104
104
  const [module, options] = Array.isArray(entry)
105
105
  ? entry
package/lib/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import type { Command } from "@react-native-community/cli-types";
2
2
  import { writeThirdPartyNoticesCommand } from "@rnx-kit/third-party-notices";
3
- import { rnxBuild, rnxBuildCommand } from "./build";
4
- import { rnxBundle, rnxBundleCommand } from "./bundle";
5
- import { rnxClean, rnxCleanCommand } from "./clean";
6
- import { copyProjectAssets, rnxCopyAssetsCommand } from "./copy-assets";
7
- import { rnxRamBundle, rnxRamBundleCommand } from "./ram-bundle";
8
- import { rnxRun, rnxRunCommand } from "./run";
9
- import { rnxStart, rnxStartCommand } from "./start";
10
- import { rnxTest, rnxTestCommand } from "./test";
3
+ import { rnxBuild, rnxBuildCommand } from "./build.ts";
4
+ import { rnxBundle, rnxBundleCommand } from "./bundle.ts";
5
+ import { rnxClean, rnxCleanCommand } from "./clean.ts";
6
+ import { copyProjectAssets, rnxCopyAssetsCommand } from "./copy-assets.ts";
7
+ import { rnxRamBundle, rnxRamBundleCommand } from "./ram-bundle.ts";
8
+ import { rnxRun, rnxRunCommand } from "./run.ts";
9
+ import { rnxStart, rnxStartCommand } from "./start.ts";
10
+ import { rnxTest, rnxTestCommand } from "./test.ts";
11
11
  export { copyProjectAssets, rnxBuild, rnxBuildCommand, rnxBundle, rnxBundleCommand, rnxClean, rnxCleanCommand, rnxCopyAssetsCommand, rnxRamBundle, rnxRamBundleCommand, rnxRun, rnxRunCommand, rnxStart, rnxStartCommand, rnxTest, rnxTestCommand, };
12
12
  export declare const reactNativeConfig: {
13
13
  commands: Command<false>[];
package/lib/index.js CHANGED
@@ -3,42 +3,42 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rnxWriteThirdPartyNoticesCommand = exports.rnxWriteThirdPartyNotices = exports.rnxAlignDepsCommand = exports.rnxAlignDeps = exports.reactNativeConfig = exports.rnxTestCommand = exports.rnxTest = exports.rnxStartCommand = exports.rnxStart = exports.rnxRunCommand = exports.rnxRun = exports.rnxRamBundleCommand = exports.rnxRamBundle = exports.rnxCopyAssetsCommand = exports.rnxCleanCommand = exports.rnxClean = exports.rnxBundleCommand = exports.rnxBundle = exports.rnxBuildCommand = exports.rnxBuild = exports.copyProjectAssets = void 0;
4
4
  const align_deps_1 = require("@rnx-kit/align-deps");
5
5
  const third_party_notices_1 = require("@rnx-kit/third-party-notices");
6
- const build_1 = require("./build");
7
- Object.defineProperty(exports, "rnxBuild", { enumerable: true, get: function () { return build_1.rnxBuild; } });
8
- Object.defineProperty(exports, "rnxBuildCommand", { enumerable: true, get: function () { return build_1.rnxBuildCommand; } });
9
- const bundle_1 = require("./bundle");
10
- Object.defineProperty(exports, "rnxBundle", { enumerable: true, get: function () { return bundle_1.rnxBundle; } });
11
- Object.defineProperty(exports, "rnxBundleCommand", { enumerable: true, get: function () { return bundle_1.rnxBundleCommand; } });
12
- const clean_1 = require("./clean");
13
- Object.defineProperty(exports, "rnxClean", { enumerable: true, get: function () { return clean_1.rnxClean; } });
14
- Object.defineProperty(exports, "rnxCleanCommand", { enumerable: true, get: function () { return clean_1.rnxCleanCommand; } });
15
- const copy_assets_1 = require("./copy-assets");
16
- Object.defineProperty(exports, "copyProjectAssets", { enumerable: true, get: function () { return copy_assets_1.copyProjectAssets; } });
17
- Object.defineProperty(exports, "rnxCopyAssetsCommand", { enumerable: true, get: function () { return copy_assets_1.rnxCopyAssetsCommand; } });
18
- const ram_bundle_1 = require("./ram-bundle");
19
- Object.defineProperty(exports, "rnxRamBundle", { enumerable: true, get: function () { return ram_bundle_1.rnxRamBundle; } });
20
- Object.defineProperty(exports, "rnxRamBundleCommand", { enumerable: true, get: function () { return ram_bundle_1.rnxRamBundleCommand; } });
21
- const run_1 = require("./run");
22
- Object.defineProperty(exports, "rnxRun", { enumerable: true, get: function () { return run_1.rnxRun; } });
23
- Object.defineProperty(exports, "rnxRunCommand", { enumerable: true, get: function () { return run_1.rnxRunCommand; } });
24
- const start_1 = require("./start");
25
- Object.defineProperty(exports, "rnxStart", { enumerable: true, get: function () { return start_1.rnxStart; } });
26
- Object.defineProperty(exports, "rnxStartCommand", { enumerable: true, get: function () { return start_1.rnxStartCommand; } });
27
- const test_1 = require("./test");
28
- Object.defineProperty(exports, "rnxTest", { enumerable: true, get: function () { return test_1.rnxTest; } });
29
- Object.defineProperty(exports, "rnxTestCommand", { enumerable: true, get: function () { return test_1.rnxTestCommand; } });
6
+ const build_ts_1 = require("./build.js");
7
+ Object.defineProperty(exports, "rnxBuild", { enumerable: true, get: function () { return build_ts_1.rnxBuild; } });
8
+ Object.defineProperty(exports, "rnxBuildCommand", { enumerable: true, get: function () { return build_ts_1.rnxBuildCommand; } });
9
+ const bundle_ts_1 = require("./bundle.js");
10
+ Object.defineProperty(exports, "rnxBundle", { enumerable: true, get: function () { return bundle_ts_1.rnxBundle; } });
11
+ Object.defineProperty(exports, "rnxBundleCommand", { enumerable: true, get: function () { return bundle_ts_1.rnxBundleCommand; } });
12
+ const clean_ts_1 = require("./clean.js");
13
+ Object.defineProperty(exports, "rnxClean", { enumerable: true, get: function () { return clean_ts_1.rnxClean; } });
14
+ Object.defineProperty(exports, "rnxCleanCommand", { enumerable: true, get: function () { return clean_ts_1.rnxCleanCommand; } });
15
+ const copy_assets_ts_1 = require("./copy-assets.js");
16
+ Object.defineProperty(exports, "copyProjectAssets", { enumerable: true, get: function () { return copy_assets_ts_1.copyProjectAssets; } });
17
+ Object.defineProperty(exports, "rnxCopyAssetsCommand", { enumerable: true, get: function () { return copy_assets_ts_1.rnxCopyAssetsCommand; } });
18
+ const ram_bundle_ts_1 = require("./ram-bundle.js");
19
+ Object.defineProperty(exports, "rnxRamBundle", { enumerable: true, get: function () { return ram_bundle_ts_1.rnxRamBundle; } });
20
+ Object.defineProperty(exports, "rnxRamBundleCommand", { enumerable: true, get: function () { return ram_bundle_ts_1.rnxRamBundleCommand; } });
21
+ const run_ts_1 = require("./run.js");
22
+ Object.defineProperty(exports, "rnxRun", { enumerable: true, get: function () { return run_ts_1.rnxRun; } });
23
+ Object.defineProperty(exports, "rnxRunCommand", { enumerable: true, get: function () { return run_ts_1.rnxRunCommand; } });
24
+ const start_ts_1 = require("./start.js");
25
+ Object.defineProperty(exports, "rnxStart", { enumerable: true, get: function () { return start_ts_1.rnxStart; } });
26
+ Object.defineProperty(exports, "rnxStartCommand", { enumerable: true, get: function () { return start_ts_1.rnxStartCommand; } });
27
+ const test_ts_1 = require("./test.js");
28
+ Object.defineProperty(exports, "rnxTest", { enumerable: true, get: function () { return test_ts_1.rnxTest; } });
29
+ Object.defineProperty(exports, "rnxTestCommand", { enumerable: true, get: function () { return test_ts_1.rnxTestCommand; } });
30
30
  exports.reactNativeConfig = {
31
31
  commands: [
32
- bundle_1.rnxBundleCommand,
33
- ram_bundle_1.rnxRamBundleCommand,
34
- start_1.rnxStartCommand,
35
- build_1.rnxBuildCommand,
36
- run_1.rnxRunCommand,
37
- copy_assets_1.rnxCopyAssetsCommand,
32
+ bundle_ts_1.rnxBundleCommand,
33
+ ram_bundle_ts_1.rnxRamBundleCommand,
34
+ start_ts_1.rnxStartCommand,
35
+ build_ts_1.rnxBuildCommand,
36
+ run_ts_1.rnxRunCommand,
37
+ copy_assets_ts_1.rnxCopyAssetsCommand,
38
38
  align_deps_1.alignDepsCommand,
39
- test_1.rnxTestCommand,
39
+ test_ts_1.rnxTestCommand,
40
40
  third_party_notices_1.writeThirdPartyNoticesCommand,
41
- clean_1.rnxCleanCommand,
41
+ clean_ts_1.rnxCleanCommand,
42
42
  ],
43
43
  };
44
44
  // @rnx-kit/align-deps
@@ -1,5 +1,5 @@
1
1
  import type { Config as CLIConfig } from "@react-native-community/cli-types";
2
- import type { CLICommonBundleOptions } from "./bundle/types";
2
+ import type { CLICommonBundleOptions } from "./bundle/types.ts";
3
3
  type CLIRamBundleOptions = CLICommonBundleOptions & {
4
4
  indexedRamBundle?: boolean;
5
5
  };
@@ -22,11 +22,11 @@ export declare const rnxRamBundleCommand: {
22
22
  name: string;
23
23
  description: string;
24
24
  default: boolean;
25
- parse: typeof import("./helpers/parsers").asBoolean;
25
+ parse: typeof import("./helpers/parsers.ts").asBoolean;
26
26
  } | {
27
27
  name: string;
28
28
  description: string;
29
- parse: typeof import("./helpers/parsers").asBoolean;
29
+ parse: typeof import("./helpers/parsers.ts").asBoolean;
30
30
  default?: undefined;
31
31
  } | {
32
32
  name: string;
@@ -36,12 +36,12 @@ export declare const rnxRamBundleCommand: {
36
36
  } | {
37
37
  name: string;
38
38
  description: string;
39
- parse: typeof import("./helpers/parsers").asNumber;
39
+ parse: typeof import("./helpers/parsers.ts").asNumber;
40
40
  default?: undefined;
41
41
  } | {
42
42
  name: string;
43
43
  description: string;
44
- parse: typeof import("./helpers/parsers").asTransformProfile;
44
+ parse: typeof import("./helpers/parsers.ts").asTransformProfile;
45
45
  default?: undefined;
46
46
  })[];
47
47
  };
package/lib/ram-bundle.js CHANGED
@@ -4,10 +4,10 @@ exports.rnxRamBundleCommand = void 0;
4
4
  exports.rnxRamBundle = rnxRamBundle;
5
5
  const console_1 = require("@rnx-kit/console");
6
6
  const metro_service_1 = require("@rnx-kit/metro-service");
7
- const cliOptions_1 = require("./bundle/cliOptions");
8
- const kit_config_1 = require("./bundle/kit-config");
9
- const metro_1 = require("./bundle/metro");
10
- const overrides_1 = require("./bundle/overrides");
7
+ const cliOptions_ts_1 = require("./bundle/cliOptions.js");
8
+ const kit_config_ts_1 = require("./bundle/kit-config.js");
9
+ const metro_ts_1 = require("./bundle/metro.js");
10
+ const overrides_ts_1 = require("./bundle/overrides.js");
11
11
  function disableTreeShaking(configs) {
12
12
  const wasEnabled = configs.reduce((modified, config) => {
13
13
  if (config.treeShake) {
@@ -22,14 +22,14 @@ function disableTreeShaking(configs) {
22
22
  }
23
23
  async function rnxRamBundle(_argv, cliConfig, cliOptions) {
24
24
  const metroConfig = await (0, metro_service_1.loadMetroConfig)(cliConfig, cliOptions);
25
- const bundleConfigs = (0, kit_config_1.getCliPlatformBundleConfigs)(cliOptions.id, cliOptions.platform);
26
- (0, overrides_1.applyBundleConfigOverrides)(cliOptions, bundleConfigs, [
27
- ...overrides_1.overridableCommonBundleOptions,
25
+ const bundleConfigs = (0, kit_config_ts_1.getCliPlatformBundleConfigs)(cliOptions.id, cliOptions.platform);
26
+ (0, overrides_ts_1.applyBundleConfigOverrides)(cliOptions, bundleConfigs, [
27
+ ...overrides_ts_1.overridableCommonBundleOptions,
28
28
  "indexedRamBundle",
29
29
  ]);
30
30
  disableTreeShaking(bundleConfigs);
31
31
  for (const bundleConfig of bundleConfigs) {
32
- await (0, metro_1.metroBundle)(metroConfig, bundleConfig, cliOptions.dev, cliOptions.minify, metro_service_1.ramBundle);
32
+ await (0, metro_ts_1.metroBundle)(metroConfig, bundleConfig, cliOptions.dev, cliOptions.minify, metro_service_1.ramBundle);
33
33
  }
34
34
  }
35
35
  exports.rnxRamBundleCommand = {
@@ -37,7 +37,7 @@ exports.rnxRamBundleCommand = {
37
37
  description: "[Deprecated] Bundle your JavaScript in the RAM bundle format for offline use",
38
38
  func: rnxRamBundle,
39
39
  options: [
40
- ...cliOptions_1.commonBundleCommandOptions,
40
+ ...cliOptions_ts_1.commonBundleCommandOptions,
41
41
  {
42
42
  name: "--indexed-ram-bundle",
43
43
  description: 'Force the "Indexed RAM" bundle file format, even when targeting Android',
@@ -1,6 +1,6 @@
1
1
  import type { MetroTerminal } from "@rnx-kit/metro-service";
2
2
  import type { Server } from "node:http";
3
- import type { DevServerMiddleware } from "./types";
3
+ import type { DevServerMiddleware } from "./types.ts";
4
4
  type HttpServer = Server & {
5
5
  httpServer?: Server;
6
6
  };
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getKitServerConfig = getKitServerConfig;
4
4
  const config_1 = require("@rnx-kit/config");
5
5
  const properties_1 = require("@rnx-kit/tools-language/properties");
6
- const defaultPlugins_1 = require("../bundle/defaultPlugins");
6
+ const defaultPlugins_ts_1 = require("../bundle/defaultPlugins.js");
7
7
  /**
8
8
  * Get the server configuration from the rnx-kit configuration. Apply any overrides.
9
9
  *
@@ -25,7 +25,7 @@ function getKitServerConfig(overrides) {
25
25
  }
26
26
  }
27
27
  return {
28
- ...(0, defaultPlugins_1.getDefaultBundlerPlugins)(),
28
+ ...(0, defaultPlugins_ts_1.getDefaultBundlerPlugins)(),
29
29
  ...serverConfig,
30
30
  treeShake: false, // tree shaking does not work with the bundle server
31
31
  ...(0, properties_1.pickValues)(overrides, ["projectRoot", "assetPlugins", "sourceExts"]),
package/lib/start.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Config } from "@react-native-community/cli-types";
2
- import { asNumber, asResolvedPath } from "./helpers/parsers";
3
- import type { StartCommandArgs } from "./serve/types";
2
+ import { asNumber, asResolvedPath } from "./helpers/parsers.ts";
3
+ import type { StartCommandArgs } from "./serve/types.ts";
4
4
  export declare function rnxStart(_argv: string[], ctx: Config, args: StartCommandArgs): Promise<void>;
5
5
  export declare const rnxStartCommand: {
6
6
  name: string;
package/lib/start.js CHANGED
@@ -38,18 +38,18 @@ exports.rnxStart = rnxStart;
38
38
  const logger = __importStar(require("@rnx-kit/console"));
39
39
  const metro_service_1 = require("@rnx-kit/metro-service");
40
40
  const path = __importStar(require("node:path"));
41
- const externals_1 = require("./helpers/externals");
42
- const metro_config_1 = require("./helpers/metro-config");
43
- const parsers_1 = require("./helpers/parsers");
44
- const help_1 = require("./serve/help");
45
- const keyboard_1 = require("./serve/keyboard");
46
- const kit_config_1 = require("./serve/kit-config");
41
+ const externals_ts_1 = require("./helpers/externals.js");
42
+ const metro_config_ts_1 = require("./helpers/metro-config.js");
43
+ const parsers_ts_1 = require("./helpers/parsers.js");
44
+ const help_ts_1 = require("./serve/help.js");
45
+ const keyboard_ts_1 = require("./serve/keyboard.js");
46
+ const kit_config_ts_1 = require("./serve/kit-config.js");
47
47
  function hasAttachToServerFunction(devServer) {
48
48
  return "attachToServer" in devServer;
49
49
  }
50
50
  async function rnxStart(_argv, ctx, args) {
51
- const serverConfig = (0, kit_config_1.getKitServerConfig)(args);
52
- const { createDevServerMiddleware, indexPageMiddleware } = (0, externals_1.requireExternal)("@react-native-community/cli-server-api", ctx.root, ctx.reactNativePath);
51
+ const serverConfig = (0, kit_config_ts_1.getKitServerConfig)(args);
52
+ const { createDevServerMiddleware, indexPageMiddleware } = (0, externals_ts_1.requireExternal)("@react-native-community/cli-server-api", ctx.root, ctx.reactNativePath);
53
53
  // interactive mode requires raw access to stdin
54
54
  let interactive = args.interactive;
55
55
  if (interactive) {
@@ -82,7 +82,7 @@ async function rnxStart(_argv, ctx, args) {
82
82
  const terminal = (0, metro_service_1.makeTerminal)(projectRoot);
83
83
  // customize the metro config to include plugins, presets, etc.
84
84
  const log = (message) => terminal.log(message);
85
- (0, metro_config_1.customizeMetroConfig)(metroConfig, serverConfig, log);
85
+ (0, metro_config_ts_1.customizeMetroConfig)(metroConfig, serverConfig, log);
86
86
  const { port } = metroConfig.server;
87
87
  const scheme = args.https === true ? "https" : "http";
88
88
  const serverStatus = await (0, metro_service_1.isDevServerRunning)(scheme, args.host, port, projectRoot);
@@ -104,7 +104,7 @@ async function rnxStart(_argv, ctx, args) {
104
104
  const coreDevMiddleware = (() => {
105
105
  try {
106
106
  // https://github.com/facebook/react-native/blob/7888338295476f4d4f00733309e54b8d22318e1e/packages/community-cli-plugin/src/commands/start/runServer.js#L115
107
- const { createDevMiddleware } = (0, externals_1.requireExternal)("@react-native/dev-middleware", ctx.root, ctx.reactNativePath);
107
+ const { createDevMiddleware } = (0, externals_ts_1.requireExternal)("@react-native/dev-middleware", ctx.root, ctx.reactNativePath);
108
108
  return createDevMiddleware({
109
109
  projectRoot,
110
110
  serverBaseUrl: devServerUrl,
@@ -141,7 +141,7 @@ async function rnxStart(_argv, ctx, args) {
141
141
  // bind our `reportEvent` delegate to the Metro server
142
142
  reportEventDelegate = devServer.eventsSocketEndpoint.reportEvent;
143
143
  }
144
- const help = (0, help_1.makeHelp)(terminal, { hasDebugger: Boolean(coreDevMiddleware) });
144
+ const help = (0, help_ts_1.makeHelp)(terminal, { hasDebugger: Boolean(coreDevMiddleware) });
145
145
  const terminalReporter = (0, metro_service_1.makeReporter)(args.customLogReporterPath, terminal, projectRoot);
146
146
  // @ts-expect-error We want to override `reporter`
147
147
  metroConfig.reporter = {
@@ -213,7 +213,7 @@ async function rnxStart(_argv, ctx, args) {
213
213
  // in interactive mode, listen for keyboard events from stdin and bind
214
214
  // them to specific actions.
215
215
  if (interactive) {
216
- (0, keyboard_1.attachKeyHandlers)(serverInstance, {
216
+ (0, keyboard_ts_1.attachKeyHandlers)(serverInstance, {
217
217
  devServerUrl,
218
218
  help,
219
219
  messageSocketEndpoint,
@@ -233,7 +233,7 @@ exports.rnxStartCommand = {
233
233
  {
234
234
  name: "--port <number>",
235
235
  description: "Host port to use when listening for incoming server requests",
236
- parse: parsers_1.asNumber,
236
+ parse: parsers_ts_1.asNumber,
237
237
  default: 8081,
238
238
  },
239
239
  {
@@ -244,27 +244,27 @@ exports.rnxStartCommand = {
244
244
  {
245
245
  name: "--project-root <path>",
246
246
  description: "Path to the root of your react-native project; the bundle server uses this path to resolve all web requests",
247
- parse: parsers_1.asResolvedPath,
247
+ parse: parsers_ts_1.asResolvedPath,
248
248
  },
249
249
  {
250
250
  name: "--watch-folders <paths>",
251
251
  description: "Additional folders which will be added to the watched files list, comma-separated; by default, Metro watches all project files",
252
- parse: (val) => (0, parsers_1.asStringArray)(val).map(parsers_1.asResolvedPath),
252
+ parse: (val) => (0, parsers_ts_1.asStringArray)(val).map(parsers_ts_1.asResolvedPath),
253
253
  },
254
254
  {
255
255
  name: "--asset-plugins <list>",
256
256
  description: "Additional asset plugins to be used by Metro's Babel transformer; comma-separated list containing plugin module names or absolute paths to plugin packages",
257
- parse: parsers_1.asStringArray,
257
+ parse: parsers_ts_1.asStringArray,
258
258
  },
259
259
  {
260
260
  name: "--source-exts <list>",
261
261
  description: "Additional source file extensions to include when generating bundles; comma-separated list, excluding the leading dot",
262
- parse: parsers_1.asStringArray,
262
+ parse: parsers_ts_1.asStringArray,
263
263
  },
264
264
  {
265
265
  name: "--max-workers <number>",
266
266
  description: "Specifies the maximum number of parallel worker threads to use for transforming files; defaults to the number of cores available on your machine",
267
- parse: parsers_1.asNumber,
267
+ parse: parsers_ts_1.asNumber,
268
268
  },
269
269
  {
270
270
  name: "--reset-cache",
@@ -289,7 +289,7 @@ exports.rnxStartCommand = {
289
289
  {
290
290
  name: "--config <string>",
291
291
  description: "Path to the Metro configuration file",
292
- parse: parsers_1.asResolvedPath,
292
+ parse: parsers_ts_1.asResolvedPath,
293
293
  },
294
294
  {
295
295
  name: "--no-interactive",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnx-kit/cli",
3
- "version": "0.18.16",
3
+ "version": "0.18.17",
4
4
  "description": "Command-line interface for working with kit packages in your repo",
5
5
  "homepage": "https://github.com/microsoft/rnx-kit/tree/main/packages/cli#readme",
6
6
  "license": "MIT",
@@ -45,17 +45,17 @@
45
45
  "@rnx-kit/console": "^2.0.0",
46
46
  "@rnx-kit/metro-plugin-cyclic-dependencies-detector": "^2.0.0",
47
47
  "@rnx-kit/metro-plugin-duplicates-checker": "^3.0.0",
48
- "@rnx-kit/metro-plugin-typescript": "^0.5.0",
48
+ "@rnx-kit/metro-plugin-typescript": "^0.5.3",
49
49
  "@rnx-kit/metro-serializer": "^2.0.0",
50
- "@rnx-kit/metro-serializer-esbuild": "^0.2.7",
51
- "@rnx-kit/metro-service": "^4.0.2",
50
+ "@rnx-kit/metro-serializer-esbuild": "^0.2.8",
51
+ "@rnx-kit/metro-service": "^4.1.3",
52
52
  "@rnx-kit/third-party-notices": "^2.0.0",
53
- "@rnx-kit/tools-android": "^0.2.1",
54
- "@rnx-kit/tools-apple": "^0.2.1",
53
+ "@rnx-kit/tools-android": "^0.2.2",
54
+ "@rnx-kit/tools-apple": "^0.2.2",
55
55
  "@rnx-kit/tools-filesystem": "^0.1.0",
56
- "@rnx-kit/tools-language": "^3.0.0",
57
- "@rnx-kit/tools-node": "^3.0.0",
58
- "@rnx-kit/tools-react-native": "^2.0.3",
56
+ "@rnx-kit/tools-language": "^3.0.1",
57
+ "@rnx-kit/tools-node": "^3.0.3",
58
+ "@rnx-kit/tools-react-native": "^2.3.2",
59
59
  "commander": "^11.1.0",
60
60
  "ora": "^5.4.1",
61
61
  "qrcode": "^1.5.0"
@@ -82,7 +82,7 @@
82
82
  "@rnx-kit/scripts": "*",
83
83
  "@rnx-kit/tsconfig": "*",
84
84
  "@types/connect": "^3.4.36",
85
- "@types/node": "^22.0.0",
85
+ "@types/node": "^24.0.0",
86
86
  "@types/qrcode": "^1.4.2",
87
87
  "markdown-table": "^3.0.0",
88
88
  "metro": "^0.83.1",
@@ -90,7 +90,6 @@
90
90
  "metro-config": "^0.83.1",
91
91
  "react": "19.1.0",
92
92
  "react-native": "^0.81.0",
93
- "tsx": "^4.15.0",
94
93
  "type-fest": "^4.0.0"
95
94
  },
96
95
  "engines": {