@mongosh/types 3.0.0 → 3.4.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/AUTHORS CHANGED
@@ -11,3 +11,5 @@ Basit <1305718+mabaasit@users.noreply.github.com>
11
11
  Alena Khineika <alena.khineika@mongodb.com>
12
12
  Gagik Amaryan <me@gagik.co>
13
13
  mongodb-devtools-bot[bot] <189715634+mongodb-devtools-bot[bot]@users.noreply.github.com>
14
+ Ubuntu <ubuntu@ip-10-0-5-160.ec2.internal>
15
+ Nikola Irinchev <irinchev@me.com>
package/lib/index.d.ts CHANGED
@@ -145,9 +145,12 @@ export interface EditorReadVscodeExtensionsFailedEvent {
145
145
  export interface FetchingUpdateMetadataEvent {
146
146
  updateURL: string;
147
147
  localFilePath: string;
148
+ currentVersion: string;
148
149
  }
149
150
  export interface FetchingUpdateMetadataCompleteEvent {
150
151
  latest: string | null;
152
+ currentVersion: string;
153
+ hasGreetingCTA: boolean;
151
154
  }
152
155
  export interface SessionStartedEvent {
153
156
  isInteractive: boolean;
@@ -156,6 +159,12 @@ export interface SessionStartedEvent {
156
159
  [category: string]: number;
157
160
  };
158
161
  }
162
+ export interface WriteCustomLogEvent {
163
+ method: 'info' | 'error' | 'warn' | 'fatal' | 'debug';
164
+ message: string;
165
+ attr?: unknown;
166
+ level?: 1 | 2 | 3 | 4 | 5;
167
+ }
159
168
  export interface MongoshBusEventsMap extends ConnectEventMap {
160
169
  'mongosh:connect': (ev: ConnectEvent) => void;
161
170
  'mongosh:start-session': (ev: SessionStartedEvent) => void;
@@ -180,6 +189,7 @@ export interface MongoshBusEventsMap extends ConnectEventMap {
180
189
  'mongosh:warn': (ev: ApiWarning) => void;
181
190
  'mongosh:api-load-file': (ev: ScriptLoadFileEvent) => void;
182
191
  'mongosh:start-loading-cli-scripts': (event: StartLoadingCliScriptsEvent) => void;
192
+ 'mongosh:write-custom-log': (ev: WriteCustomLogEvent) => void;
183
193
  'mongosh:start-mongosh-repl': (ev: StartMongoshReplEvent) => void;
184
194
  'mongosh:mongoshrc-load': () => void;
185
195
  'mongosh:globalconfig-load': (ev: GlobalConfigFileLoadEvent) => void;
@@ -212,6 +222,7 @@ export interface MongoshBusEventsMap extends ConnectEventMap {
212
222
  'mongosh-editor:read-vscode-extensions-failed': (ev: EditorReadVscodeExtensionsFailedEvent) => void;
213
223
  'mongosh:fetching-update-metadata': (ev: FetchingUpdateMetadataEvent) => void;
214
224
  'mongosh:fetching-update-metadata-complete': (ev: FetchingUpdateMetadataCompleteEvent) => void;
225
+ 'mongosh:log-initialized': () => void;
215
226
  }
216
227
  export interface MongoshBus {
217
228
  on<K extends keyof MongoshBusEventsMap>(event: K, listener: MongoshBusEventsMap[K]): this;
@@ -223,6 +234,7 @@ export declare class ShellUserConfig {
223
234
  maxTimeMS: number | null;
224
235
  enableTelemetry: boolean;
225
236
  editor: string | null;
237
+ logLocation: string | undefined;
226
238
  }
227
239
  export declare class ShellUserConfigValidator {
228
240
  static validate<K extends keyof ShellUserConfig>(key: K, value: ShellUserConfig[K]): Promise<string | null>;
@@ -249,6 +261,12 @@ export declare class CliUserConfig extends SnippetShellUserConfig {
249
261
  oidcTrustedEndpoints: undefined | string[];
250
262
  browser: undefined | false | string;
251
263
  updateURL: string;
264
+ disableLogging: boolean;
265
+ logLocation: string | undefined;
266
+ logRetentionDays: number;
267
+ logMaxFileCount: number;
268
+ logCompressionEnabled: boolean;
269
+ logRetentionGB: number | undefined;
252
270
  }
253
271
  export declare class CliUserConfigValidator extends SnippetShellUserConfigValidator {
254
272
  static validate<K extends keyof CliUserConfig>(key: K, value: CliUserConfig[K]): Promise<string | null>;
package/lib/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.TimingCategories = exports.CliUserConfigValidator = exports.CliUserConfig = exports.SnippetShellUserConfigValidator = exports.SnippetShellUserConfig = exports.ShellUserConfigValidator = exports.ShellUserConfig = void 0;
7
+ const path_1 = __importDefault(require("path"));
4
8
  class ShellUserConfig {
5
9
  constructor() {
6
10
  this.displayBatchSize = 20;
@@ -89,6 +93,12 @@ class CliUserConfig extends SnippetShellUserConfig {
89
93
  this.oidcTrustedEndpoints = undefined;
90
94
  this.browser = undefined;
91
95
  this.updateURL = 'https://downloads.mongodb.com/compass/mongosh.json';
96
+ this.disableLogging = false;
97
+ this.logLocation = undefined;
98
+ this.logRetentionDays = 30;
99
+ this.logMaxFileCount = 100;
100
+ this.logCompressionEnabled = false;
101
+ this.logRetentionGB = undefined;
92
102
  }
93
103
  }
94
104
  exports.CliUserConfig = CliUserConfig;
@@ -107,12 +117,21 @@ class CliUserConfigValidator extends SnippetShellUserConfigValidator {
107
117
  return null;
108
118
  case 'inspectDepth':
109
119
  case 'historyLength':
120
+ case 'logRetentionDays':
121
+ case 'logMaxFileCount':
110
122
  if (typeof value !== 'number' || value < 0) {
111
123
  return `${key} must be a positive integer`;
112
124
  }
113
125
  return null;
126
+ case 'logRetentionGB':
127
+ if (value !== undefined && (typeof value !== 'number' || value < 0)) {
128
+ return `${key} must be a positive number or undefined`;
129
+ }
130
+ return null;
131
+ case 'disableLogging':
114
132
  case 'forceDisableTelemetry':
115
133
  case 'showStackTraces':
134
+ case 'logCompressionEnabled':
116
135
  if (typeof value !== 'boolean') {
117
136
  return `${key} must be a boolean`;
118
137
  }
@@ -148,6 +167,12 @@ class CliUserConfigValidator extends SnippetShellUserConfigValidator {
148
167
  return `${key} must be a valid URL or empty`;
149
168
  }
150
169
  return null;
170
+ case 'logLocation':
171
+ if (value !== undefined &&
172
+ (typeof value !== 'string' || !path_1.default.isAbsolute(value))) {
173
+ return `${key} must be a valid absolute path or undefined`;
174
+ }
175
+ return null;
151
176
  default:
152
177
  return super.validate(key, value);
153
178
  }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mongosh/types",
3
- "version": "3.0.0",
3
+ "version": "3.4.0",
4
4
  "description": "Types for mongosh internals",
5
5
  "author": "Anna Henningsen <anna.henningsen@mongodb.com>",
6
6
  "homepage": "https://github.com/mongodb-js/mongosh/tree/main/packages/types#readme",
@@ -38,7 +38,7 @@
38
38
  "unitTestsOnly": true
39
39
  },
40
40
  "dependencies": {
41
- "@mongodb-js/devtools-connect": "^3.3.4"
41
+ "@mongodb-js/devtools-connect": "^3.4.1"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@mongodb-js/eslint-config-mongosh": "^1.0.0",
@@ -46,8 +46,8 @@
46
46
  "@mongodb-js/tsconfig-mongosh": "^1.0.0",
47
47
  "depcheck": "^1.4.7",
48
48
  "eslint": "^7.25.0",
49
- "mongodb": "^6.12.0",
49
+ "mongodb": "^6.13.0",
50
50
  "prettier": "^2.8.8"
51
51
  },
52
- "gitHead": "7f9449ed055957abf60071734853553c460f82a2"
52
+ "gitHead": "27df9518d3f56ec3028e0c320936fedf2dcd6764"
53
53
  }
package/src/index.spec.ts CHANGED
@@ -25,6 +25,33 @@ describe('config validation', function () {
25
25
  expect(await validate('historyLength', 0)).to.equal(null);
26
26
  expect(await validate('historyLength', 1)).to.equal(null);
27
27
  expect(await validate('historyLength', Infinity)).to.equal(null);
28
+ expect(await validate('logRetentionDays', 'foo')).to.equal(
29
+ 'logRetentionDays must be a positive integer'
30
+ );
31
+ expect(await validate('logRetentionDays', -1)).to.equal(
32
+ 'logRetentionDays must be a positive integer'
33
+ );
34
+ expect(await validate('logRetentionGB', 'foo')).to.equal(
35
+ 'logRetentionGB must be a positive number or undefined'
36
+ );
37
+ expect(await validate('logRetentionGB', -1)).to.equal(
38
+ 'logRetentionGB must be a positive number or undefined'
39
+ );
40
+ expect(await validate('logRetentionGB', undefined)).to.equal(null);
41
+ expect(await validate('logRetentionGB', 100)).to.equal(null);
42
+ expect(await validate('logMaxFileCount', 'foo')).to.equal(
43
+ 'logMaxFileCount must be a positive integer'
44
+ );
45
+ expect(await validate('logMaxFileCount', -1)).to.equal(
46
+ 'logMaxFileCount must be a positive integer'
47
+ );
48
+ expect(await validate('logCompressionEnabled', 'foo')).to.equal(
49
+ 'logCompressionEnabled must be a boolean'
50
+ );
51
+ expect(await validate('logCompressionEnabled', -1)).to.equal(
52
+ 'logCompressionEnabled must be a boolean'
53
+ );
54
+ expect(await validate('logCompressionEnabled', false)).to.equal(null);
28
55
  expect(await validate('showStackTraces', 'foo')).to.equal(
29
56
  'showStackTraces must be a boolean'
30
57
  );
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { ConnectEventMap } from '@mongodb-js/devtools-connect';
2
+ import path from 'path';
2
3
 
3
4
  export interface ApiEventArguments {
4
5
  pipeline?: any[];
@@ -173,10 +174,13 @@ export interface EditorReadVscodeExtensionsFailedEvent {
173
174
  export interface FetchingUpdateMetadataEvent {
174
175
  updateURL: string;
175
176
  localFilePath: string;
177
+ currentVersion: string;
176
178
  }
177
179
 
178
180
  export interface FetchingUpdateMetadataCompleteEvent {
179
181
  latest: string | null;
182
+ currentVersion: string;
183
+ hasGreetingCTA: boolean;
180
184
  }
181
185
 
182
186
  export interface SessionStartedEvent {
@@ -187,6 +191,13 @@ export interface SessionStartedEvent {
187
191
  };
188
192
  }
189
193
 
194
+ export interface WriteCustomLogEvent {
195
+ method: 'info' | 'error' | 'warn' | 'fatal' | 'debug';
196
+ message: string;
197
+ attr?: unknown;
198
+ level?: 1 | 2 | 3 | 4 | 5;
199
+ }
200
+
190
201
  export interface MongoshBusEventsMap extends ConnectEventMap {
191
202
  /**
192
203
  * Signals a connection to a MongoDB instance has been established
@@ -267,6 +278,11 @@ export interface MongoshBusEventsMap extends ConnectEventMap {
267
278
  'mongosh:start-loading-cli-scripts': (
268
279
  event: StartLoadingCliScriptsEvent
269
280
  ) => void;
281
+ /**
282
+ * Signals to start writing log to the disc after MongoLogManager is initialized.
283
+ */
284
+ 'mongosh:write-custom-log': (ev: WriteCustomLogEvent) => void;
285
+
270
286
  /**
271
287
  * Signals the successful startup of the mongosh REPL after initial files and configuration
272
288
  * have been loaded.
@@ -381,6 +397,8 @@ export interface MongoshBusEventsMap extends ConnectEventMap {
381
397
  'mongosh:fetching-update-metadata-complete': (
382
398
  ev: FetchingUpdateMetadataCompleteEvent
383
399
  ) => void;
400
+ /** Signals that logging has been initialized. */
401
+ 'mongosh:log-initialized': () => void;
384
402
  }
385
403
 
386
404
  export interface MongoshBus {
@@ -406,6 +424,7 @@ export class ShellUserConfig {
406
424
  maxTimeMS: number | null = null;
407
425
  enableTelemetry = false;
408
426
  editor: string | null = null;
427
+ logLocation: string | undefined;
409
428
  }
410
429
 
411
430
  export class ShellUserConfigValidator {
@@ -492,6 +511,12 @@ export class CliUserConfig extends SnippetShellUserConfig {
492
511
  oidcTrustedEndpoints: undefined | string[] = undefined;
493
512
  browser: undefined | false | string = undefined;
494
513
  updateURL = 'https://downloads.mongodb.com/compass/mongosh.json';
514
+ disableLogging = false;
515
+ logLocation: string | undefined = undefined;
516
+ logRetentionDays = 30;
517
+ logMaxFileCount = 100;
518
+ logCompressionEnabled = false;
519
+ logRetentionGB: number | undefined = undefined;
495
520
  }
496
521
 
497
522
  export class CliUserConfigValidator extends SnippetShellUserConfigValidator {
@@ -514,12 +539,21 @@ export class CliUserConfigValidator extends SnippetShellUserConfigValidator {
514
539
  return null;
515
540
  case 'inspectDepth':
516
541
  case 'historyLength':
542
+ case 'logRetentionDays':
543
+ case 'logMaxFileCount':
517
544
  if (typeof value !== 'number' || value < 0) {
518
545
  return `${key} must be a positive integer`;
519
546
  }
520
547
  return null;
548
+ case 'logRetentionGB':
549
+ if (value !== undefined && (typeof value !== 'number' || value < 0)) {
550
+ return `${key} must be a positive number or undefined`;
551
+ }
552
+ return null;
553
+ case 'disableLogging':
521
554
  case 'forceDisableTelemetry':
522
555
  case 'showStackTraces':
556
+ case 'logCompressionEnabled':
523
557
  if (typeof value !== 'boolean') {
524
558
  return `${key} must be a boolean`;
525
559
  }
@@ -563,6 +597,14 @@ export class CliUserConfigValidator extends SnippetShellUserConfigValidator {
563
597
  return `${key} must be a valid URL or empty`;
564
598
  }
565
599
  return null;
600
+ case 'logLocation':
601
+ if (
602
+ value !== undefined &&
603
+ (typeof value !== 'string' || !path.isAbsolute(value))
604
+ ) {
605
+ return `${key} must be a valid absolute path or undefined`;
606
+ }
607
+ return null;
566
608
  default:
567
609
  return super.validate(
568
610
  key as keyof SnippetShellUserConfig,