@mongosh/autocomplete 3.13.0 → 3.16.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
@@ -17,3 +17,4 @@ Gagik Amaryan <me@gagik.co>
17
17
  mongodb-devtools-bot[bot] <189715634+mongodb-devtools-bot[bot]@users.noreply.github.com>
18
18
  Ubuntu <ubuntu@ip-10-0-5-160.ec2.internal>
19
19
  Ubuntu <ubuntu@ip-10-0-4-95.ec2.internal>
20
+ Nikola Irinchev <irinchev@me.com>
@@ -0,0 +1,2 @@
1
+ import type { AutocompletionContext } from '@mongodb-js/mongodb-ts-autocomplete';
2
+ export declare function directCommandCompleter(context: AutocompletionContext, line: string): Promise<string[]>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.directCommandCompleter = directCommandCompleter;
4
+ const shell_api_1 = require("@mongosh/shell-api");
5
+ async function directCommandCompleter(context, line) {
6
+ var _a;
7
+ const SHELL_COMPLETIONS = shell_api_1.signatures.ShellApi
8
+ .attributes;
9
+ const splitLineWhitespace = line.split(/(?<!\S)(?=\S)/);
10
+ const command = splitLineWhitespace[0].trim();
11
+ if (!((_a = SHELL_COMPLETIONS[command]) === null || _a === void 0 ? void 0 : _a.isDirectShellCommand)) {
12
+ return [];
13
+ }
14
+ const completer = SHELL_COMPLETIONS[command].newShellCommandCompleter;
15
+ if (!completer) {
16
+ return [line];
17
+ }
18
+ if (splitLineWhitespace.length === 1) {
19
+ if (splitLineWhitespace[0].trimEnd() === splitLineWhitespace[0]) {
20
+ splitLineWhitespace[0] += ' ';
21
+ }
22
+ splitLineWhitespace.push('');
23
+ }
24
+ const hits = (await completer(context, splitLineWhitespace.map((item) => item.trim()))) || [];
25
+ const fullLineHits = hits.map((hit) => [...splitLineWhitespace.slice(0, -1), hit].join(''));
26
+ return fullLineHits;
27
+ }
28
+ //# sourceMappingURL=direct-command-completer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-command-completer.js","sourceRoot":"","sources":["../src/direct-command-completer.ts"],"names":[],"mappings":";;AAMA,wDA6CC;AAjDD,kDAAmE;AAI5D,KAAK,UAAU,sBAAsB,CAC1C,OAA8B,EAC9B,IAAY;;IAEZ,MAAM,iBAAiB,GAAG,sBAAe,CAAC,QAAQ;SAC/C,UAAqC,CAAC;IAKzC,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,CAAA,MAAA,iBAAiB,CAAC,OAAO,CAAC,0CAAE,oBAAoB,CAAA,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IAID,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC;IACtE,IAAI,CAAC,SAAS,EAAE,CAAC;QAEf,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhE,mBAAmB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAChC,CAAC;QAGD,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,IAAI,GACR,CAAC,MAAM,SAAS,CACd,OAAO,EACP,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAC/C,CAAC,IAAI,EAAE,CAAC;IAGX,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACpC,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACpD,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Topologies } from '@mongosh/shell-api';
2
+ import type { AutocompletionContext } from '@mongodb-js/mongodb-ts-autocomplete';
2
3
  export interface AutocompleteParameters {
3
4
  topology: () => Topologies | undefined;
4
5
  connectionInfo: () => undefined | {
@@ -3818,5 +3819,11 @@ export declare const MATCH_COMPLETIONS: ({
3818
3819
  readonly description: "BSON Regex type";
3819
3820
  readonly snippet: "RegExp('${1:source}', '${2:opts}')";
3820
3821
  })[];
3821
- declare function completer(params: AutocompleteParameters, line: string): Promise<[string[], string, 'exclusive'] | [string[], string]>;
3822
- export default completer;
3822
+ export declare function completer(params: AutocompleteParameters, line: string): Promise<[string[], string, 'exclusive'] | [string[], string]>;
3823
+ type AutocompleteShellInstanceState = {
3824
+ getAutocompleteParameters: () => AutocompleteParameters;
3825
+ getAutocompletionContext: () => AutocompletionContext;
3826
+ };
3827
+ export type CompletionResults = [string[], string, 'exclusive'] | [string[], string];
3828
+ export declare function initNewAutocompleter(instanceState: Pick<AutocompleteShellInstanceState, 'getAutocompletionContext'>): Promise<(text: string) => Promise<CompletionResults>>;
3829
+ export {};
package/lib/index.js CHANGED
@@ -1,12 +1,48 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.MATCH_COMPLETIONS = exports.BASE_COMPLETIONS = void 0;
40
+ exports.completer = completer;
41
+ exports.initNewAutocompleter = initNewAutocompleter;
7
42
  const shell_api_1 = require("@mongosh/shell-api");
8
43
  const semver_1 = __importDefault(require("semver"));
9
44
  const mongodb_constants_1 = require("@mongodb-js/mongodb-constants");
45
+ const direct_command_completer_1 = require("./direct-command-completer");
10
46
  exports.BASE_COMPLETIONS = [].concat(mongodb_constants_1.EXPRESSION_OPERATORS, mongodb_constants_1.CONVERSION_OPERATORS, mongodb_constants_1.BSON_TYPES, mongodb_constants_1.STAGE_OPERATORS);
11
47
  exports.MATCH_COMPLETIONS = [].concat(mongodb_constants_1.QUERY_OPERATORS, mongodb_constants_1.BSON_TYPES);
12
48
  const DB_AGGREGATE_COMPLETIONS = mongodb_constants_1.STAGE_OPERATORS.filter(({ namespaces }) => {
@@ -220,5 +256,23 @@ function filterShellAPI(params, completions, prefix, split) {
220
256
  }
221
257
  return hits;
222
258
  }
223
- exports.default = completer;
259
+ function transformAutocompleteResults(line, results) {
260
+ return [results.map((result) => result.result), line];
261
+ }
262
+ async function initNewAutocompleter(instanceState) {
263
+ const { MongoDBAutocompleter } = await Promise.resolve().then(() => __importStar(require('@mongodb-js/mongodb-ts-autocomplete')));
264
+ const autocompletionContext = instanceState.getAutocompletionContext();
265
+ const mongoDBCompleter = new MongoDBAutocompleter({
266
+ context: autocompletionContext,
267
+ });
268
+ return async (text) => {
269
+ const directResults = await (0, direct_command_completer_1.directCommandCompleter)(autocompletionContext, text);
270
+ if (directResults.length) {
271
+ return [directResults, text, 'exclusive'];
272
+ }
273
+ const results = await mongoDBCompleter.autocomplete(text);
274
+ const transformed = transformAutocompleteResults(text, results);
275
+ return transformed;
276
+ };
277
+ }
224
278
  //# sourceMappingURL=index.js.map
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/autocomplete",
3
- "version": "3.13.0",
3
+ "version": "3.16.0",
4
4
  "description": "MongoDB Shell Autocomplete Package",
5
5
  "homepage": "https://github.com/mongodb-js/mongosh",
6
6
  "license": "Apache-2.0",
@@ -44,8 +44,9 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@mongodb-js/mongodb-constants": "^0.10.1",
47
- "@mongosh/shell-api": "^3.13.0",
47
+ "@mongodb-js/mongodb-ts-autocomplete": "^0.2.5",
48
+ "@mongosh/shell-api": "^3.16.0",
48
49
  "semver": "^7.5.4"
49
50
  },
50
- "gitHead": "5068f4cea2aa8056f458246804ddcbefbd5a1aae"
51
+ "gitHead": "ac4db1326a3c7ad18fff9a6ac06d1ca4604b0467"
51
52
  }
@@ -0,0 +1,52 @@
1
+ import type { AutocompletionContext } from '@mongodb-js/mongodb-ts-autocomplete';
2
+ import type { TypeSignature } from '@mongosh/shell-api';
3
+ import { signatures as shellSignatures } from '@mongosh/shell-api';
4
+
5
+ type TypeSignatureAttributes = { [key: string]: TypeSignature };
6
+
7
+ export async function directCommandCompleter(
8
+ context: AutocompletionContext,
9
+ line: string
10
+ ): Promise<string[]> {
11
+ const SHELL_COMPLETIONS = shellSignatures.ShellApi
12
+ .attributes as TypeSignatureAttributes;
13
+
14
+ // Split at space-to-non-space transitions when looking at this as a command,
15
+ // because multiple spaces (e.g. 'show collections') are valid in commands.
16
+ // This split keeps the spaces intact so we can join them back later.
17
+ const splitLineWhitespace = line.split(/(?<!\S)(?=\S)/);
18
+ const command = splitLineWhitespace[0].trim();
19
+ if (!SHELL_COMPLETIONS[command]?.isDirectShellCommand) {
20
+ return [];
21
+ }
22
+
23
+ // If the shell API provides us with a completer, use it.
24
+ // examples: use, show, snippet
25
+ const completer = SHELL_COMPLETIONS[command].newShellCommandCompleter;
26
+ if (!completer) {
27
+ // examples without a custom completer: exit, quit, it, cls
28
+ return [line];
29
+ }
30
+
31
+ if (splitLineWhitespace.length === 1) {
32
+ if (splitLineWhitespace[0].trimEnd() === splitLineWhitespace[0]) {
33
+ // Treat e.g. 'show' like 'show '.
34
+ splitLineWhitespace[0] += ' ';
35
+ }
36
+
37
+ // Complete the first argument after the command.
38
+ splitLineWhitespace.push('');
39
+ }
40
+ const hits =
41
+ (await completer(
42
+ context,
43
+ splitLineWhitespace.map((item) => item.trim())
44
+ )) || [];
45
+ // Adjust to full input, because `completer` only completed the last item
46
+ // in the line, e.g. ['profile'] -> ['show profile']
47
+ const fullLineHits = hits.map((hit) =>
48
+ [...splitLineWhitespace.slice(0, -1), hit].join('')
49
+ );
50
+
51
+ return fullLineHits;
52
+ }
package/src/index.spec.ts CHANGED
@@ -1,4 +1,4 @@
1
- import completer, { BASE_COMPLETIONS } from './';
1
+ import { completer, BASE_COMPLETIONS } from './';
2
2
  import { signatures as shellSignatures, Topologies } from '@mongosh/shell-api';
3
3
 
4
4
  import { expect } from 'chai';
@@ -371,6 +371,8 @@ describe('completer.completer', function () {
371
371
  'checkMetadataConsistency',
372
372
  'analyzeShardKey',
373
373
  'configureQueryAnalyzer',
374
+ // 8.0+
375
+ 'getShardLocation',
374
376
  ].includes(c)
375
377
  )
376
378
  .map((c) => `${i}${c}`);
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Topologies, TypeSignature } from '@mongosh/shell-api';
2
2
  import { signatures as shellSignatures } from '@mongosh/shell-api';
3
+ import type { AutocompletionContext } from '@mongodb-js/mongodb-ts-autocomplete';
3
4
  import semver from 'semver';
4
5
  import {
5
6
  CONVERSION_OPERATORS,
@@ -13,6 +14,7 @@ import {
13
14
  ON_PREM,
14
15
  DATABASE,
15
16
  } from '@mongodb-js/mongodb-constants';
17
+ import { directCommandCompleter } from './direct-command-completer';
16
18
 
17
19
  type TypeSignatureAttributes = { [key: string]: TypeSignature };
18
20
 
@@ -78,7 +80,7 @@ const GROUP = '$group';
78
80
  *
79
81
  * @returns {array} Matching Completions, Current User Input.
80
82
  */
81
- async function completer(
83
+ export async function completer(
82
84
  params: AutocompleteParameters,
83
85
  line: string
84
86
  ): Promise<[string[], string, 'exclusive'] | [string[], string]> {
@@ -398,4 +400,51 @@ function filterShellAPI(
398
400
  return hits;
399
401
  }
400
402
 
401
- export default completer;
403
+ type AutocompleteShellInstanceState = {
404
+ getAutocompleteParameters: () => AutocompleteParameters;
405
+ getAutocompletionContext: () => AutocompletionContext;
406
+ };
407
+
408
+ function transformAutocompleteResults(
409
+ line: string,
410
+ results: { result: string }[]
411
+ ): [string[], string] {
412
+ return [results.map((result) => result.result), line];
413
+ }
414
+
415
+ export type CompletionResults =
416
+ | [string[], string, 'exclusive']
417
+ | [string[], string];
418
+
419
+ export async function initNewAutocompleter(
420
+ instanceState: Pick<
421
+ AutocompleteShellInstanceState,
422
+ 'getAutocompletionContext'
423
+ >
424
+ ): Promise<(text: string) => Promise<CompletionResults>> {
425
+ // only import the autocompleter code the first time we need it to
426
+ // hide the time it takes from the initial startup time
427
+ const { MongoDBAutocompleter } = await import(
428
+ '@mongodb-js/mongodb-ts-autocomplete'
429
+ );
430
+
431
+ const autocompletionContext = instanceState.getAutocompletionContext();
432
+ const mongoDBCompleter = new MongoDBAutocompleter({
433
+ context: autocompletionContext,
434
+ });
435
+
436
+ return async (text: string): Promise<CompletionResults> => {
437
+ const directResults = await directCommandCompleter(
438
+ autocompletionContext,
439
+ text
440
+ );
441
+
442
+ if (directResults.length) {
443
+ return [directResults, text, 'exclusive'];
444
+ }
445
+
446
+ const results = await mongoDBCompleter.autocomplete(text);
447
+ const transformed = transformAutocompleteResults(text, results);
448
+ return transformed;
449
+ };
450
+ }