nx 21.2.1 → 21.2.3

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.
Files changed (67) hide show
  1. package/package.json +11 -11
  2. package/src/adapter/decorate-cli.js +2 -1
  3. package/src/adapter/ngcli-adapter.d.ts +11 -0
  4. package/src/adapter/ngcli-adapter.js +101 -7
  5. package/src/command-line/affected/affected.js +1 -1
  6. package/src/command-line/format/command-object.js +12 -6
  7. package/src/command-line/init/implementation/add-nx-to-monorepo.js +1 -1
  8. package/src/command-line/init/implementation/add-nx-to-nest.js +1 -1
  9. package/src/command-line/init/implementation/add-nx-to-npm-repo.js +1 -1
  10. package/src/command-line/init/implementation/angular/index.js +1 -1
  11. package/src/command-line/init/implementation/angular/legacy-angular-versions.js +1 -1
  12. package/src/command-line/init/implementation/utils.js +1 -1
  13. package/src/command-line/init/init-v2.js +1 -1
  14. package/src/command-line/migrate/migrate-ui-api.d.ts +20 -3
  15. package/src/command-line/migrate/migrate-ui-api.js +115 -12
  16. package/src/command-line/migrate/migrate.js +1 -1
  17. package/src/command-line/migrate/run-migration-process.js +85 -0
  18. package/src/command-line/{connect → nx-cloud/connect}/command-object.js +4 -4
  19. package/src/command-line/{connect → nx-cloud/connect}/connect-to-nx-cloud.d.ts +4 -4
  20. package/src/command-line/{connect → nx-cloud/connect}/connect-to-nx-cloud.js +10 -10
  21. package/src/command-line/{connect → nx-cloud/connect}/view-logs.js +6 -6
  22. package/src/command-line/nx-cloud/fix-ci/command-object.d.ts +2 -0
  23. package/src/command-line/nx-cloud/fix-ci/command-object.js +12 -0
  24. package/src/command-line/nx-cloud/fix-ci/fix-ci.d.ts +4 -0
  25. package/src/command-line/nx-cloud/fix-ci/fix-ci.js +7 -0
  26. package/src/command-line/{login → nx-cloud/login}/command-object.js +1 -1
  27. package/src/command-line/nx-cloud/login/login.js +10 -0
  28. package/src/command-line/{logout → nx-cloud/logout}/command-object.js +1 -1
  29. package/src/command-line/nx-cloud/logout/logout.js +7 -0
  30. package/src/command-line/nx-cloud/record/command-object.d.ts +2 -0
  31. package/src/command-line/nx-cloud/record/command-object.js +12 -0
  32. package/src/command-line/nx-cloud/record/record.d.ts +4 -0
  33. package/src/command-line/nx-cloud/record/record.js +7 -0
  34. package/src/command-line/nx-cloud/start-ci-run/command-object.d.ts +2 -0
  35. package/src/command-line/nx-cloud/start-ci-run/command-object.js +12 -0
  36. package/src/command-line/nx-cloud/start-ci-run/start-ci-run.d.ts +4 -0
  37. package/src/command-line/nx-cloud/start-ci-run/start-ci-run.js +7 -0
  38. package/src/command-line/nx-cloud/utils.d.ts +1 -0
  39. package/src/command-line/{logout/logout.js → nx-cloud/utils.js} +4 -4
  40. package/src/command-line/nx-commands.js +12 -6
  41. package/src/command-line/run/run-one.js +1 -1
  42. package/src/command-line/run-many/run-many.js +1 -1
  43. package/src/command-line/yargs-utils/shared-options.d.ts +1 -0
  44. package/src/command-line/yargs-utils/shared-options.js +5 -0
  45. package/src/core/graph/main.js +1 -1
  46. package/src/core/graph/styles.css +1 -1
  47. package/src/daemon/server/server.js +7 -1
  48. package/src/native/nx.wasm32-wasi.wasm +0 -0
  49. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +1 -1
  50. package/src/plugins/package-json/create-nodes.js +4 -1
  51. package/src/tasks-runner/forked-process-task-runner.js +4 -0
  52. package/src/tasks-runner/is-tui-enabled.js +8 -0
  53. package/src/tasks-runner/running-tasks/node-child-process.d.ts +2 -0
  54. package/src/tasks-runner/running-tasks/node-child-process.js +16 -2
  55. package/src/tasks-runner/task-orchestrator.js +7 -1
  56. package/src/utils/command-line-utils.d.ts +1 -0
  57. package/src/utils/package-json.js +1 -1
  58. package/src/utils/project-graph-utils.d.ts +6 -1
  59. package/src/utils/project-graph-utils.js +11 -6
  60. package/src/utils/workspace-context.js +1 -1
  61. package/src/command-line/login/login.js +0 -19
  62. /package/src/command-line/{connect → nx-cloud/connect}/command-object.d.ts +0 -0
  63. /package/src/command-line/{connect → nx-cloud/connect}/view-logs.d.ts +0 -0
  64. /package/src/command-line/{login → nx-cloud/login}/command-object.d.ts +0 -0
  65. /package/src/command-line/{login → nx-cloud/login}/login.d.ts +0 -0
  66. /package/src/command-line/{logout → nx-cloud/logout}/command-object.d.ts +0 -0
  67. /package/src/command-line/{logout → nx-cloud/logout}/logout.d.ts +0 -0
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.yargsViewLogsCommand = exports.yargsConnectCommand = void 0;
4
- const documentation_1 = require("../yargs-utils/documentation");
5
- const versions_1 = require("../../utils/versions");
6
- const shared_options_1 = require("../yargs-utils/shared-options");
4
+ const documentation_1 = require("../../yargs-utils/documentation");
5
+ const versions_1 = require("../../../utils/versions");
6
+ const shared_options_1 = require("../../yargs-utils/shared-options");
7
7
  exports.yargsConnectCommand = {
8
8
  command: 'connect',
9
9
  aliases: ['connect-to-nx-cloud'],
@@ -11,7 +11,7 @@ exports.yargsConnectCommand = {
11
11
  builder: (yargs) => (0, documentation_1.linkToNxDevAndExamples)(withConnectOptions(yargs), 'connect-to-nx-cloud'),
12
12
  handler: async (args) => {
13
13
  await (await Promise.resolve().then(() => require('./connect-to-nx-cloud'))).connectToNxCloudCommand(args);
14
- await (await Promise.resolve().then(() => require('../../utils/ab-testing'))).recordStat({
14
+ await (await Promise.resolve().then(() => require('../../../utils/ab-testing'))).recordStat({
15
15
  command: 'connect',
16
16
  nxVersion: versions_1.nxVersion,
17
17
  useCloud: true,
@@ -1,7 +1,7 @@
1
- import { ConnectToNxCloudOptions } from '../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud';
2
- import { NxJsonConfiguration } from '../../config/nx-json';
3
- import { NxArgs } from '../../utils/command-line-utils';
4
- import { MessageKey } from '../../utils/ab-testing';
1
+ import { ConnectToNxCloudOptions } from '../../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud';
2
+ import { NxJsonConfiguration } from '../../../config/nx-json';
3
+ import { NxArgs } from '../../../utils/command-line-utils';
4
+ import { MessageKey } from '../../../utils/ab-testing';
5
5
  export declare function onlyDefaultRunnerIsUsed(nxJson: NxJsonConfiguration): boolean;
6
6
  export declare function connectToNxCloudIfExplicitlyAsked(opts: NxArgs): Promise<void>;
7
7
  export declare function connectWorkspaceToCloud(options: ConnectToNxCloudOptions, directory?: string): Promise<string>;
@@ -6,16 +6,16 @@ exports.connectWorkspaceToCloud = connectWorkspaceToCloud;
6
6
  exports.connectToNxCloudCommand = connectToNxCloudCommand;
7
7
  exports.connectExistingRepoToNxCloudPrompt = connectExistingRepoToNxCloudPrompt;
8
8
  exports.connectToNxCloudWithPrompt = connectToNxCloudWithPrompt;
9
- const output_1 = require("../../utils/output");
10
- const configuration_1 = require("../../config/configuration");
11
- const tree_1 = require("../../generators/tree");
12
- const connect_to_nx_cloud_1 = require("../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
13
- const url_shorten_1 = require("../../nx-cloud/utilities/url-shorten");
14
- const nx_cloud_utils_1 = require("../../utils/nx-cloud-utils");
15
- const child_process_1 = require("../../utils/child-process");
16
- const ab_testing_1 = require("../../utils/ab-testing");
17
- const versions_1 = require("../../utils/versions");
18
- const workspace_root_1 = require("../../utils/workspace-root");
9
+ const output_1 = require("../../../utils/output");
10
+ const configuration_1 = require("../../../config/configuration");
11
+ const tree_1 = require("../../../generators/tree");
12
+ const connect_to_nx_cloud_1 = require("../../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
13
+ const url_shorten_1 = require("../../../nx-cloud/utilities/url-shorten");
14
+ const nx_cloud_utils_1 = require("../../../utils/nx-cloud-utils");
15
+ const child_process_1 = require("../../../utils/child-process");
16
+ const ab_testing_1 = require("../../../utils/ab-testing");
17
+ const versions_1 = require("../../../utils/versions");
18
+ const workspace_root_1 = require("../../../utils/workspace-root");
19
19
  const chalk = require("chalk");
20
20
  const ora = require("ora");
21
21
  const open = require("open");
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.viewLogs = viewLogs;
4
- const package_manager_1 = require("../../utils/package-manager");
4
+ const package_manager_1 = require("../../../utils/package-manager");
5
5
  const child_process_1 = require("child_process");
6
- const nx_cloud_utils_1 = require("../../utils/nx-cloud-utils");
7
- const output_1 = require("../../utils/output");
8
- const nx_json_1 = require("../../config/nx-json");
6
+ const nx_cloud_utils_1 = require("../../../utils/nx-cloud-utils");
7
+ const output_1 = require("../../../utils/output");
8
+ const nx_json_1 = require("../../../config/nx-json");
9
9
  const connect_to_nx_cloud_1 = require("./connect-to-nx-cloud");
10
- const connect_to_nx_cloud_2 = require("../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
11
- const url_shorten_1 = require("../../nx-cloud/utilities/url-shorten");
10
+ const connect_to_nx_cloud_2 = require("../../../nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
11
+ const url_shorten_1 = require("../../../nx-cloud/utilities/url-shorten");
12
12
  async function viewLogs() {
13
13
  const cloudUsed = (0, nx_cloud_utils_1.isNxCloudUsed)((0, nx_json_1.readNxJson)());
14
14
  if (cloudUsed) {
@@ -0,0 +1,2 @@
1
+ import { CommandModule } from 'yargs';
2
+ export declare const yargsFixCiCommand: CommandModule;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.yargsFixCiCommand = void 0;
4
+ const shared_options_1 = require("../../yargs-utils/shared-options");
5
+ exports.yargsFixCiCommand = {
6
+ command: 'fix-ci [options]',
7
+ describe: 'Fixes CI failures. This command is an alias for [`nx-cloud fix-ci`](/ci/reference/nx-cloud-cli#npx-nxcloud-fix-ci).',
8
+ builder: (yargs) => (0, shared_options_1.withVerbose)(yargs),
9
+ handler: async (args) => {
10
+ process.exit(await (await Promise.resolve().then(() => require('./fix-ci'))).fixCiHandler(args));
11
+ },
12
+ };
@@ -0,0 +1,4 @@
1
+ export interface FixCiArgs {
2
+ verbose?: boolean;
3
+ }
4
+ export declare function fixCiHandler(args: FixCiArgs): Promise<number>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fixCiHandler = fixCiHandler;
4
+ const utils_1 = require("../utils");
5
+ function fixCiHandler(args) {
6
+ return (0, utils_1.executeNxCloudCommand)('fix-ci', args.verbose);
7
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.yargsLoginCommand = void 0;
4
- const shared_options_1 = require("../../command-line/yargs-utils/shared-options");
4
+ const shared_options_1 = require("../../yargs-utils/shared-options");
5
5
  exports.yargsLoginCommand = {
6
6
  command: 'login [nxCloudUrl]',
7
7
  describe: 'Login to Nx Cloud. This command is an alias for [`nx-cloud login`](/ci/reference/nx-cloud-cli#npx-nxcloud-login).',
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loginHandler = loginHandler;
4
+ const utils_1 = require("../utils");
5
+ function loginHandler(args) {
6
+ if (args.nxCloudUrl) {
7
+ process.env.NX_CLOUD_API = args.nxCloudUrl;
8
+ }
9
+ return (0, utils_1.executeNxCloudCommand)('login', args.verbose);
10
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.yargsLogoutCommand = void 0;
4
- const shared_options_1 = require("../../command-line/yargs-utils/shared-options");
4
+ const shared_options_1 = require("../../yargs-utils/shared-options");
5
5
  exports.yargsLogoutCommand = {
6
6
  command: 'logout',
7
7
  describe: 'Logout from Nx Cloud. This command is an alias for [`nx-cloud logout`](/ci/reference/nx-cloud-cli#npx-nxcloud-logout).',
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logoutHandler = logoutHandler;
4
+ const utils_1 = require("../utils");
5
+ function logoutHandler(args) {
6
+ return (0, utils_1.executeNxCloudCommand)('logout', args.verbose);
7
+ }
@@ -0,0 +1,2 @@
1
+ import { CommandModule } from 'yargs';
2
+ export declare const yargsRecordCommand: CommandModule;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.yargsRecordCommand = void 0;
4
+ const shared_options_1 = require("../../yargs-utils/shared-options");
5
+ exports.yargsRecordCommand = {
6
+ command: 'record [options]',
7
+ describe: 'Records a command execution for distributed task execution. This command is an alias for [`nx-cloud record`](/ci/reference/nx-cloud-cli#npx-nxcloud-record).',
8
+ builder: (yargs) => (0, shared_options_1.withVerbose)(yargs),
9
+ handler: async (args) => {
10
+ process.exit(await (await Promise.resolve().then(() => require('./record'))).recordHandler(args));
11
+ },
12
+ };
@@ -0,0 +1,4 @@
1
+ export interface RecordArgs {
2
+ verbose?: boolean;
3
+ }
4
+ export declare function recordHandler(args: RecordArgs): Promise<number>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.recordHandler = recordHandler;
4
+ const utils_1 = require("../utils");
5
+ function recordHandler(args) {
6
+ return (0, utils_1.executeNxCloudCommand)('record', args.verbose);
7
+ }
@@ -0,0 +1,2 @@
1
+ import { CommandModule } from 'yargs';
2
+ export declare const yargsStartCiRunCommand: CommandModule;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.yargsStartCiRunCommand = void 0;
4
+ const shared_options_1 = require("../../yargs-utils/shared-options");
5
+ exports.yargsStartCiRunCommand = {
6
+ command: 'start-ci-run [options]',
7
+ describe: 'Starts a new CI run for distributed task execution. This command is an alias for [`nx-cloud start-ci-run`](/ci/reference/nx-cloud-cli#npx-nxcloud-start-ci-run).',
8
+ builder: (yargs) => (0, shared_options_1.withVerbose)(yargs),
9
+ handler: async (args) => {
10
+ process.exit(await (await Promise.resolve().then(() => require('./start-ci-run'))).startCiRunHandler(args));
11
+ },
12
+ };
@@ -0,0 +1,4 @@
1
+ export interface StartCiRunArgs {
2
+ verbose?: boolean;
3
+ }
4
+ export declare function startCiRunHandler(args: StartCiRunArgs): Promise<number>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startCiRunHandler = startCiRunHandler;
4
+ const utils_1 = require("../utils");
5
+ function startCiRunHandler(args) {
6
+ return (0, utils_1.executeNxCloudCommand)('start-ci-run', args.verbose);
7
+ }
@@ -0,0 +1 @@
1
+ export declare function executeNxCloudCommand(commandName: string, verbose?: boolean): Promise<number>;
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logoutHandler = logoutHandler;
3
+ exports.executeNxCloudCommand = executeNxCloudCommand;
4
4
  const update_manager_1 = require("../../nx-cloud/update-manager");
5
5
  const get_cloud_options_1 = require("../../nx-cloud/utilities/get-cloud-options");
6
6
  const handle_errors_1 = require("../../utils/handle-errors");
7
7
  const resolution_helpers_1 = require("../../nx-cloud/resolution-helpers");
8
- function logoutHandler(args) {
9
- return (0, handle_errors_1.handleErrors)(args.verbose, async () => {
8
+ async function executeNxCloudCommand(commandName, verbose) {
9
+ return (0, handle_errors_1.handleErrors)(verbose, async () => {
10
10
  const nxCloudClient = (await (0, update_manager_1.verifyOrUpdateNxCloudClient)((0, get_cloud_options_1.getCloudOptions)()))
11
11
  .nxCloudClient;
12
12
  const paths = (0, resolution_helpers_1.findAncestorNodeModules)(__dirname, []);
13
13
  nxCloudClient.configureLightClientRequire()(paths);
14
- await nxCloudClient.commands.logout();
14
+ await nxCloudClient.commands[commandName]();
15
15
  });
16
16
  }
@@ -5,7 +5,7 @@ const chalk = require("chalk");
5
5
  const yargs = require("yargs");
6
6
  const command_object_1 = require("./register/command-object");
7
7
  const command_object_2 = require("./affected/command-object");
8
- const command_object_3 = require("./connect/command-object");
8
+ const command_object_3 = require("./nx-cloud/connect/command-object");
9
9
  const command_object_4 = require("./daemon/command-object");
10
10
  const command_object_5 = require("./graph/command-object");
11
11
  const command_object_6 = require("./exec/command-object");
@@ -25,10 +25,13 @@ const command_object_19 = require("./watch/command-object");
25
25
  const command_object_20 = require("./reset/command-object");
26
26
  const command_object_21 = require("./release/command-object");
27
27
  const command_object_22 = require("./add/command-object");
28
- const command_object_23 = require("./login/command-object");
29
- const command_object_24 = require("./logout/command-object");
28
+ const command_object_23 = require("./nx-cloud/login/command-object");
29
+ const command_object_24 = require("./nx-cloud/logout/command-object");
30
+ const command_object_25 = require("./nx-cloud/record/command-object");
31
+ const command_object_26 = require("./nx-cloud/start-ci-run/command-object");
32
+ const command_object_27 = require("./nx-cloud/fix-ci/command-object");
30
33
  const command_objects_1 = require("./deprecated/command-objects");
31
- const command_object_25 = require("./sync/command-object");
34
+ const command_object_28 = require("./sync/command-object");
32
35
  const output_1 = require("../utils/output");
33
36
  // Ensure that the output takes up the available width of the terminal.
34
37
  yargs.wrap(yargs.terminalWidth());
@@ -75,13 +78,16 @@ exports.commandsObject = yargs
75
78
  .command(command_object_16.yargsRunCommand)
76
79
  .command(command_object_17.yargsRunManyCommand)
77
80
  .command(command_object_18.yargsShowCommand)
78
- .command(command_object_25.yargsSyncCommand)
79
- .command(command_object_25.yargsSyncCheckCommand)
81
+ .command(command_object_28.yargsSyncCommand)
82
+ .command(command_object_28.yargsSyncCheckCommand)
80
83
  .command(command_object_3.yargsViewLogsCommand)
81
84
  .command(command_object_19.yargsWatchCommand)
82
85
  .command(command_object_16.yargsNxInfixCommand)
83
86
  .command(command_object_23.yargsLoginCommand)
84
87
  .command(command_object_24.yargsLogoutCommand)
88
+ .command(command_object_25.yargsRecordCommand)
89
+ .command(command_object_26.yargsStartCiRunCommand)
90
+ .command(command_object_27.yargsFixCiCommand)
85
91
  .command(resolveConformanceCommandObject())
86
92
  .command(resolveConformanceCheckCommandObject())
87
93
  .scriptName('nx')
@@ -4,7 +4,7 @@ exports.runOne = runOne;
4
4
  exports.parseRunOneOptions = parseRunOneOptions;
5
5
  const run_command_1 = require("../../tasks-runner/run-command");
6
6
  const command_line_utils_1 = require("../../utils/command-line-utils");
7
- const connect_to_nx_cloud_1 = require("../connect/connect-to-nx-cloud");
7
+ const connect_to_nx_cloud_1 = require("../nx-cloud/connect/connect-to-nx-cloud");
8
8
  const project_graph_1 = require("../../project-graph/project-graph");
9
9
  const workspace_root_1 = require("../../utils/workspace-root");
10
10
  const split_target_1 = require("../../utils/split-target");
@@ -5,7 +5,7 @@ exports.projectsToRun = projectsToRun;
5
5
  const run_command_1 = require("../../tasks-runner/run-command");
6
6
  const command_line_utils_1 = require("../../utils/command-line-utils");
7
7
  const project_graph_utils_1 = require("../../utils/project-graph-utils");
8
- const connect_to_nx_cloud_1 = require("../connect/connect-to-nx-cloud");
8
+ const connect_to_nx_cloud_1 = require("../nx-cloud/connect/connect-to-nx-cloud");
9
9
  const perf_hooks_1 = require("perf_hooks");
10
10
  const project_graph_1 = require("../../project-graph/project-graph");
11
11
  const configuration_1 = require("../../config/configuration");
@@ -25,6 +25,7 @@ export interface RunOptions {
25
25
  }
26
26
  export interface TuiOptions {
27
27
  tuiAutoExit: boolean | number;
28
+ tui: boolean;
28
29
  }
29
30
  export declare function withTuiOptions<T>(yargs: Argv<T>): Argv<T & TuiOptions>;
30
31
  export declare function withRunOptions<T>(yargs: Argv<T>): Argv<T & RunOptions>;
@@ -38,6 +38,11 @@ function withTuiOptions(yargs) {
38
38
  describe: 'Whether or not to exit the TUI automatically after all tasks finish, and after how long. If set to `true`, the TUI will exit immediately. If set to `false` the TUI will not automatically exit. If set to a number, an interruptible countdown popup will be shown for that many seconds before the TUI exits.',
39
39
  type: 'string',
40
40
  coerce: (v) => coerceTuiAutoExit(v),
41
+ })
42
+ .option('tui', {
43
+ describe: 'Enable or disable the Nx Terminal UI.',
44
+ type: 'boolean',
45
+ conflicts: 'outputStyle',
41
46
  })
42
47
  .middleware((args) => {
43
48
  if (args.tuiAutoExit !== undefined) {