@mongosh/cli-repl 2.0.1 → 2.1.0

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/.depcheckrc CHANGED
@@ -11,5 +11,9 @@ ignores:
11
11
  - mocha
12
12
  - eslint-plugin-mocha
13
13
  - eslint-config-mongodb-js
14
+ # eagerly loaded startup snapshot dependencies
15
+ - '@mongodb-js/saslprep'
16
+ - socks
17
+ - emphasize
14
18
  ignore-patterns:
15
19
  - .eslintrc.js
package/AUTHORS CHANGED
@@ -16,3 +16,5 @@ Himanshu Singh <himanshu.singhs@outlook.in>
16
16
  Martin Rodriguez Reboredo <yakoyoku@gmail.com>
17
17
  Kevin Mas Ruiz <kevin.mas@hey.com>
18
18
  Hao <shaketbaby@gmail.com>
19
+ Hao <hao.hu@mongodb.com>
20
+ Bailey Pearson <bailey.pearson@mongodb.com>
package/README.md CHANGED
@@ -15,6 +15,7 @@ CLI interface for [MongoDB Shell][mongosh], an extension to Node.js REPL with Mo
15
15
  -f, --file [arg] Load the specified mongosh script
16
16
  --host [arg] Server to connect to
17
17
  --port [arg] Port to connect to
18
+ --build-info Show build information
18
19
  --version Show version information
19
20
  --quiet Silence output from the shell during the connection process
20
21
  --shell Run the shell after executing files
@@ -2,7 +2,7 @@
2
2
  /// <reference types="node" />
3
3
  import type { ReadLineOptions } from 'readline';
4
4
  import type { ReplOptions, REPLServer } from 'repl';
5
- import { start as originalStart } from 'repl';
5
+ import type { start as originalStart } from 'repl';
6
6
  export type OriginalEvalFunction = (input: string, context: any, filename: string) => Promise<any>;
7
7
  export type AsyncEvalFunction = (originalEval: OriginalEvalFunction, input: string, context: any, filename: string) => Promise<any>;
8
8
  export type AsyncREPLOptions = ReadLineOptions & Omit<ReplOptions, 'eval' | 'breakEvalOnSigint'> & {
package/lib/async-repl.js CHANGED
@@ -4,10 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.start = exports.evalFinish = exports.evalStart = void 0;
7
- const domain_1 = require("domain");
8
7
  const is_recoverable_error_1 = __importDefault(require("is-recoverable-error"));
9
- const readline_1 = require("readline");
10
- const repl_1 = require("repl");
11
8
  const util_1 = require("util");
12
9
  exports.evalStart = Symbol('async-repl:evalStart');
13
10
  exports.evalFinish = Symbol('async-repl:evalFinish');
@@ -28,11 +25,12 @@ function getPrompt(repl) {
28
25
  }
29
26
  function start(opts) {
30
27
  var _a;
28
+ const { Recoverable, start: originalStart } = require('repl');
31
29
  const { asyncEval, wrapCallbackError = (err) => err, onAsyncSigint } = opts;
32
30
  if (onAsyncSigint) {
33
31
  opts.breakEvalOnSigint = true;
34
32
  }
35
- const repl = ((_a = opts.start) !== null && _a !== void 0 ? _a : repl_1.start)(opts);
33
+ const repl = ((_a = opts.start) !== null && _a !== void 0 ? _a : originalStart)(opts);
36
34
  const originalEval = (0, util_1.promisify)(wrapPauseInput(repl.input, wrapNoSyncDomainError(repl.eval.bind(repl))));
37
35
  const setRawMode = (mode) => {
38
36
  const input = repl.input;
@@ -42,115 +40,120 @@ function start(opts) {
42
40
  }
43
41
  return wasInRawMode;
44
42
  };
45
- repl.eval = async (input, context, filename, callback) => {
46
- var _a, _b;
47
- let previouslyInRawMode;
48
- if (onAsyncSigint) {
49
- previouslyInRawMode = setRawMode(false);
50
- }
51
- let result;
52
- repl.emit(exports.evalStart, { input });
53
- const origPrompt = getPrompt(repl);
54
- readline_1.Interface.prototype.setPrompt.call(repl, '');
55
- try {
56
- let exitEventPending = false;
57
- const exitListener = () => {
58
- exitEventPending = true;
59
- };
60
- let previousExitListeners = [];
61
- let sigintListener = undefined;
62
- let replSigint = undefined;
63
- let processSigint = undefined;
43
+ repl.eval = (input, context, filename, callback) => {
44
+ async function _eval() {
45
+ var _a, _b;
46
+ let previouslyInRawMode;
47
+ if (onAsyncSigint) {
48
+ previouslyInRawMode = setRawMode(false);
49
+ }
50
+ let result;
51
+ repl.emit(exports.evalStart, { input });
52
+ const origPrompt = getPrompt(repl);
53
+ const { Interface } = require('readline');
54
+ Interface.prototype.setPrompt.call(repl, '');
64
55
  try {
65
- result = await new Promise((resolve, reject) => {
66
- if (onAsyncSigint) {
67
- sigintListener = async () => {
68
- let interruptHandled = false;
69
- try {
70
- interruptHandled = await onAsyncSigint();
71
- }
72
- catch (e) {
73
- }
74
- finally {
75
- reject(interruptHandled
76
- ? undefined
77
- : new Error('Asynchronous execution was interrupted by `SIGINT`'));
78
- }
79
- };
80
- replSigint = disableEvent(repl, 'SIGINT');
81
- processSigint = disableEvent(process, 'SIGINT');
82
- repl.once('SIGINT', sigintListener);
56
+ let exitEventPending = false;
57
+ const exitListener = () => {
58
+ exitEventPending = true;
59
+ };
60
+ let previousExitListeners = [];
61
+ let sigintListener = undefined;
62
+ let replSigint = undefined;
63
+ let processSigint = undefined;
64
+ try {
65
+ result = await new Promise((resolve, reject) => {
66
+ if (onAsyncSigint) {
67
+ sigintListener = async () => {
68
+ let interruptHandled = false;
69
+ try {
70
+ interruptHandled = await onAsyncSigint();
71
+ }
72
+ catch (e) {
73
+ }
74
+ finally {
75
+ reject(interruptHandled
76
+ ? undefined
77
+ : new Error('Asynchronous execution was interrupted by `SIGINT`'));
78
+ }
79
+ };
80
+ replSigint = disableEvent(repl, 'SIGINT');
81
+ processSigint = disableEvent(process, 'SIGINT');
82
+ repl.once('SIGINT', sigintListener);
83
+ }
84
+ previousExitListeners = repl.rawListeners('exit');
85
+ repl.removeAllListeners('exit');
86
+ repl.once('exit', exitListener);
87
+ const evalResult = asyncEval(originalEval, input, context, filename);
88
+ if (sigintListener !== undefined) {
89
+ process.once('SIGINT', sigintListener);
90
+ }
91
+ evalResult.then(resolve, reject);
92
+ });
93
+ }
94
+ finally {
95
+ if (typeof previouslyInRawMode !== 'undefined') {
96
+ setRawMode(previouslyInRawMode);
83
97
  }
84
- previousExitListeners = repl.rawListeners('exit');
85
- repl.removeAllListeners('exit');
86
- repl.once('exit', exitListener);
87
- const evalResult = asyncEval(originalEval, input, context, filename);
88
98
  if (sigintListener !== undefined) {
89
- process.once('SIGINT', sigintListener);
99
+ repl.removeListener('SIGINT', sigintListener);
100
+ process.removeListener('SIGINT', sigintListener);
101
+ }
102
+ (_a = replSigint === null || replSigint === void 0 ? void 0 : replSigint.restore) === null || _a === void 0 ? void 0 : _a.call(replSigint);
103
+ (_b = processSigint === null || processSigint === void 0 ? void 0 : processSigint.restore) === null || _b === void 0 ? void 0 : _b.call(processSigint);
104
+ if (getPrompt(repl) === '') {
105
+ Interface.prototype.setPrompt.call(repl, origPrompt);
106
+ }
107
+ repl.removeListener('exit', exitListener);
108
+ for (const listener of previousExitListeners) {
109
+ repl.on('exit', listener);
110
+ }
111
+ if (exitEventPending) {
112
+ process.nextTick(() => repl.emit('exit'));
90
113
  }
91
- evalResult.then(resolve, reject);
92
- });
93
- }
94
- finally {
95
- if (typeof previouslyInRawMode !== 'undefined') {
96
- setRawMode(previouslyInRawMode);
97
- }
98
- if (sigintListener !== undefined) {
99
- repl.removeListener('SIGINT', sigintListener);
100
- process.removeListener('SIGINT', sigintListener);
101
- }
102
- (_a = replSigint === null || replSigint === void 0 ? void 0 : replSigint.restore) === null || _a === void 0 ? void 0 : _a.call(replSigint);
103
- (_b = processSigint === null || processSigint === void 0 ? void 0 : processSigint.restore) === null || _b === void 0 ? void 0 : _b.call(processSigint);
104
- if (getPrompt(repl) === '') {
105
- readline_1.Interface.prototype.setPrompt.call(repl, origPrompt);
106
- }
107
- repl.removeListener('exit', exitListener);
108
- for (const listener of previousExitListeners) {
109
- repl.on('exit', listener);
110
- }
111
- if (exitEventPending) {
112
- process.nextTick(() => repl.emit('exit'));
113
114
  }
114
115
  }
115
- }
116
- catch (err) {
117
- try {
118
- if ((0, is_recoverable_error_1.default)(input)) {
116
+ catch (err) {
117
+ try {
118
+ if ((0, is_recoverable_error_1.default)(input)) {
119
+ repl.emit(exports.evalFinish, {
120
+ input,
121
+ success: false,
122
+ err,
123
+ recoverable: true,
124
+ });
125
+ return callback(new Recoverable(err));
126
+ }
119
127
  repl.emit(exports.evalFinish, {
120
128
  input,
121
129
  success: false,
122
130
  err,
123
- recoverable: true,
131
+ recoverable: false,
124
132
  });
125
- return callback(new repl_1.Recoverable(err));
133
+ return callback(err);
134
+ }
135
+ catch (callbackErr) {
136
+ return callback(wrapCallbackError(callbackErr));
126
137
  }
127
- repl.emit(exports.evalFinish, {
128
- input,
129
- success: false,
130
- err,
131
- recoverable: false,
132
- });
133
- return callback(err);
138
+ }
139
+ try {
140
+ repl.emit(exports.evalFinish, { input, success: true });
141
+ return callback(null, result);
134
142
  }
135
143
  catch (callbackErr) {
136
144
  return callback(wrapCallbackError(callbackErr));
137
145
  }
138
146
  }
139
- try {
140
- repl.emit(exports.evalFinish, { input, success: true });
141
- return callback(null, result);
142
- }
143
- catch (callbackErr) {
144
- return callback(wrapCallbackError(callbackErr));
145
- }
147
+ _eval().catch((e) => callback(e));
146
148
  };
147
149
  return repl;
148
150
  }
149
151
  exports.start = start;
150
152
  function wrapNoSyncDomainError(fn) {
151
153
  return (...args) => {
152
- const origEmit = domain_1.Domain.prototype.emit;
153
- domain_1.Domain.prototype.emit = function (ev, ...eventArgs) {
154
+ const { Domain } = require('domain');
155
+ const origEmit = Domain.prototype.emit;
156
+ Domain.prototype.emit = function (ev, ...eventArgs) {
154
157
  if (ev === 'error') {
155
158
  this.exit();
156
159
  throw eventArgs[0];
@@ -161,7 +164,7 @@ function wrapNoSyncDomainError(fn) {
161
164
  return fn(...args);
162
165
  }
163
166
  finally {
164
- domain_1.Domain.prototype.emit = origEmit;
167
+ Domain.prototype.emit = origEmit;
165
168
  }
166
169
  };
167
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"async-repl.js","sourceRoot":"","sources":["../src/async-repl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async-repl.js","sourceRoot":"","sources":["../src/async-repl.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface BuildInfo {
17
17
  segmentApiKey?: string;
18
18
  deps: ReturnType<typeof CliServiceProvider.getVersionInformation>;
19
19
  }
20
+ export declare function baseBuildInfo(): Omit<BuildInfo, 'deps'>;
20
21
  export declare function buildInfo({ withSegmentApiKey, }?: {
21
22
  withSegmentApiKey?: boolean;
22
23
  }): Promise<BuildInfo>;
package/lib/build-info.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildInfo = void 0;
6
+ exports.buildInfo = exports.baseBuildInfo = void 0;
7
7
  const os_1 = __importDefault(require("os"));
8
8
  const service_provider_server_1 = require("@mongosh/service-provider-server");
9
9
  function getSystemArch() {
@@ -15,24 +15,19 @@ function getSystemArch() {
15
15
  : 'x64'
16
16
  : process.arch;
17
17
  }
18
- async function buildInfo({ withSegmentApiKey, } = {}) {
19
- const dependencyVersionInfo = {
20
- ...service_provider_server_1.CliServiceProvider.getVersionInformation(),
21
- };
18
+ function baseBuildInfo() {
22
19
  const runtimeData = {
23
20
  nodeVersion: process.version,
24
21
  opensslVersion: process.versions.openssl,
25
22
  sharedOpenssl: !!process.config.variables.node_shared_openssl,
26
23
  runtimeArch: getSystemArch(),
27
24
  runtimePlatform: process.platform,
28
- deps: { ...dependencyVersionInfo },
29
25
  };
30
26
  try {
31
- const buildInfo = { ...require('./build-info.json'), ...runtimeData };
32
- if (!withSegmentApiKey) {
33
- delete buildInfo.segmentApiKey;
34
- }
35
- return buildInfo;
27
+ return {
28
+ ...require('./build-info.json'),
29
+ ...runtimeData,
30
+ };
36
31
  }
37
32
  catch (_a) {
38
33
  const { version } = require('../package.json');
@@ -48,5 +43,16 @@ async function buildInfo({ withSegmentApiKey, } = {}) {
48
43
  };
49
44
  }
50
45
  }
46
+ exports.baseBuildInfo = baseBuildInfo;
47
+ async function buildInfo({ withSegmentApiKey, } = {}) {
48
+ const dependencyVersionInfo = {
49
+ ...service_provider_server_1.CliServiceProvider.getVersionInformation(),
50
+ };
51
+ const buildInfo = { ...baseBuildInfo(), deps: { ...dependencyVersionInfo } };
52
+ if (!withSegmentApiKey) {
53
+ delete buildInfo.segmentApiKey;
54
+ }
55
+ return buildInfo;
56
+ }
51
57
  exports.buildInfo = buildInfo;
52
58
  //# sourceMappingURL=build-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-info.js","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,8EAAsE;AAmBtE,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAMrB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;YACF,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;AACnB,CAAC;AAOM,KAAK,UAAU,SAAS,CAAC,EAC9B,iBAAiB,MAGf,EAAE;IACJ,MAAM,qBAAqB,GAAsB;QAC/C,GAAG,4CAAkB,CAAC,qBAAqB,EAAE;KAC9C,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;QACxC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB;QAG7D,WAAW,EAAE,aAAa,EAAE;QAG5B,eAAe,EAAE,OAAO,CAAC,QAAQ;QACjC,IAAI,EAAE,EAAE,GAAG,qBAAqB,EAAE;KACnC,CAAC;IAEF,IAAI;QACF,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;QACtE,IAAI,CAAC,iBAAiB,EAAE;YACtB,OAAO,SAAS,CAAC,aAAa,CAAC;SAChC;QACD,OAAO,SAAS,CAAC;KAClB;IAAC,WAAM;QACN,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC/C,OAAO;YACL,OAAO;YACP,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,aAAa,EAAE,OAAO,CAAC,QAAQ;YAC/B,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,GAAG,WAAW;SACf,CAAC;KACH;AACH,CAAC;AAzCD,8BAyCC"}
1
+ {"version":3,"file":"build-info.js","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,8EAAsE;AAmBtE,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAMrB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;YACF,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAgB,aAAa;IAC3B,MAAM,WAAW,GAAG;QAClB,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;QACxC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB;QAG7D,WAAW,EAAE,aAAa,EAAE;QAG5B,eAAe,EAAE,OAAO,CAAC,QAAQ;KAClC,CAAC;IAEF,IAAI;QACF,OAAO;YACL,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAC/B,GAAG,WAAW;SACf,CAAC;KACH;IAAC,WAAM;QACN,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC/C,OAAO;YACL,OAAO;YACP,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,aAAa,EAAE,OAAO,CAAC,QAAQ;YAC/B,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,GAAG,WAAW;SACf,CAAC;KACH;AACH,CAAC;AA/BD,sCA+BC;AAOM,KAAK,UAAU,SAAS,CAAC,EAC9B,iBAAiB,MAGf,EAAE;IACJ,MAAM,qBAAqB,GAAsB;QAC/C,GAAG,4CAAkB,CAAC,qBAAqB,EAAE;KAC9C,CAAC;IAEF,MAAM,SAAS,GAAG,EAAE,GAAG,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,qBAAqB,EAAE,EAAE,CAAC;IAC7E,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO,SAAS,CAAC,aAAa,CAAC;KAChC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAdD,8BAcC"}
@@ -1 +1 @@
1
- {"segmentApiKey":"LLBrrHblu6jY9aujeyXJuePD5dAAFGjn","version":"2.0.1","distributionKind":"packaged","buildArch":"x64","buildPlatform":"linux","buildTarget":"unknown","buildTime":"2023-09-14T14:43:17.852Z","gitVersion":"225d4603f0d43d500a8847beaa980e906e9a35be"}
1
+ {"segmentApiKey":"LLBrrHblu6jY9aujeyXJuePD5dAAFGjn","version":"2.1.0","distributionKind":"packaged","buildArch":"x64","buildPlatform":"linux","buildTarget":"unknown","buildTime":"2023-11-21T10:43:57.110Z","gitVersion":"963c75bc45834b1bf69e62bf5b72c4ae8ef26cb4"}
package/lib/cli-repl.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  import type { AutoEncryptionOptions } from '@mongosh/service-provider-core';
3
3
  import { CliServiceProvider } from '@mongosh/service-provider-server';
4
4
  import type { CliOptions, DevtoolsConnectOptions } from '@mongosh/arg-parser';
5
- import Analytics from 'analytics-node';
5
+ import type Analytics from 'analytics-node';
6
6
  import ConnectionString from 'mongodb-connection-string-url';
7
7
  import type { Readable, Writable } from 'stream';
8
8
  import type { StyleDefinition } from './clr';
package/lib/cli-repl.js CHANGED
@@ -12,7 +12,6 @@ const service_provider_server_1 = require("@mongosh/service-provider-server");
12
12
  const snippet_manager_1 = require("@mongosh/snippet-manager");
13
13
  const editor_1 = require("@mongosh/editor");
14
14
  const history_2 = require("@mongosh/history");
15
- const analytics_node_1 = __importDefault(require("analytics-node"));
16
15
  const askpassword_1 = __importDefault(require("askpassword"));
17
16
  const events_1 = require("events");
18
17
  const js_yaml_1 = __importDefault(require("js-yaml"));
@@ -31,6 +30,7 @@ const path_1 = __importDefault(require("path"));
31
30
  const util_1 = require("util");
32
31
  const get_os_info_1 = require("./get-os-info");
33
32
  const update_notification_manager_1 = require("./update-notification-manager");
33
+ const startup_timing_1 = require("./startup-timing");
34
34
  const CONNECTING = 'cli-repl.cli-repl.connecting';
35
35
  class CliRepl {
36
36
  constructor(options) {
@@ -120,8 +120,10 @@ class CliRepl {
120
120
  var _a, _b, _c, _d, _e, _f;
121
121
  const { version } = require('../package.json');
122
122
  await this.verifyNodeVersion();
123
+ (0, startup_timing_1.markTime)('verified node version');
123
124
  this.isContainerizedEnvironment =
124
125
  await this.getIsContainerizedEnvironment();
126
+ (0, startup_timing_1.markTime)('checked containerized environment');
125
127
  if (!this.cliOptions.nodb) {
126
128
  const cs = new mongodb_connection_string_url_1.default(driverUri);
127
129
  const searchParams = cs.typedSearchParams();
@@ -140,17 +142,21 @@ class CliRepl {
140
142
  catch (err) {
141
143
  this.warnAboutInaccessibleFile(err);
142
144
  }
145
+ (0, startup_timing_1.markTime)('ensured shell homedir');
143
146
  await this.logManager.cleanupOldLogfiles();
147
+ (0, startup_timing_1.markTime)('cleaned up log files');
144
148
  const logger = await this.logManager.createLogWriter();
145
149
  if (!this.cliOptions.quiet) {
146
150
  this.output.write(`Current Mongosh Log ID:\t${logger.logId}\n`);
147
151
  }
148
152
  this.logWriter = logger;
153
+ (0, startup_timing_1.markTime)('instantiated log writer');
149
154
  logger.info('MONGOSH', (0, mongodb_log_writer_1.mongoLogId)(1000000000), 'log', 'Starting log', {
150
155
  execPath: process.execPath,
151
156
  envInfo: (0, history_2.redactSensitiveData)(this.getLoggedEnvironmentVariables()),
152
157
  ...(await (0, build_info_1.buildInfo)()),
153
158
  });
159
+ (0, startup_timing_1.markTime)('logged initial message');
154
160
  let analyticsSetupError = null;
155
161
  try {
156
162
  await this.setupAnalytics();
@@ -158,12 +164,14 @@ class CliRepl {
158
164
  catch (err) {
159
165
  analyticsSetupError = err;
160
166
  }
167
+ (0, startup_timing_1.markTime)('created analytics instance');
161
168
  (0, logging_1.setupLoggerAndTelemetry)(this.bus, logger, this.toggleableAnalytics, {
162
169
  platform: process.platform,
163
170
  arch: process.arch,
164
171
  is_containerized: this.isContainerizedEnvironment,
165
172
  ...(await (0, get_os_info_1.getOsInfo)()),
166
173
  }, version);
174
+ (0, startup_timing_1.markTime)('completed telemetry setup');
167
175
  if (analyticsSetupError) {
168
176
  this.bus.emit('mongosh:error', analyticsSetupError, 'analytics');
169
177
  }
@@ -174,6 +182,7 @@ class CliRepl {
174
182
  this.warnAboutInaccessibleFile(err);
175
183
  }
176
184
  this.globalConfig = await this.loadGlobalConfigFile();
185
+ (0, startup_timing_1.markTime)('read global config files');
177
186
  void this.fetchMongoshUpdateUrl();
178
187
  if (driverOptions.autoEncryption) {
179
188
  const origExtraOptions = (_a = driverOptions.autoEncryption.extraOptions) !== null && _a !== void 0 ? _a : {};
@@ -196,6 +205,7 @@ class CliRepl {
196
205
  delete driverOptions.autoEncryption;
197
206
  }
198
207
  driverOptions = await this.prepareOIDCOptions(driverOptions);
208
+ (0, startup_timing_1.markTime)('prepared OIDC options');
199
209
  let initialServiceProvider;
200
210
  try {
201
211
  initialServiceProvider = await this.connect(driverUri, driverOptions);
@@ -209,7 +219,9 @@ class CliRepl {
209
219
  }
210
220
  throw err;
211
221
  }
222
+ (0, startup_timing_1.markTime)('completed SP setup');
212
223
  const initialized = await this.mongoshRepl.initialize(initialServiceProvider, await this.getMoreRecentMongoshVersion());
224
+ (0, startup_timing_1.markTime)('initialized mongosh repl');
213
225
  this.injectReplFunctions();
214
226
  const commandLineLoadFiles = (_e = this.cliOptions.fileNames) !== null && _e !== void 0 ? _e : [];
215
227
  const evalScripts = (_f = this.cliOptions.eval) !== null && _f !== void 0 ? _f : [];
@@ -236,6 +248,7 @@ class CliRepl {
236
248
  instanceState: this.mongoshRepl.runtimeState().instanceState,
237
249
  loadExternalCode: this.mongoshRepl.loadExternalCode.bind(this.mongoshRepl),
238
250
  });
251
+ (0, startup_timing_1.markTime)('set up editor');
239
252
  if (willExecuteCommandLineScripts) {
240
253
  this.mongoshRepl.setIsInteractive(willEnterInteractiveMode);
241
254
  this.bus.emit('mongosh:start-loading-cli-scripts', {
@@ -256,12 +269,16 @@ class CliRepl {
256
269
  this.mongoshRepl.setIsInteractive(true);
257
270
  }
258
271
  if (!this.cliOptions.norc) {
272
+ (0, startup_timing_1.markTime)('start load snippets');
259
273
  await (snippetManager === null || snippetManager === void 0 ? void 0 : snippetManager.loadAllSnippets());
274
+ (0, startup_timing_1.markTime)('done load snippets');
260
275
  }
261
276
  await this.loadRcFiles();
277
+ (0, startup_timing_1.markTime)('loaded rc files');
262
278
  this.verifyPlatformSupport();
263
279
  this.setTelemetryEnabled(await this.getConfig('enableTelemetry'));
264
280
  this.bus.emit('mongosh:start-mongosh-repl', { version });
281
+ (0, startup_timing_1.markTime)('starting repl');
265
282
  await this.mongoshRepl.startRepl(initialized);
266
283
  }
267
284
  injectReplFunctions() {
@@ -289,7 +306,8 @@ class CliRepl {
289
306
  if (!apiKey) {
290
307
  throw new Error('no analytics API key defined');
291
308
  }
292
- this.segmentAnalytics = new analytics_node_1.default(apiKey, {
309
+ const Analytics = require('analytics-node');
310
+ this.segmentAnalytics = new Analytics(apiKey, {
293
311
  ...this.analyticsOptions,
294
312
  axiosConfig: {
295
313
  timeout: 1000,
@@ -319,10 +337,12 @@ class CliRepl {
319
337
  let lastEvalResult;
320
338
  let exitCode = 0;
321
339
  try {
340
+ (0, startup_timing_1.markTime)('start eval scripts');
322
341
  for (const script of evalScripts) {
323
342
  this.bus.emit('mongosh:eval-cli-script');
324
343
  lastEvalResult = await this.mongoshRepl.loadExternalCode(script, '@(shell eval)');
325
344
  }
345
+ (0, startup_timing_1.markTime)('finished eval scripts');
326
346
  }
327
347
  catch (err) {
328
348
  exitCode = 1;
@@ -349,12 +369,14 @@ class CliRepl {
349
369
  }
350
370
  this.output.write(formattedResult + '\n');
351
371
  }
372
+ (0, startup_timing_1.markTime)('wrote eval output, start loading external files');
352
373
  for (const file of files) {
353
374
  if (!this.cliOptions.quiet) {
354
375
  this.output.write(`Loading file: ${this.clr(file, 'mongosh:filename')}\n`);
355
376
  }
356
377
  await this.mongoshRepl.loadExternalFile(file);
357
378
  }
379
+ (0, startup_timing_1.markTime)('finished external files');
358
380
  return exitCode;
359
381
  }
360
382
  async loadRcFiles() {
@@ -557,7 +579,7 @@ class CliRepl {
557
579
  const deprecationWarning = [
558
580
  'Deprecation warnings:',
559
581
  ...warnings,
560
- 'See https://www.mongodb.com/docs/mongodb-shell/ for documentation on supported platforms.',
582
+ 'See https://www.mongodb.com/docs/mongodb-shell/install/#supported-operating-systems for documentation on supported platforms.',
561
583
  ].join('\n');
562
584
  this.output.write(this.clr(`\n${deprecationWarning}\n`, 'mongosh:warning'));
563
585
  }
@@ -602,6 +624,7 @@ class CliRepl {
602
624
  }
603
625
  async close() {
604
626
  var _a, _b;
627
+ (0, startup_timing_1.markTime)('start closing');
605
628
  if (this.closing) {
606
629
  return;
607
630
  }
@@ -617,6 +640,7 @@ class CliRepl {
617
640
  await new Promise((resolve) => this.output.write('', resolve));
618
641
  }
619
642
  }
643
+ (0, startup_timing_1.markTime)('output flushed');
620
644
  this.closing = true;
621
645
  const analytics = this.toggleableAnalytics;
622
646
  let flushError = null;
@@ -625,6 +649,7 @@ class CliRepl {
625
649
  const flushStart = Date.now();
626
650
  try {
627
651
  await (0, util_1.promisify)(analytics.flush.bind(analytics))();
652
+ (0, startup_timing_1.markTime)('flushed analytics');
628
653
  }
629
654
  catch (err) {
630
655
  flushError = err.message;
@@ -638,6 +663,7 @@ class CliRepl {
638
663
  flushDuration,
639
664
  });
640
665
  await ((_b = this.logWriter) === null || _b === void 0 ? void 0 : _b.flush());
666
+ (0, startup_timing_1.markTime)('flushed log writer');
641
667
  this.bus.emit('mongosh:closed');
642
668
  }
643
669
  async exit(code) {