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

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/package.json +6 -5
  2. package/lib/abstract-cursor.d.ts +0 -33
  3. package/lib/abstract-cursor.js +0 -192
  4. package/lib/abstract-cursor.js.map +0 -1
  5. package/lib/aggregation-cursor.d.ts +0 -6
  6. package/lib/aggregation-cursor.js +0 -20
  7. package/lib/aggregation-cursor.js.map +0 -1
  8. package/lib/bulk.d.ts +0 -43
  9. package/lib/bulk.js +0 -224
  10. package/lib/bulk.js.map +0 -1
  11. package/lib/change-stream-cursor.d.ts +0 -28
  12. package/lib/change-stream-cursor.js +0 -112
  13. package/lib/change-stream-cursor.js.map +0 -1
  14. package/lib/collection.d.ts +0 -95
  15. package/lib/collection.js +0 -965
  16. package/lib/collection.js.map +0 -1
  17. package/lib/cursor.d.ts +0 -32
  18. package/lib/cursor.js +0 -216
  19. package/lib/cursor.js.map +0 -1
  20. package/lib/database.d.ts +0 -116
  21. package/lib/database.js +0 -1224
  22. package/lib/database.js.map +0 -1
  23. package/lib/dbquery.d.ts +0 -8
  24. package/lib/dbquery.js +0 -29
  25. package/lib/dbquery.js.map +0 -1
  26. package/lib/decorators.d.ts +0 -73
  27. package/lib/decorators.js +0 -396
  28. package/lib/decorators.js.map +0 -1
  29. package/lib/enums.d.ts +0 -28
  30. package/lib/enums.js +0 -34
  31. package/lib/enums.js.map +0 -1
  32. package/lib/error-codes.d.ts +0 -12
  33. package/lib/error-codes.js +0 -20
  34. package/lib/error-codes.js.map +0 -1
  35. package/lib/explainable-cursor.d.ts +0 -11
  36. package/lib/explainable-cursor.js +0 -32
  37. package/lib/explainable-cursor.js.map +0 -1
  38. package/lib/explainable.d.ts +0 -32
  39. package/lib/explainable.js +0 -167
  40. package/lib/explainable.js.map +0 -1
  41. package/lib/field-level-encryption.d.ts +0 -50
  42. package/lib/field-level-encryption.js +0 -177
  43. package/lib/field-level-encryption.js.map +0 -1
  44. package/lib/help.d.ts +0 -22
  45. package/lib/help.js +0 -27
  46. package/lib/help.js.map +0 -1
  47. package/lib/helpers.d.ts +0 -71
  48. package/lib/helpers.js +0 -589
  49. package/lib/helpers.js.map +0 -1
  50. package/lib/index.d.ts +0 -16
  51. package/lib/index.js +0 -46
  52. package/lib/index.js.map +0 -1
  53. package/lib/interruptor.d.ts +0 -19
  54. package/lib/interruptor.js +0 -63
  55. package/lib/interruptor.js.map +0 -1
  56. package/lib/mongo-errors.d.ts +0 -5
  57. package/lib/mongo-errors.js +0 -38
  58. package/lib/mongo-errors.js.map +0 -1
  59. package/lib/mongo.d.ts +0 -75
  60. package/lib/mongo.js +0 -477
  61. package/lib/mongo.js.map +0 -1
  62. package/lib/no-db.d.ts +0 -5
  63. package/lib/no-db.js +0 -29
  64. package/lib/no-db.js.map +0 -1
  65. package/lib/plan-cache.d.ts +0 -16
  66. package/lib/plan-cache.js +0 -71
  67. package/lib/plan-cache.js.map +0 -1
  68. package/lib/replica-set.d.ts +0 -45
  69. package/lib/replica-set.js +0 -315
  70. package/lib/replica-set.js.map +0 -1
  71. package/lib/result.d.ts +0 -61
  72. package/lib/result.js +0 -105
  73. package/lib/result.js.map +0 -1
  74. package/lib/session.d.ts +0 -25
  75. package/lib/session.js +0 -89
  76. package/lib/session.js.map +0 -1
  77. package/lib/shard.d.ts +0 -42
  78. package/lib/shard.js +0 -415
  79. package/lib/shard.js.map +0 -1
  80. package/lib/shell-api.d.ts +0 -52
  81. package/lib/shell-api.js +0 -299
  82. package/lib/shell-api.js.map +0 -1
  83. package/lib/shell-bson.d.ts +0 -40
  84. package/lib/shell-bson.js +0 -160
  85. package/lib/shell-bson.js.map +0 -1
  86. package/lib/shell-instance-state.d.ts +0 -77
  87. package/lib/shell-instance-state.js +0 -390
  88. package/lib/shell-instance-state.js.map +0 -1
@@ -1,390 +0,0 @@
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 errors_1 = require("@qp-mongosh/errors");
7
- const service_provider_core_1 = require("@qp-mongosh/service-provider-core");
8
- const events_1 = require("events");
9
- const decorators_1 = require("./decorators");
10
- const enums_1 = require("./enums");
11
- const error_codes_1 = require("./error-codes");
12
- const index_1 = require("./index");
13
- const interruptor_1 = require("./interruptor");
14
- const mongo_errors_1 = require("./mongo-errors");
15
- const no_db_1 = __importDefault(require("./no-db"));
16
- const shell_bson_1 = __importDefault(require("./shell-bson"));
17
- class ShellInstanceState {
18
- constructor(initialServiceProvider, messageBus = new events_1.EventEmitter(), cliOptions = {}) {
19
- this.displayBatchSizeFromDBQuery = undefined;
20
- this.isInteractive = false;
21
- this.apiCallDepth = 0;
22
- this.warningsShown = new Set();
23
- this.interrupted = new interruptor_1.InterruptFlag();
24
- this.plugins = [new mongo_errors_1.TransformMongoErrorPlugin()];
25
- this.alreadyTransformedErrors = new WeakMap();
26
- this.initialServiceProvider = initialServiceProvider;
27
- this.messageBus = messageBus;
28
- this.shellApi = new index_1.ShellApi(this);
29
- this.shellBson = (0, shell_bson_1.default)(initialServiceProvider.bsonLibrary, (msg) => {
30
- void this.shellApi.print(`Warning: ${msg}`);
31
- });
32
- this.mongos = [];
33
- this.connectionInfo = { buildInfo: {} };
34
- if (!cliOptions.nodb) {
35
- const mongo = new index_1.Mongo(this, undefined, undefined, undefined, initialServiceProvider);
36
- this.mongos.push(mongo);
37
- this.currentDb = mongo.getDB(initialServiceProvider.initialDb || service_provider_core_1.DEFAULT_DB);
38
- }
39
- else {
40
- this.currentDb = new no_db_1.default();
41
- }
42
- this.currentCursor = null;
43
- this.context = {};
44
- this.cliOptions = cliOptions;
45
- this.evaluationListener = {};
46
- }
47
- async fetchConnectionInfo() {
48
- }
49
- async close(force) {
50
- for (const mongo of [...this.mongos]) {
51
- await mongo.close(force);
52
- }
53
- }
54
- setDbFunc(newDb) {
55
- this.currentDb = newDb;
56
- this.context.rs = new index_1.ReplicaSet(this.currentDb);
57
- this.context.sh = new index_1.Shard(this.currentDb);
58
- this.fetchConnectionInfo().catch((err) => this.messageBus.emit('mongosh:error', err, 'shell-api'));
59
- this.currentCursor = null;
60
- return newDb;
61
- }
62
- setCtx(contextObject) {
63
- this.context = contextObject;
64
- Object.assign(contextObject, this.shellApi);
65
- for (const name of Object.getOwnPropertyNames(index_1.ShellApi.prototype)) {
66
- const { shellApi } = this;
67
- if (decorators_1.toIgnore.concat(['help']).includes(name) ||
68
- typeof shellApi[name] !== 'function') {
69
- continue;
70
- }
71
- contextObject[name] = function (...args) {
72
- return shellApi[name](...args);
73
- };
74
- contextObject[name].help = shellApi[name].help;
75
- }
76
- contextObject.help = this.shellApi.help;
77
- Object.assign(contextObject, this.shellBson);
78
- if (contextObject.console === undefined) {
79
- contextObject.console = {};
80
- }
81
- for (const key of ['log', 'warn', 'info', 'error']) {
82
- contextObject.console[key] = (...args) => {
83
- return contextObject.print(...args);
84
- };
85
- }
86
- contextObject.console.clear = contextObject.cls;
87
- contextObject.rs = new index_1.ReplicaSet(this.currentDb);
88
- contextObject.sh = new index_1.Shard(this.currentDb);
89
- const setFunc = (newDb) => {
90
- if ((0, index_1.getShellApiType)(newDb) !== 'Database') {
91
- throw new errors_1.MongoshInvalidInputError("Cannot reassign 'db' to non-Database type", errors_1.CommonErrors.InvalidOperation);
92
- }
93
- return this.setDbFunc(newDb);
94
- };
95
- if (this.initialServiceProvider.platform === service_provider_core_1.ReplPlatform.JavaShell) {
96
- contextObject.db = this.setDbFunc(this.currentDb);
97
- }
98
- else {
99
- Object.defineProperty(contextObject, 'db', {
100
- configurable: true,
101
- set: setFunc,
102
- get: () => this.currentDb,
103
- });
104
- }
105
- this.messageBus.emit('mongosh:setCtx', {
106
- method: 'setCtx',
107
- arguments: {},
108
- });
109
- }
110
- get currentServiceProvider() {
111
- try {
112
- return this.currentDb._mongo._serviceProvider;
113
- }
114
- catch (err) {
115
- if ((err === null || err === void 0 ? void 0 : err.code) === error_codes_1.ShellApiErrors.NotConnected) {
116
- return this.initialServiceProvider;
117
- }
118
- throw err;
119
- }
120
- }
121
- emitApiCallWithArgs(event) {
122
- this.messageBus.emit('mongosh:api-call-with-arguments', event);
123
- }
124
- emitApiCall(event) {
125
- this.messageBus.emit('mongosh:api-call', {
126
- ...event,
127
- callDepth: this.apiCallDepth,
128
- });
129
- }
130
- setEvaluationListener(listener) {
131
- this.evaluationListener = listener;
132
- }
133
- getAutocompleteParameters() {
134
- return {
135
- topology: () => {
136
- var _a;
137
- let topology;
138
- const topologyDescription = (_a = this.currentServiceProvider.getTopology()) === null || _a === void 0 ? void 0 : _a.description;
139
- const topologyType = topologyDescription === null || topologyDescription === void 0 ? void 0 : topologyDescription.type;
140
- switch (topologyType) {
141
- case 'ReplicaSetNoPrimary':
142
- case 'ReplicaSetWithPrimary':
143
- topology = enums_1.Topologies.ReplSet;
144
- break;
145
- case 'Sharded':
146
- topology = enums_1.Topologies.Sharded;
147
- break;
148
- case 'LoadBalanced':
149
- topology = enums_1.Topologies.LoadBalanced;
150
- break;
151
- default:
152
- topology = enums_1.Topologies.Standalone;
153
- if (topologyDescription.servers.size === 1) {
154
- const [server] = topologyDescription.servers.values();
155
- switch (server.type) {
156
- case 'Mongos':
157
- topology = enums_1.Topologies.Sharded;
158
- break;
159
- case 'PossiblePrimary':
160
- case 'RSPrimary':
161
- case 'RSSecondary':
162
- case 'RSArbiter':
163
- case 'RSOther':
164
- case 'RSGhost':
165
- topology = enums_1.Topologies.ReplSet;
166
- break;
167
- default:
168
- break;
169
- }
170
- }
171
- break;
172
- }
173
- return topology;
174
- },
175
- apiVersionInfo: () => {
176
- return this.apiVersionInfo();
177
- },
178
- connectionInfo: () => {
179
- return this.connectionInfo.extraInfo;
180
- },
181
- getCollectionCompletionsForCurrentDb: async (collName) => {
182
- try {
183
- const collectionNames = await this.currentDb._getCollectionNamesForCompletion();
184
- return collectionNames.filter((name) => name.toLowerCase().startsWith(collName.toLowerCase()));
185
- }
186
- catch (err) {
187
- if ((err === null || err === void 0 ? void 0 : err.code) === error_codes_1.ShellApiErrors.NotConnected ||
188
- (err === null || err === void 0 ? void 0 : err.codeName) === 'Unauthorized') {
189
- return [];
190
- }
191
- throw err;
192
- }
193
- },
194
- getDatabaseCompletions: async (dbName) => {
195
- try {
196
- const dbNames = await this.currentDb._mongo._getDatabaseNamesForCompletion();
197
- return dbNames.filter((name) => name.toLowerCase().startsWith(dbName.toLowerCase()));
198
- }
199
- catch (err) {
200
- if ((err === null || err === void 0 ? void 0 : err.code) === error_codes_1.ShellApiErrors.NotConnected ||
201
- (err === null || err === void 0 ? void 0 : err.codeName) === 'Unauthorized') {
202
- return [];
203
- }
204
- throw err;
205
- }
206
- },
207
- };
208
- }
209
- apiVersionInfo() {
210
- var _a, _b;
211
- const { serverApi } = (_b = (_a = this.currentServiceProvider.getRawClient()) === null || _a === void 0 ? void 0 : _a.options) !== null && _b !== void 0 ? _b : {};
212
- return (serverApi === null || serverApi === void 0 ? void 0 : serverApi.version)
213
- ? { strict: false, deprecationErrors: false, ...serverApi }
214
- : undefined;
215
- }
216
- async onInterruptExecution() {
217
- this.interrupted.set();
218
- this.currentCursor = null;
219
- this.resumeMongosAfterInterrupt = await Promise.all(this.mongos.map(async (m) => {
220
- try {
221
- return {
222
- mongo: m,
223
- resume: await m._suspend(),
224
- };
225
- }
226
- catch (e) {
227
- return {
228
- mongo: m,
229
- resume: null,
230
- };
231
- }
232
- }));
233
- return !this.resumeMongosAfterInterrupt.find((r) => r.resume === null);
234
- }
235
- async onResumeExecution() {
236
- var _a, _b;
237
- const promises = (_b = (_a = this.resumeMongosAfterInterrupt) === null || _a === void 0 ? void 0 : _a.map(async (r) => {
238
- if (!this.mongos.find((m) => m === r.mongo)) {
239
- return true;
240
- }
241
- if (r.resume === null) {
242
- return false;
243
- }
244
- try {
245
- await r.resume();
246
- return true;
247
- }
248
- catch (e) {
249
- return false;
250
- }
251
- })) !== null && _b !== void 0 ? _b : [];
252
- this.resumeMongosAfterInterrupt = undefined;
253
- const result = await Promise.all(promises);
254
- this.interrupted.reset();
255
- return !result.find((r) => r === false);
256
- }
257
- async getDefaultPrompt() {
258
- const prefix = this.getDefaultPromptPrefix();
259
- const topologyInfo = this.getTopologySpecificPrompt();
260
- let dbname = '';
261
- try {
262
- dbname = this.currentDb.getName();
263
- }
264
- catch (_a) {
265
- }
266
- return `${[prefix, topologyInfo, dbname].filter(Boolean).join(' ')}> `;
267
- }
268
- getDefaultPromptPrefix() {
269
- var _a, _b, _c, _d;
270
- const extraConnectionInfo = (_a = this.connectionInfo) === null || _a === void 0 ? void 0 : _a.extraInfo;
271
- if (extraConnectionInfo === null || extraConnectionInfo === void 0 ? void 0 : extraConnectionInfo.is_data_lake) {
272
- return 'AtlasDataLake';
273
- }
274
- else if (extraConnectionInfo === null || extraConnectionInfo === void 0 ? void 0 : extraConnectionInfo.is_atlas) {
275
- return 'Atlas';
276
- }
277
- else if ((extraConnectionInfo === null || extraConnectionInfo === void 0 ? void 0 : extraConnectionInfo.is_enterprise) ||
278
- ((_d = (_c = (_b = this.connectionInfo) === null || _b === void 0 ? void 0 : _b.buildInfo) === null || _c === void 0 ? void 0 : _c.modules) === null || _d === void 0 ? void 0 : _d.indexOf('enterprise')) >= 0) {
279
- return 'Enterprise';
280
- }
281
- return '';
282
- }
283
- getTopologySpecificPrompt() {
284
- var _a, _b, _c, _d;
285
- const description = (_a = this.currentServiceProvider.getTopology()) === null || _a === void 0 ? void 0 : _a.description;
286
- if (!description) {
287
- return '';
288
- }
289
- let replicaSet = description.setName;
290
- let serverTypePrompt = '';
291
- switch (description.type) {
292
- case 'Single':
293
- const singleDetails = this.getTopologySinglePrompt(description);
294
- replicaSet = (_b = singleDetails === null || singleDetails === void 0 ? void 0 : singleDetails.replicaSet) !== null && _b !== void 0 ? _b : replicaSet;
295
- serverTypePrompt = (singleDetails === null || singleDetails === void 0 ? void 0 : singleDetails.serverType)
296
- ? `[direct: ${singleDetails.serverType}]`
297
- : '';
298
- break;
299
- case 'ReplicaSetNoPrimary':
300
- serverTypePrompt = '[secondary]';
301
- break;
302
- case 'ReplicaSetWithPrimary':
303
- serverTypePrompt = '[primary]';
304
- break;
305
- case 'Sharded':
306
- serverTypePrompt = ((_d = (_c = this.connectionInfo) === null || _c === void 0 ? void 0 : _c.extraInfo) === null || _d === void 0 ? void 0 : _d.atlas_version)
307
- ? ''
308
- : '[mongos]';
309
- break;
310
- case 'LoadBalanced':
311
- default:
312
- return '';
313
- }
314
- const setNamePrefix = replicaSet ? `${replicaSet} ` : '';
315
- return `${setNamePrefix}${serverTypePrompt}`;
316
- }
317
- getTopologySinglePrompt(description) {
318
- var _a;
319
- if (((_a = description.servers) === null || _a === void 0 ? void 0 : _a.size) !== 1) {
320
- return undefined;
321
- }
322
- const [server] = description.servers.values();
323
- let serverType;
324
- switch (server.type) {
325
- case 'Mongos':
326
- serverType = 'mongos';
327
- break;
328
- case 'RSPrimary':
329
- serverType = 'primary';
330
- break;
331
- case 'RSSecondary':
332
- serverType = 'secondary';
333
- break;
334
- case 'RSArbiter':
335
- serverType = 'arbiter';
336
- break;
337
- case 'RSOther':
338
- serverType = 'other';
339
- break;
340
- default:
341
- serverType = '';
342
- }
343
- return {
344
- replicaSet: server.setName,
345
- serverType,
346
- };
347
- }
348
- registerPlugin(plugin) {
349
- this.plugins.push(plugin);
350
- }
351
- transformError(err) {
352
- if (Object.prototype.toString.call(err) === '[object Error]') {
353
- if (this.alreadyTransformedErrors.has(err)) {
354
- return this.alreadyTransformedErrors.get(err);
355
- }
356
- const before = err;
357
- for (const plugin of this.plugins) {
358
- if (plugin.transformError) {
359
- err = plugin.transformError(err);
360
- }
361
- }
362
- this.alreadyTransformedErrors.set(before, err);
363
- }
364
- return err;
365
- }
366
- async printDeprecationWarning(message) {
367
- if (!this.warningsShown.has(message)) {
368
- this.warningsShown.add(message);
369
- if (this.context.print) {
370
- await this.context.print.call(this.shellApi, `DeprecationWarning: ${message}`);
371
- }
372
- else {
373
- await this.shellApi.print(`DeprecationWarning: ${message}`);
374
- }
375
- }
376
- }
377
- async printWarning(message) {
378
- if (!this.warningsShown.has(message)) {
379
- this.warningsShown.add(message);
380
- if (this.context.print) {
381
- await this.context.print.call(this.shellApi, `Warning: ${message}`);
382
- }
383
- else {
384
- await this.shellApi.print(`Warning: ${message}`);
385
- }
386
- }
387
- }
388
- }
389
- exports.default = ShellInstanceState;
390
- //# sourceMappingURL=shell-instance-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shell-instance-state.js","sourceRoot":"","sources":["../src/shell-instance-state.ts"],"names":[],"mappings":"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"}