@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 +2 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +25 -0
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/index.spec.ts +27 -0
- package/src/index.ts +42 -0
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":"
|
|
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.
|
|
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.
|
|
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.
|
|
49
|
+
"mongodb": "^6.13.0",
|
|
50
50
|
"prettier": "^2.8.8"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
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,
|