@mongosh/autocomplete 3.13.0 → 3.15.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 +1 -0
- package/lib/direct-command-completer.d.ts +2 -0
- package/lib/direct-command-completer.js +28 -0
- package/lib/direct-command-completer.js.map +1 -0
- package/lib/index.d.ts +9 -2
- package/lib/index.js +55 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -3
- package/src/direct-command-completer.ts +52 -0
- package/src/index.spec.ts +3 -1
- package/src/index.ts +51 -2
package/AUTHORS
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFA,8BAgNC;AAgID,oDA+BC;AAhcD,kDAAmE;AAEnE,oDAA4B;AAC5B,qEAWuC;AACvC,yEAAoE;AA8BvD,QAAA,gBAAgB,GAAI,EAAqB,CAAC,MAAM,CAC3D,wCAAoB,EACpB,wCAAoB,EACpB,8BAAU,EACV,mCAAe,CAChB,CAAC;AAEW,QAAA,iBAAiB,GAAI,EAAqB,CAAC,MAAM,CAC5D,mCAAe,EACf,8BAAU,CACX,CAAC;AAIF,MAAM,wBAAwB,GAAG,mCAAe,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACzE,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,4BAAQ,CAAC;AAC/D,CAAC,CAAC,CAAC;AAKH,MAAM,OAAO,GAAG,UAAU,CAAC;AAK3B,MAAM,KAAK,GAAG,QAAQ,CAAC;AAUhB,KAAK,UAAU,SAAS,CAC7B,MAA8B,EAC9B,IAAY;;IAEZ,MAAM,iBAAiB,GAAG,sBAAe,CAAC,QAAQ;SAC/C,UAAqC,CAAC;IACzC,MAAM,gBAAgB,GAAG,sBAAe,CAAC,UAAU;SAChD,UAAqC,CAAC;IACzC,MAAM,cAAc,GAAG,sBAAe,CAAC,QAAQ;SAC5C,UAAqC,CAAC;IACzC,MAAM,sBAAsB,GAAG,sBAAe,CAAC,iBAAiB;SAC7D,UAAqC,CAAC;IACzC,MAAM,uBAAuB,GAAG,sBAAe,CAAC,MAAM;SACnD,UAAqC,CAAC;IACzC,MAAM,cAAc,GAAG,sBAAe,CAAC,UAAU;SAC9C,UAAqC,CAAC;IACzC,MAAM,kBAAkB,GAAG,sBAAe,CAAC,WAAW;SACnD,UAAqC,CAAC;IACzC,MAAM,cAAc,GAAG,sBAAe,CAAC,KAAK;SACzC,UAAqC,CAAC;IACzC,MAAM,cAAc,GAAG,sBAAe,CAAC,OAAO;SAC3C,UAAqC,CAAC;IACzC,MAAM,uBAAuB,GAAG,sBAAe,CAAC,eAAe;SAC5D,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,MAAA,iBAAiB,CAAC,OAAO,CAAC,0CAAE,oBAAoB,EAAE,CAAC;QAIrD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAEhE,mBAAmB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBAChC,CAAC;gBAGD,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,IAAI,GACR,CAAC,MAAM,SAAS,CACd,MAAM,EACN,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAC/C,CAAC,IAAI,EAAE,CAAC;YAGX,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;YACF,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAID,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,IAAI,6BAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,CAAA,MAAA,UAAU,CAAC,GAAG,EAAE,0CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAW,MAAM;gBAC5B,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAa;gBACxC,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAEjD,MAAM,WAAW,GAAG,iBAAiB;gBACnC,CAAC;oBACC,wBAAwB;gBAC1B,CAAC,CAAC,CAAC,GAAG,wBAAgB,EAAE,GAAG,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;YAEzE,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAID,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,SAAS,CACV,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAC7D,YAAY,CAAC,IAAI,EAAE,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,IACE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACvC,CAAC;YAKD,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAEzB,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEvC,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,sBAAsB,EACtB,YAAY,EACZ,SAAS,CACV,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEzC,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,uBAAuB,EACvB,YAAY,EACZ,SAAS,CACV,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;QAGD,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,IAAI,WAAW,CAAC;YAChB,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEvC,WAAW,GAAG;oBACZ,GAAG,wBAAgB;oBACnB,GAAG,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC;iBAC9C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBAEN,WAAW,GAAG,yBAAiB,CAAC;YAClC,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAA,UAAU,CAAC,GAAG,EAAE,0CAAE,IAAI,EAAE,CAAC;YACxC,MAAM,OAAO,GAAW,MAAM;gBAC5B,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAa;gBACxC,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,SAAS,CACV,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,SAAS,CACV,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,SAAS,CACV,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,cAAc,CACzB,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,SAAS,CACV,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,IAAI,WAAgD,CAAC;QACrD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,WAAW,GAAG,cAAc,CAAC;QAC/B,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAElC,WAAW,GAAG,uBAAuB,CAAC;QACxC,CAAC;QAED,MAAM,IAAI,GACR,WAAW;YACX,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/D,OAAO,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CACnB,MAA8B,EAC9B,KAKC,EACD,UAAwC;IAExC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAC/C,IAAI,mBAAmB,CAAC;IACxB,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,KAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAChD,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,mBAAmB;YACjB,CAAC,KAAK,CAAC,UAAU,CAAC;gBAElB,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,cAAc,CAAA;gBAC/B,gBAAM,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,UAAU,CAAW,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,uBAAuB,GAC3B,CAAC,KAAK,CAAC,GAAG;QACV,CAAC,cAAc;QACf,CAAC,cAAc,CAAC,kBAAkB;YAChC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,uBAAG,CAAC;YACzB,CAAC,CAAC,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,cAAc;gBAC1D,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,yBAAK,CAAC;gBAC3B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,2BAAO,CAAC,CAAC,CAAC;IACnC,OAAO,mBAAmB,IAAI,uBAAuB,CAAC;AACxD,CAAC;AAGD,SAAS,oBAAoB,CAC3B,MAA8B,EAC9B,KAAa;IAEb,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,gCAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,gCAAY,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CACpB,MAA8B,EAC9B,WAAgB,EAChB,MAAc,EACd,KAAa;IAEb,MAAM,IAAI,GAAU,WAAW,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE;QAChD,OAAO,CACL,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAC1E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CACrB,MAA8B,EAC9B,WAA6C,EAC7C,MAAc,EACd,KAAgB;IAEhB,MAAM,IAAI,GAAa,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE;;QACnE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE5C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC/C,IAAI,mBAAmB,CAAC;QACxB,IAAI,qBAAqB,CAAC;QAC1B,IACE,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM;YACtB,CAAC,qBAAqB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EACpD,CAAC;YACD,mBAAmB;gBACjB,CAAC,cAAc,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,CAAC;oBACnD,CAAC,cAAc,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,MAAA,MAAM,CAAC,cAAc,EAAE,0CAAE,cAAc,CAAC;YAC9D,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACzD,mBAAmB;gBACjB,CAAC,kBAAkB;oBACnB,CAAC,aAAa;oBACd,CAAC,gBAAM,CAAC,GAAG,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;wBAC/C,gBAAM,CAAC,GAAG,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,oBAAoB,GACxB,CAAC,oBAAoB;YACrB,CAAC,QAAQ;YACT,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE1C,OAAO,mBAAmB,IAAI,oBAAoB,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,SAAS,4BAA4B,CACnC,IAAY,EACZ,OAA6B;IAE7B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAMM,KAAK,UAAU,oBAAoB,CACxC,aAGC;IAID,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAC/B,qCAAqC,GACtC,CAAC;IAEF,MAAM,qBAAqB,GAAG,aAAa,CAAC,wBAAwB,EAAE,CAAC;IACvE,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC;QAChD,OAAO,EAAE,qBAAqB;KAC/B,CAAC,CAAC;IAEH,OAAO,KAAK,EAAE,IAAY,EAA8B,EAAE;QACxD,MAAM,aAAa,GAAG,MAAM,IAAA,iDAAsB,EAChD,qBAAqB,EACrB,IAAI,CACL,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongosh/autocomplete",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.15.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
|
-
"@
|
|
47
|
+
"@mongodb-js/mongodb-ts-autocomplete": "^0.2.5",
|
|
48
|
+
"@mongosh/shell-api": "^3.15.0",
|
|
48
49
|
"semver": "^7.5.4"
|
|
49
50
|
},
|
|
50
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "7f87f03dd2fb8ce7d81f71523ed46c53722b3aeb"
|
|
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,
|
|
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
|
-
|
|
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
|
+
}
|