@qp-mongosh/shell-api 0.0.0-dev.28 → 0.0.0-dev.29

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 (88) hide show
  1. package/lib/abstract-cursor.d.ts +33 -0
  2. package/lib/abstract-cursor.js +192 -0
  3. package/lib/abstract-cursor.js.map +1 -0
  4. package/lib/aggregation-cursor.d.ts +6 -0
  5. package/lib/aggregation-cursor.js +20 -0
  6. package/lib/aggregation-cursor.js.map +1 -0
  7. package/lib/bulk.d.ts +43 -0
  8. package/lib/bulk.js +224 -0
  9. package/lib/bulk.js.map +1 -0
  10. package/lib/change-stream-cursor.d.ts +28 -0
  11. package/lib/change-stream-cursor.js +112 -0
  12. package/lib/change-stream-cursor.js.map +1 -0
  13. package/lib/collection.d.ts +95 -0
  14. package/lib/collection.js +965 -0
  15. package/lib/collection.js.map +1 -0
  16. package/lib/cursor.d.ts +32 -0
  17. package/lib/cursor.js +216 -0
  18. package/lib/cursor.js.map +1 -0
  19. package/lib/database.d.ts +116 -0
  20. package/lib/database.js +1224 -0
  21. package/lib/database.js.map +1 -0
  22. package/lib/dbquery.d.ts +8 -0
  23. package/lib/dbquery.js +29 -0
  24. package/lib/dbquery.js.map +1 -0
  25. package/lib/decorators.d.ts +73 -0
  26. package/lib/decorators.js +396 -0
  27. package/lib/decorators.js.map +1 -0
  28. package/lib/enums.d.ts +28 -0
  29. package/lib/enums.js +34 -0
  30. package/lib/enums.js.map +1 -0
  31. package/lib/error-codes.d.ts +12 -0
  32. package/lib/error-codes.js +20 -0
  33. package/lib/error-codes.js.map +1 -0
  34. package/lib/explainable-cursor.d.ts +11 -0
  35. package/lib/explainable-cursor.js +32 -0
  36. package/lib/explainable-cursor.js.map +1 -0
  37. package/lib/explainable.d.ts +32 -0
  38. package/lib/explainable.js +167 -0
  39. package/lib/explainable.js.map +1 -0
  40. package/lib/field-level-encryption.d.ts +50 -0
  41. package/lib/field-level-encryption.js +177 -0
  42. package/lib/field-level-encryption.js.map +1 -0
  43. package/lib/help.d.ts +22 -0
  44. package/lib/help.js +27 -0
  45. package/lib/help.js.map +1 -0
  46. package/lib/helpers.d.ts +71 -0
  47. package/lib/helpers.js +589 -0
  48. package/lib/helpers.js.map +1 -0
  49. package/lib/index.d.ts +16 -0
  50. package/lib/index.js +46 -0
  51. package/lib/index.js.map +1 -0
  52. package/lib/interruptor.d.ts +19 -0
  53. package/lib/interruptor.js +63 -0
  54. package/lib/interruptor.js.map +1 -0
  55. package/lib/mongo-errors.d.ts +5 -0
  56. package/lib/mongo-errors.js +38 -0
  57. package/lib/mongo-errors.js.map +1 -0
  58. package/lib/mongo.d.ts +75 -0
  59. package/lib/mongo.js +477 -0
  60. package/lib/mongo.js.map +1 -0
  61. package/lib/no-db.d.ts +5 -0
  62. package/lib/no-db.js +29 -0
  63. package/lib/no-db.js.map +1 -0
  64. package/lib/plan-cache.d.ts +16 -0
  65. package/lib/plan-cache.js +71 -0
  66. package/lib/plan-cache.js.map +1 -0
  67. package/lib/replica-set.d.ts +45 -0
  68. package/lib/replica-set.js +315 -0
  69. package/lib/replica-set.js.map +1 -0
  70. package/lib/result.d.ts +61 -0
  71. package/lib/result.js +105 -0
  72. package/lib/result.js.map +1 -0
  73. package/lib/session.d.ts +25 -0
  74. package/lib/session.js +89 -0
  75. package/lib/session.js.map +1 -0
  76. package/lib/shard.d.ts +42 -0
  77. package/lib/shard.js +415 -0
  78. package/lib/shard.js.map +1 -0
  79. package/lib/shell-api.d.ts +52 -0
  80. package/lib/shell-api.js +299 -0
  81. package/lib/shell-api.js.map +1 -0
  82. package/lib/shell-bson.d.ts +40 -0
  83. package/lib/shell-bson.js +160 -0
  84. package/lib/shell-bson.js.map +1 -0
  85. package/lib/shell-instance-state.d.ts +77 -0
  86. package/lib/shell-instance-state.js +390 -0
  87. package/lib/shell-instance-state.js.map +1 -0
  88. package/package.json +4 -4
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const decorators_1 = require("./decorators");
13
+ const enums_1 = require("./enums");
14
+ const mongo_1 = __importDefault(require("./mongo"));
15
+ const result_1 = require("./result");
16
+ const helpers_1 = require("./helpers");
17
+ const service_provider_core_1 = require("@qp-mongosh/service-provider-core");
18
+ const errors_1 = require("@qp-mongosh/errors");
19
+ const dbquery_1 = require("./dbquery");
20
+ const util_1 = require("util");
21
+ const path_1 = require("path");
22
+ const types_1 = require("@qp-mongosh/types");
23
+ const i18n_1 = __importDefault(require("@qp-mongosh/i18n"));
24
+ const instanceStateSymbol = Symbol.for('@@mongosh.instanceState');
25
+ const loadCallNestingLevelSymbol = Symbol.for('@@mongosh.loadCallNestingLevel');
26
+ let ShellConfig = class ShellConfig extends decorators_1.ShellApiClass {
27
+ constructor(instanceState) {
28
+ super();
29
+ this._instanceState = instanceState;
30
+ this.defaults = Object.freeze(new types_1.ShellUserConfig());
31
+ }
32
+ async set(key, value) {
33
+ var _a, _b;
34
+ (0, helpers_1.assertArgsDefinedType)([key], ['string'], 'config.set');
35
+ const { evaluationListener } = this._instanceState;
36
+ const isValidKey = (await this._allKeys()).includes(key);
37
+ if (isValidKey) {
38
+ const validationResult = await ((_a = evaluationListener.validateConfig) === null || _a === void 0 ? void 0 : _a.call(evaluationListener, key, value));
39
+ if (validationResult) {
40
+ return `Cannot set option "${key}": ${validationResult}`;
41
+ }
42
+ }
43
+ const result = isValidKey && await ((_b = evaluationListener.setConfig) === null || _b === void 0 ? void 0 : _b.call(evaluationListener, key, value));
44
+ if (result !== 'success') {
45
+ return `Option "${key}" is not available in this environment`;
46
+ }
47
+ return `Setting "${key}" has been changed`;
48
+ }
49
+ async get(key) {
50
+ var _a, _b;
51
+ (0, helpers_1.assertArgsDefinedType)([key], ['string'], 'config.get');
52
+ const { evaluationListener } = this._instanceState;
53
+ return (_b = await ((_a = evaluationListener.getConfig) === null || _a === void 0 ? void 0 : _a.call(evaluationListener, key))) !== null && _b !== void 0 ? _b : this.defaults[key];
54
+ }
55
+ async reset(key) {
56
+ var _a;
57
+ (0, helpers_1.assertArgsDefinedType)([key], ['string'], 'config.reset');
58
+ const { evaluationListener } = this._instanceState;
59
+ const result = await ((_a = evaluationListener.resetConfig) === null || _a === void 0 ? void 0 : _a.call(evaluationListener, key));
60
+ if (result !== 'success') {
61
+ return `Option "${key}" cannot be changed in this environment`;
62
+ }
63
+ return `Setting "${key}" has been reset to its default value`;
64
+ }
65
+ async _allKeys() {
66
+ var _a, _b;
67
+ const { evaluationListener } = this._instanceState;
68
+ return ((_b = await ((_a = evaluationListener.listConfigOptions) === null || _a === void 0 ? void 0 : _a.call(evaluationListener))) !== null && _b !== void 0 ? _b : Object.keys(this.defaults));
69
+ }
70
+ async [enums_1.asPrintable]() {
71
+ return new Map(await Promise.all((await this._allKeys()).map(async (key) => [key, await this.get(key)])));
72
+ }
73
+ };
74
+ __decorate([
75
+ decorators_1.returnsPromise
76
+ ], ShellConfig.prototype, "set", null);
77
+ __decorate([
78
+ decorators_1.returnsPromise
79
+ ], ShellConfig.prototype, "get", null);
80
+ __decorate([
81
+ decorators_1.returnsPromise
82
+ ], ShellConfig.prototype, "reset", null);
83
+ ShellConfig = __decorate([
84
+ decorators_1.shellApiClassDefault
85
+ ], ShellConfig);
86
+ async function useCompleter(params, args) {
87
+ var _a;
88
+ if (args.length > 2)
89
+ return undefined;
90
+ return await params.getDatabaseCompletions((_a = args[1]) !== null && _a !== void 0 ? _a : '');
91
+ }
92
+ async function showCompleter(params, args) {
93
+ if (args.length > 2)
94
+ return undefined;
95
+ if (args[1] === 'd') {
96
+ return ['databases'];
97
+ }
98
+ const candidates = ['databases', 'dbs', 'collections', 'tables', 'profile', 'users', 'roles', 'log', 'logs'];
99
+ return candidates.filter(str => { var _a; return str.startsWith((_a = args[1]) !== null && _a !== void 0 ? _a : ''); });
100
+ }
101
+ let ShellApi = class ShellApi extends decorators_1.ShellApiClass {
102
+ constructor(instanceState) {
103
+ super();
104
+ this[instanceStateSymbol] = instanceState;
105
+ this[loadCallNestingLevelSymbol] = 0;
106
+ this.DBQuery = new dbquery_1.DBQuery(instanceState);
107
+ this.config = new ShellConfig(instanceState);
108
+ }
109
+ get _instanceState() {
110
+ return this[instanceStateSymbol];
111
+ }
112
+ get loadCallNestingLevel() {
113
+ return this[loadCallNestingLevelSymbol];
114
+ }
115
+ set loadCallNestingLevel(value) {
116
+ this[loadCallNestingLevelSymbol] = value;
117
+ }
118
+ use(db) {
119
+ return this._instanceState.currentDb._mongo.use(db);
120
+ }
121
+ async show(cmd, arg) {
122
+ return await this._instanceState.currentDb._mongo.show(cmd, arg);
123
+ }
124
+ async exit(exitCode) {
125
+ var _a, _b;
126
+ (0, helpers_1.assertArgsDefinedType)([exitCode], [[undefined, 'number']], 'exit');
127
+ (0, helpers_1.assertCLI)(this._instanceState.initialServiceProvider.platform, 'the exit/quit commands');
128
+ await this._instanceState.close(true);
129
+ await ((_b = (_a = this._instanceState.evaluationListener).onExit) === null || _b === void 0 ? void 0 : _b.call(_a, exitCode));
130
+ throw new errors_1.MongoshInternalError('.onExit listener returned');
131
+ }
132
+ async quit(exitCode) {
133
+ return await this.exit(exitCode);
134
+ }
135
+ async Mongo(uri, fleOptions, otherOptions) {
136
+ (0, helpers_1.assertCLI)(this._instanceState.initialServiceProvider.platform, 'new Mongo connections');
137
+ const mongo = new mongo_1.default(this._instanceState, uri, fleOptions, otherOptions);
138
+ await mongo.connect();
139
+ this._instanceState.mongos.push(mongo);
140
+ return mongo;
141
+ }
142
+ async connect(uri, user, pwd) {
143
+ (0, helpers_1.assertArgsDefinedType)([uri, user, pwd], ['string', [undefined, 'string'], [undefined, 'string']], 'connect');
144
+ (0, helpers_1.assertCLI)(this._instanceState.initialServiceProvider.platform, 'new Mongo connections');
145
+ const mongo = new mongo_1.default(this._instanceState, uri);
146
+ await mongo.connect(user, pwd);
147
+ this._instanceState.mongos.push(mongo);
148
+ const db = mongo._serviceProvider.initialDb || service_provider_core_1.DEFAULT_DB;
149
+ return mongo.getDB(db);
150
+ }
151
+ async it() {
152
+ if (!this._instanceState.currentCursor) {
153
+ return new result_1.CursorIterationResult();
154
+ }
155
+ return await this._instanceState.currentCursor._it();
156
+ }
157
+ version() {
158
+ const version = require('../package.json').version;
159
+ return version;
160
+ }
161
+ async load(filename) {
162
+ (0, helpers_1.assertArgsDefinedType)([filename], ['string'], 'load');
163
+ if (!this._instanceState.evaluationListener.onLoad) {
164
+ throw new errors_1.MongoshUnimplementedError('load is not currently implemented for this platform', errors_1.CommonErrors.NotImplemented);
165
+ }
166
+ this._instanceState.messageBus.emit('mongosh:api-load-file', {
167
+ nested: this.loadCallNestingLevel > 0,
168
+ filename
169
+ });
170
+ const { resolvedFilename, evaluate } = await this._instanceState.evaluationListener.onLoad(filename);
171
+ const context = this._instanceState.context;
172
+ const previousFilename = context.__filename;
173
+ context.__filename = resolvedFilename;
174
+ context.__dirname = (0, path_1.dirname)(resolvedFilename);
175
+ this.loadCallNestingLevel++;
176
+ try {
177
+ await evaluate();
178
+ }
179
+ finally {
180
+ this.loadCallNestingLevel--;
181
+ if (previousFilename) {
182
+ context.__filename = previousFilename;
183
+ context.__dirname = (0, path_1.dirname)(previousFilename);
184
+ }
185
+ else {
186
+ delete context.__filename;
187
+ delete context.__dirname;
188
+ }
189
+ }
190
+ return true;
191
+ }
192
+ async enableTelemetry() {
193
+ var _a, _b;
194
+ const result = await ((_b = (_a = this._instanceState.evaluationListener).setConfig) === null || _b === void 0 ? void 0 : _b.call(_a, 'enableTelemetry', true));
195
+ if (result === 'success') {
196
+ return i18n_1.default.__('cli-repl.cli-repl.enabledTelemetry');
197
+ }
198
+ }
199
+ async disableTelemetry() {
200
+ var _a, _b;
201
+ const result = await ((_b = (_a = this._instanceState.evaluationListener).setConfig) === null || _b === void 0 ? void 0 : _b.call(_a, 'enableTelemetry', false));
202
+ if (result === 'success') {
203
+ return i18n_1.default.__('cli-repl.cli-repl.disabledTelemetry');
204
+ }
205
+ }
206
+ async passwordPrompt() {
207
+ const { evaluationListener } = this._instanceState;
208
+ if (!evaluationListener.onPrompt) {
209
+ throw new errors_1.MongoshUnimplementedError('passwordPrompt() is not available in this shell', errors_1.CommonErrors.NotImplemented);
210
+ }
211
+ return await evaluationListener.onPrompt('Enter password', 'password');
212
+ }
213
+ async sleep(ms) {
214
+ return await (0, util_1.promisify)(setTimeout)(ms);
215
+ }
216
+ async print(...origArgs) {
217
+ var _a;
218
+ const { evaluationListener } = this._instanceState;
219
+ const args = await Promise.all(origArgs.map(arg => (0, decorators_1.toShellResult)(arg)));
220
+ await ((_a = evaluationListener.onPrint) === null || _a === void 0 ? void 0 : _a.call(evaluationListener, args));
221
+ }
222
+ async printjson(...origArgs) {
223
+ return this.print(...origArgs);
224
+ }
225
+ async cls() {
226
+ var _a;
227
+ const { evaluationListener } = this._instanceState;
228
+ await ((_a = evaluationListener.onClearCommand) === null || _a === void 0 ? void 0 : _a.call(evaluationListener));
229
+ }
230
+ isInteractive() {
231
+ return this._instanceState.isInteractive;
232
+ }
233
+ };
234
+ __decorate([
235
+ decorators_1.directShellCommand,
236
+ (0, decorators_1.shellCommandCompleter)(useCompleter)
237
+ ], ShellApi.prototype, "use", null);
238
+ __decorate([
239
+ decorators_1.directShellCommand,
240
+ decorators_1.returnsPromise,
241
+ (0, decorators_1.shellCommandCompleter)(showCompleter)
242
+ ], ShellApi.prototype, "show", null);
243
+ __decorate([
244
+ decorators_1.directShellCommand,
245
+ decorators_1.returnsPromise,
246
+ (0, decorators_1.platforms)([service_provider_core_1.ReplPlatform.CLI])
247
+ ], ShellApi.prototype, "exit", null);
248
+ __decorate([
249
+ decorators_1.directShellCommand,
250
+ decorators_1.returnsPromise,
251
+ (0, decorators_1.platforms)([service_provider_core_1.ReplPlatform.CLI])
252
+ ], ShellApi.prototype, "quit", null);
253
+ __decorate([
254
+ decorators_1.returnsPromise,
255
+ (0, decorators_1.returnType)('Mongo'),
256
+ (0, decorators_1.platforms)([service_provider_core_1.ReplPlatform.CLI])
257
+ ], ShellApi.prototype, "Mongo", null);
258
+ __decorate([
259
+ decorators_1.returnsPromise,
260
+ (0, decorators_1.returnType)('Database'),
261
+ (0, decorators_1.platforms)([service_provider_core_1.ReplPlatform.CLI])
262
+ ], ShellApi.prototype, "connect", null);
263
+ __decorate([
264
+ decorators_1.directShellCommand,
265
+ decorators_1.returnsPromise
266
+ ], ShellApi.prototype, "it", null);
267
+ __decorate([
268
+ decorators_1.returnsPromise
269
+ ], ShellApi.prototype, "load", null);
270
+ __decorate([
271
+ decorators_1.returnsPromise,
272
+ (0, decorators_1.platforms)([service_provider_core_1.ReplPlatform.CLI])
273
+ ], ShellApi.prototype, "enableTelemetry", null);
274
+ __decorate([
275
+ decorators_1.returnsPromise,
276
+ (0, decorators_1.platforms)([service_provider_core_1.ReplPlatform.CLI])
277
+ ], ShellApi.prototype, "disableTelemetry", null);
278
+ __decorate([
279
+ decorators_1.returnsPromise,
280
+ (0, decorators_1.platforms)([service_provider_core_1.ReplPlatform.CLI])
281
+ ], ShellApi.prototype, "passwordPrompt", null);
282
+ __decorate([
283
+ decorators_1.returnsPromise
284
+ ], ShellApi.prototype, "sleep", null);
285
+ __decorate([
286
+ decorators_1.returnsPromise
287
+ ], ShellApi.prototype, "print", null);
288
+ __decorate([
289
+ decorators_1.returnsPromise
290
+ ], ShellApi.prototype, "printjson", null);
291
+ __decorate([
292
+ decorators_1.directShellCommand,
293
+ decorators_1.returnsPromise
294
+ ], ShellApi.prototype, "cls", null);
295
+ ShellApi = __decorate([
296
+ decorators_1.shellApiClassDefault
297
+ ], ShellApi);
298
+ exports.default = ShellApi;
299
+ //# sourceMappingURL=shell-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-api.js","sourceRoot":"","sources":["../src/shell-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /// <reference types="node" />
2
+ import Help from './help';
3
+ import { BinaryType, Document, bson as BSON } from '@qp-mongosh/service-provider-core';
4
+ interface ShellBsonBase {
5
+ DBRef: (namespace: string, oid: any, db?: string, fields?: Document) => typeof BSON.DBRef.prototype;
6
+ Map: typeof BSON.Map;
7
+ bsonsize: (object: any) => number;
8
+ MaxKey: () => typeof BSON.MaxKey.prototype;
9
+ MinKey: () => typeof BSON.MinKey.prototype;
10
+ ObjectId: (id?: string | number | typeof BSON.ObjectId.prototype | Buffer) => typeof BSON.ObjectId.prototype;
11
+ Timestamp: (t?: number | typeof BSON.Long.prototype | {
12
+ t: number;
13
+ i: number;
14
+ }, i?: number) => typeof BSON.Timestamp.prototype;
15
+ Code: (c?: string | Function, s?: any) => typeof BSON.Code.prototype;
16
+ NumberDecimal: (s?: string) => typeof BSON.Decimal128.prototype;
17
+ NumberInt: (v?: string) => typeof BSON.Int32.prototype;
18
+ NumberLong: (s?: string | number) => typeof BSON.Long.prototype;
19
+ ISODate: (input?: string) => Date;
20
+ BinData: (subtype: number, b64string: string) => BinaryType;
21
+ HexData: (subtype: number, hexstr: string) => BinaryType;
22
+ UUID: (hexstr?: string) => BinaryType;
23
+ MD5: (hexstr: string) => BinaryType;
24
+ Decimal128: typeof BSON.Decimal128;
25
+ BSONSymbol: typeof BSON.BSONSymbol;
26
+ Int32: typeof BSON.Int32;
27
+ Long: typeof BSON.Long;
28
+ Binary: typeof BSON.Binary;
29
+ Double: typeof BSON.Double;
30
+ EJSON: typeof BSON.EJSON;
31
+ BSONRegExp: typeof BSON.BSONRegExp;
32
+ }
33
+ type WithHelp<T> = {
34
+ [prop in keyof T]: T[prop] & {
35
+ help?: () => Help;
36
+ };
37
+ };
38
+ export type ShellBson = WithHelp<ShellBsonBase>;
39
+ export default function constructShellBson(bson: typeof BSON, printWarning: (msg: string) => void): ShellBson;
40
+ export {};
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const enums_1 = require("./enums");
7
+ const help_1 = __importDefault(require("./help"));
8
+ const service_provider_core_1 = require("@qp-mongosh/service-provider-core");
9
+ const errors_1 = require("@qp-mongosh/errors");
10
+ const helpers_1 = require("./helpers");
11
+ const crypto_1 = require("crypto");
12
+ function constructHelp(className) {
13
+ const classHelpKeyPrefix = `shell-api.classes.${className}.help`;
14
+ const classHelp = {
15
+ help: `${classHelpKeyPrefix}.description`,
16
+ example: `${classHelpKeyPrefix}.example`,
17
+ docs: `${classHelpKeyPrefix}.link`,
18
+ attr: []
19
+ };
20
+ return new help_1.default(classHelp);
21
+ }
22
+ function constructShellBson(bson, printWarning) {
23
+ const bsonNames = [
24
+ 'Binary', 'Code', 'DBRef', 'Decimal128', 'Double', 'Int32', 'Long',
25
+ 'MaxKey', 'MinKey', 'ObjectId', 'Timestamp', 'Map', 'BSONSymbol',
26
+ 'BSONRegExp'
27
+ ];
28
+ if (bson === undefined) {
29
+ bson = service_provider_core_1.bson;
30
+ }
31
+ const helps = {};
32
+ bsonNames.forEach((className) => {
33
+ if (!(className in bson)) {
34
+ throw new errors_1.MongoshInternalError(`${className} does not exist in provided BSON package.`);
35
+ }
36
+ const proto = bson[className].prototype;
37
+ proto.serverVersions = enums_1.ALL_SERVER_VERSIONS;
38
+ proto.platforms = enums_1.ALL_PLATFORMS;
39
+ proto.topologies = enums_1.ALL_TOPOLOGIES;
40
+ const help = constructHelp(className);
41
+ helps[className] = help;
42
+ proto.help = () => (help);
43
+ Object.setPrototypeOf(proto.help, help);
44
+ });
45
+ bson.BSONSymbol.prototype.serverVersions = [enums_1.ServerVersions.earliest, '1.6.0'];
46
+ bson.BSONSymbol.prototype.deprecated = true;
47
+ const bsonPkg = {
48
+ DBRef: Object.assign(function DBRef(namespace, oid, db, fields) {
49
+ (0, helpers_1.assertArgsDefinedType)([namespace, oid, db], ['string', true, [undefined, 'string'], [undefined, 'object']], 'DBRef');
50
+ return new bson.DBRef(namespace, oid, db, fields);
51
+ }, { ...bson.DBRef, prototype: bson.DBRef.prototype }),
52
+ Map: bson.Map,
53
+ bsonsize: function bsonsize(object) {
54
+ (0, helpers_1.assertArgsDefinedType)([object], ['object'], 'bsonsize');
55
+ return bson.calculateObjectSize(object);
56
+ },
57
+ MaxKey: Object.assign(function MaxKey() {
58
+ return new bson.MaxKey();
59
+ }, { ...bson.MaxKey, toBSON: () => new bson.MaxKey(), prototype: bson.MaxKey.prototype }),
60
+ MinKey: Object.assign(function MinKey() {
61
+ return new bson.MinKey();
62
+ }, { ...bson.MinKey, toBSON: () => new bson.MinKey(), prototype: bson.MinKey.prototype }),
63
+ ObjectId: Object.assign(function ObjectId(id) {
64
+ (0, helpers_1.assertArgsDefinedType)([id], [[undefined, 'string', 'number', 'object']], 'ObjectId');
65
+ return new bson.ObjectId(id);
66
+ }, { ...bson.ObjectId, prototype: bson.ObjectId.prototype }),
67
+ Timestamp: Object.assign(function Timestamp(t, i) {
68
+ (0, helpers_1.assertArgsDefinedType)([t, i], [['number', 'object', undefined], [undefined, 'number']], 'Timestamp');
69
+ if (typeof t === 'object' && t !== null && 't' in t && 'i' in t) {
70
+ return new bson.Timestamp(new bson.Long(t.i, t.t));
71
+ }
72
+ else if (i !== undefined || typeof t === 'number') {
73
+ return new bson.Timestamp(new bson.Long((i !== null && i !== void 0 ? i : 0), t));
74
+ }
75
+ return new bson.Timestamp(t);
76
+ }, { ...bson.Timestamp, prototype: bson.Timestamp.prototype }),
77
+ Code: Object.assign(function Code(c = '', s) {
78
+ (0, helpers_1.assertArgsDefinedType)([c, s], [[undefined, 'string', 'function'], [undefined, 'object']], 'Code');
79
+ return new bson.Code(c, s);
80
+ }, { ...bson.Code, prototype: bson.Code.prototype }),
81
+ NumberDecimal: Object.assign(function NumberDecimal(s = '0') {
82
+ (0, helpers_1.assertArgsDefinedType)([s], [['string', 'number', 'bson:Long', 'bson:Int32', 'bson:Decimal128']], 'NumberDecimal');
83
+ if (typeof s === 'number') {
84
+ printWarning('NumberDecimal: specifying a number as argument is deprecated and may lead to loss of precision, pass a string instead');
85
+ }
86
+ return bson.Decimal128.fromString(`${s}`);
87
+ }, { prototype: bson.Decimal128.prototype }),
88
+ NumberInt: Object.assign(function NumberInt(v = '0') {
89
+ v !== null && v !== void 0 ? v : (v = '0');
90
+ (0, helpers_1.assertArgsDefinedType)([v], [['string', 'number', 'bson:Long', 'bson:Int32']], 'NumberInt');
91
+ return new bson.Int32(parseInt(`${v}`, 10));
92
+ }, { prototype: bson.Int32.prototype }),
93
+ NumberLong: Object.assign(function NumberLong(s = '0') {
94
+ s !== null && s !== void 0 ? s : (s = '0');
95
+ (0, helpers_1.assertArgsDefinedType)([s], [['string', 'number', 'bson:Long', 'bson:Int32']], 'NumberLong');
96
+ if (typeof s === 'number') {
97
+ printWarning('NumberLong: specifying a number as argument is deprecated and may lead to loss of precision, pass a string instead');
98
+ return bson.Long.fromNumber(s);
99
+ }
100
+ return bson.Long.fromString(`${s}`);
101
+ }, { prototype: bson.Long.prototype }),
102
+ ISODate: function ISODate(input) {
103
+ if (!input)
104
+ input = new Date().toISOString();
105
+ const isoDateRegex = /^(?<Y>\d{4})-?(?<M>\d{2})-?(?<D>\d{2})([T ](?<h>\d{2})(:?(?<m>\d{2})(:?((?<s>\d{2})(\.(?<ms>\d+))?))?)?(?<tz>Z|([+-])(\d{2}):?(\d{2})?)?)?$/;
106
+ const match = input.match(isoDateRegex);
107
+ if (match !== null && match.groups !== undefined) {
108
+ const { Y, M, D, h, m, s, ms, tz } = match.groups;
109
+ const normalized = `${Y}-${M}-${D}T${h || '00'}:${m || '00'}:${s || '00'}.${ms || '000'}${tz || 'Z'}`;
110
+ const date = new Date(normalized);
111
+ if (date.getTime() >= -62167219200000 && date.getTime() <= 253402300799999) {
112
+ return date;
113
+ }
114
+ }
115
+ throw new errors_1.MongoshInvalidInputError(`${JSON.stringify(input)} is not a valid ISODate`, errors_1.CommonErrors.InvalidArgument);
116
+ },
117
+ BinData: Object.assign(function BinData(subtype, b64string) {
118
+ (0, helpers_1.assertArgsDefinedType)([subtype, b64string], ['number', 'string'], 'BinData');
119
+ const buffer = Buffer.from(b64string, 'base64');
120
+ return new bson.Binary(buffer, subtype);
121
+ }, { prototype: bson.Binary.prototype }),
122
+ HexData: Object.assign(function HexData(subtype, hexstr) {
123
+ (0, helpers_1.assertArgsDefinedType)([subtype, hexstr], ['number', 'string'], 'HexData');
124
+ const buffer = Buffer.from(hexstr, 'hex');
125
+ return new bson.Binary(buffer, subtype);
126
+ }, { prototype: bson.Binary.prototype }),
127
+ UUID: Object.assign(function UUID(hexstr) {
128
+ if (hexstr === undefined) {
129
+ const uuid = (0, crypto_1.randomBytes)(16);
130
+ uuid[6] = (uuid[6] & 0x0f) | 0x40;
131
+ uuid[8] = (uuid[8] & 0x3f) | 0x80;
132
+ hexstr = uuid.toString('hex');
133
+ }
134
+ (0, helpers_1.assertArgsDefinedType)([hexstr], ['string'], 'UUID');
135
+ const buffer = Buffer.from(hexstr.replace(/-/g, ''), 'hex');
136
+ return new bson.Binary(buffer, bson.Binary.SUBTYPE_UUID);
137
+ }, { prototype: bson.Binary.prototype }),
138
+ MD5: Object.assign(function MD5(hexstr) {
139
+ (0, helpers_1.assertArgsDefinedType)([hexstr], ['string'], 'MD5');
140
+ const buffer = Buffer.from(hexstr, 'hex');
141
+ return new bson.Binary(buffer, bson.Binary.SUBTYPE_MD5);
142
+ }, { prototype: bson.Binary.prototype }),
143
+ Decimal128: bson.Decimal128,
144
+ BSONSymbol: bson.BSONSymbol,
145
+ Int32: bson.Int32,
146
+ Long: bson.Long,
147
+ Binary: bson.Binary,
148
+ Double: bson.Double,
149
+ EJSON: bson.EJSON,
150
+ BSONRegExp: bson.BSONRegExp
151
+ };
152
+ for (const className of Object.keys(bsonPkg)) {
153
+ const help = helps[className] || constructHelp(className);
154
+ bsonPkg[className].help = () => (help);
155
+ Object.setPrototypeOf(bsonPkg[className].help, help);
156
+ }
157
+ return bsonPkg;
158
+ }
159
+ exports.default = constructShellBson;
160
+ //# sourceMappingURL=shell-bson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell-bson.js","sourceRoot":"","sources":["../src/shell-bson.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { AutoEncryptionOptions, ConnectInfo, ServerApi, ServiceProvider } from '@qp-mongosh/service-provider-core';
2
+ import type { ApiEvent, ApiEventWithArguments, ConfigProvider, MongoshBus, ShellUserConfig } from '@qp-mongosh/types';
3
+ import ChangeStreamCursor from './change-stream-cursor';
4
+ import { Topologies } from './enums';
5
+ import { AggregationCursor, Cursor, Database, Mongo, ShellApi, ShellResult } from './index';
6
+ import { InterruptFlag } from './interruptor';
7
+ import { ShellBson } from './shell-bson';
8
+ export interface ShellCliOptions {
9
+ nodb?: boolean;
10
+ }
11
+ export interface AutocompleteParameters {
12
+ topology: () => Topologies;
13
+ apiVersionInfo: () => Required<ServerApi> | undefined;
14
+ connectionInfo: () => ConnectInfo | undefined;
15
+ getCollectionCompletionsForCurrentDb: (collName: string) => Promise<string[]>;
16
+ getDatabaseCompletions: (dbName: string) => Promise<string[]>;
17
+ }
18
+ export interface OnLoadResult {
19
+ resolvedFilename: string;
20
+ evaluate(): Promise<void>;
21
+ }
22
+ export interface EvaluationListener extends Partial<ConfigProvider<ShellUserConfig>> {
23
+ onPrint?: (value: ShellResult[]) => Promise<void> | void;
24
+ onPrompt?: (question: string, type: 'password' | 'yesno') => Promise<string> | string;
25
+ onClearCommand?: () => Promise<void> | void;
26
+ onExit?: (exitCode?: number) => Promise<never>;
27
+ onLoad?: (filename: string) => Promise<OnLoadResult> | OnLoadResult;
28
+ startMongocryptd?: () => Promise<AutoEncryptionOptions['extraOptions']>;
29
+ }
30
+ export interface ShellPlugin {
31
+ transformError?: (err: Error) => Error;
32
+ }
33
+ export default class ShellInstanceState {
34
+ currentCursor: Cursor | AggregationCursor | ChangeStreamCursor | null;
35
+ currentDb: Database;
36
+ messageBus: MongoshBus;
37
+ initialServiceProvider: ServiceProvider;
38
+ connectionInfo: any;
39
+ context: any;
40
+ mongos: Mongo[];
41
+ shellApi: ShellApi;
42
+ shellBson: ShellBson;
43
+ cliOptions: ShellCliOptions;
44
+ evaluationListener: EvaluationListener;
45
+ displayBatchSizeFromDBQuery: number | undefined;
46
+ isInteractive: boolean;
47
+ apiCallDepth: number;
48
+ private warningsShown;
49
+ readonly interrupted: InterruptFlag;
50
+ resumeMongosAfterInterrupt: Array<{
51
+ mongo: Mongo;
52
+ resume: (() => Promise<void>) | null;
53
+ }> | undefined;
54
+ private plugins;
55
+ private alreadyTransformedErrors;
56
+ constructor(initialServiceProvider: ServiceProvider, messageBus?: any, cliOptions?: ShellCliOptions);
57
+ fetchConnectionInfo(): Promise<void>;
58
+ close(force: boolean): Promise<void>;
59
+ setDbFunc(newDb: any): Database;
60
+ setCtx(contextObject: any): void;
61
+ get currentServiceProvider(): ServiceProvider;
62
+ emitApiCallWithArgs(event: ApiEventWithArguments): void;
63
+ emitApiCall(event: Omit<ApiEvent, 'callDepth'>): void;
64
+ setEvaluationListener(listener: EvaluationListener): void;
65
+ getAutocompleteParameters(): AutocompleteParameters;
66
+ apiVersionInfo(): Required<ServerApi> | undefined;
67
+ onInterruptExecution(): Promise<boolean>;
68
+ onResumeExecution(): Promise<boolean>;
69
+ getDefaultPrompt(): Promise<string>;
70
+ private getDefaultPromptPrefix;
71
+ private getTopologySpecificPrompt;
72
+ private getTopologySinglePrompt;
73
+ registerPlugin(plugin: ShellPlugin): void;
74
+ transformError(err: any): any;
75
+ printDeprecationWarning(message: string): Promise<void>;
76
+ printWarning(message: string): Promise<void>;
77
+ }