@mongodb-js/compass-editor 0.66.1 → 0.68.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.
Files changed (32) hide show
  1. package/dist/codemirror/ace-compat-autocompleter.d.ts +1 -2
  2. package/dist/codemirror/ace-compat-autocompleter.d.ts.map +1 -1
  3. package/dist/codemirror/ace-compat-autocompleter.js +1 -38
  4. package/dist/codemirror/ace-compat-autocompleter.js.map +1 -1
  5. package/dist/codemirror/query-autocompleter.d.ts +2 -2
  6. package/dist/codemirror/query-autocompleter.d.ts.map +1 -1
  7. package/dist/codemirror/query-autocompleter.js +33 -12
  8. package/dist/codemirror/query-autocompleter.js.map +1 -1
  9. package/dist/codemirror/query-history-autocompleter.d.ts +2 -2
  10. package/dist/codemirror/query-history-autocompleter.d.ts.map +1 -1
  11. package/dist/codemirror/query-history-autocompleter.js +145 -85
  12. package/dist/codemirror/query-history-autocompleter.js.map +1 -1
  13. package/dist/codemirror/stage-autocompleter.d.ts.map +1 -1
  14. package/dist/codemirror/stage-autocompleter.js +1 -0
  15. package/dist/codemirror/stage-autocompleter.js.map +1 -1
  16. package/dist/codemirror/utils.d.ts +4 -1
  17. package/dist/codemirror/utils.d.ts.map +1 -1
  18. package/dist/codemirror/utils.js +62 -0
  19. package/dist/codemirror/utils.js.map +1 -1
  20. package/dist/editor.d.ts +3 -1
  21. package/dist/editor.d.ts.map +1 -1
  22. package/dist/editor.js +7 -2
  23. package/dist/editor.js.map +1 -1
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/use-json-schema-autocompleter.d.ts +42 -0
  29. package/dist/use-json-schema-autocompleter.d.ts.map +1 -0
  30. package/dist/use-json-schema-autocompleter.js +446 -0
  31. package/dist/use-json-schema-autocompleter.js.map +1 -0
  32. package/package.json +20 -10
@@ -1,7 +1,6 @@
1
- import type { Completion, CompletionContext, CompletionResult, CompletionSource } from '@codemirror/autocomplete';
1
+ import type { CompletionContext, CompletionResult, CompletionSource } from '@codemirror/autocomplete';
2
2
  import type { CompletionResult as MongoDBCompletionResult } from '../autocompleter';
3
3
  import type { Token } from './utils';
4
- export declare function mapMongoDBCompletionToCodemirrorCompletion(completion: MongoDBCompletionResult, escape?: 'always' | 'never' | 'invalid'): Completion;
5
4
  type Prefix = {
6
5
  from: number;
7
6
  to: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ace-compat-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/ace-compat-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGpF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,0CAA0C,CACxD,UAAU,EAAE,uBAAuB,EACnC,MAAM,GAAE,QAAQ,GAAG,OAAO,GAAG,SAAqB,GACjD,UAAU,CAqCZ;AAED,KAAK,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,QAAQ,QAA+C,CAAC;AAErE,wBAAgB,iCAAiC,CAAC,EAChD,MAAM,EACN,WAAW,EACX,MAAM,GACP,EAAE;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;CACzC,GAAG,gBAAgB,CASnB;AAED,KAAK,yBAAyB,GAAG,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;CAC5B,KAAK,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAEnC;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE;IACvD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,cAAc,CAAC,EAAE,yBAAyB,CAAC;CAC5C,GAAG,gBAAgB,CAqBnB"}
1
+ {"version":3,"file":"ace-compat-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/ace-compat-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAKpF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,KAAK,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,QAAQ,QAA+C,CAAC;AAErE,wBAAgB,iCAAiC,CAAC,EAChD,MAAM,EACN,WAAW,EACX,MAAM,GACP,EAAE;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;CACzC,GAAG,gBAAgB,CASnB;AAED,KAAK,yBAAyB,GAAG,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;CAC5B,KAAK,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAEnC;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE;IACvD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,cAAc,CAAC,EAAE,yBAAyB,CAAC;CAC5C,GAAG,gBAAgB,CAqBnB"}
@@ -1,46 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ID_REGEX = void 0;
4
- exports.mapMongoDBCompletionToCodemirrorCompletion = mapMongoDBCompletionToCodemirrorCompletion;
5
4
  exports.createCompletionResultForIdPrefix = createCompletionResultForIdPrefix;
6
5
  exports.createAceCompatAutocompleter = createAceCompatAutocompleter;
7
- const autocomplete_1 = require("@codemirror/autocomplete");
8
- const autocompleter_1 = require("../autocompleter");
9
6
  const utils_1 = require("./utils");
10
- function mapMongoDBCompletionToCodemirrorCompletion(completion, escape = 'invalid') {
11
- const cmCompletion = {
12
- label: completion.value,
13
- apply: escape === 'never'
14
- ? completion.value
15
- : (0, autocompleter_1.wrapField)(completion.value, escape === 'always'),
16
- detail: completion.meta?.startsWith('field') ? 'field' : completion.meta,
17
- type: completion.meta?.startsWith('field') ? 'field' : 'method',
18
- info() {
19
- if (!completion.description) {
20
- return null;
21
- }
22
- const infoNode = document.createElement('div');
23
- infoNode.classList.add('completion-info');
24
- infoNode.addEventListener('mousedown', (evt) => {
25
- // If we are clicking a link inside the info block, we have to prevent
26
- // default browser behavior that will remove the focus from the editor
27
- // and cause the autocompleter to dissapear before browser handles the
28
- // actual click. This is very similar to how codemirror handles clicks
29
- // on the list items
30
- // @see {@link https://github.com/codemirror/autocomplete/blob/82480a7d51d60ad933808e42f6189d841a5a6bc8/src/tooltip.ts#L96-L97}
31
- if (evt.target.nodeName === 'A') {
32
- evt.preventDefault();
33
- }
34
- });
35
- infoNode.innerHTML = completion.description;
36
- return infoNode;
37
- },
38
- };
39
- if (completion.snippet) {
40
- return (0, autocomplete_1.snippetCompletion)(completion.snippet, cmCompletion);
41
- }
42
- return cmCompletion;
43
- }
44
7
  /**
45
8
  * Ace autocompleter "valid" identifier regex
46
9
  */
@@ -50,7 +13,7 @@ function createCompletionResultForIdPrefix({ prefix, completions, escape, }) {
50
13
  from: prefix.from,
51
14
  to: prefix.to,
52
15
  options: completions.map((completion) => {
53
- return mapMongoDBCompletionToCodemirrorCompletion(completion, escape);
16
+ return (0, utils_1.mapMongoDBCompletionToCodemirrorCompletion)(completion, escape);
54
17
  }),
55
18
  validFor: exports.ID_REGEX,
56
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ace-compat-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/ace-compat-autocompleter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ace-compat-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/ace-compat-autocompleter.ts"],"names":[],"mappings":";;;AAmBA,8EAiBC;AAiBD,oEAwBC;AAvED,mCAGiB;AAKjB;;GAEG;AACU,QAAA,QAAQ,GAAG,4CAA4C,CAAC;AAErE,SAAgB,iCAAiC,CAAC,EAChD,MAAM,EACN,WAAW,EACX,MAAM,GAKP;IACC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YACtC,OAAO,IAAA,kDAA0C,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC,CAAC;QACF,QAAQ,EAAE,gBAAQ;KACnB,CAAC;AACJ,CAAC;AAQD;;;;;;;;GAQG;AACH,SAAgB,4BAA4B,CAAC,UAG5C;IACC,OAAO,SAAS,sBAAsB,CAAC,OAAO;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAQ,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAExC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtD,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACzC,CAAC;QAED,OAAO,UAAU,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { CompletionSource } from '@codemirror/autocomplete';
2
2
  import type { CompletionOptions } from '../autocompleter';
3
3
  /**
4
- * Autocompleter for the document object, only autocompletes field names in the
5
- * appropriate format (either escaped or not) both for javascript and json modes
4
+ * Autocompleter for MongoDB queries, completes field names, query
5
+ * operators, and bson values based on the context.
6
6
  */
7
7
  export declare const createQueryAutocompleter: (options?: Pick<CompletionOptions, "fields" | "serverVersion">) => CompletionSource;
8
8
  //# sourceMappingURL=query-autocompleter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/query-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQ1D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAS,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,eAAe,CAAM,KAChE,gBAcF,CAAC"}
1
+ {"version":3,"file":"query-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/query-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAS1D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAS,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,eAAe,CAAM,KAChE,gBA8CF,CAAC"}
@@ -2,25 +2,46 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createQueryAutocompleter = void 0;
4
4
  const autocompleter_1 = require("../autocompleter");
5
- const ace_compat_autocompleter_1 = require("./ace-compat-autocompleter");
6
5
  const utils_1 = require("./utils");
7
6
  /**
8
- * Autocompleter for the document object, only autocompletes field names in the
9
- * appropriate format (either escaped or not) both for javascript and json modes
7
+ * Autocompleter for MongoDB queries, completes field names, query
8
+ * operators, and bson values based on the context.
10
9
  */
11
10
  const createQueryAutocompleter = (options = {}) => {
12
- const completions = (0, autocompleter_1.completer)('', {
13
- meta: ['query', 'bson', 'bson-legacy-uuid', 'field:identifier'],
11
+ const fieldCompletions = (0, autocompleter_1.completer)('', {
12
+ meta: ['query', 'field:identifier'],
14
13
  ...options,
15
14
  });
16
- return (0, ace_compat_autocompleter_1.createAceCompatAutocompleter)({
17
- String({ context }) {
18
- return (0, utils_1.completeWordsInString)(context);
19
- },
20
- IdentifierLike({ prefix }) {
21
- return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({ prefix, completions });
22
- },
15
+ const valueCompletions = (0, autocompleter_1.completer)('', {
16
+ meta: ['bson', 'bson-legacy-uuid'],
17
+ ...options,
23
18
  });
19
+ return (context) => {
20
+ const token = (0, utils_1.resolveTokenAtCursor)(context);
21
+ // Don't autocomplete while in a comment.
22
+ if (['BlockComment', 'LineComment'].includes(token.type.name)) {
23
+ return null;
24
+ }
25
+ const prefix = context.state
26
+ .sliceDoc(token.from, context.pos)
27
+ .replace(/^("|')/, '');
28
+ if (!prefix) {
29
+ return null;
30
+ }
31
+ const isValueCompletion = (0, utils_1.isPropertyValue)(token);
32
+ if (isValueCompletion && token.type.name === 'String') {
33
+ return (0, utils_1.completeWordsInString)(context) ?? null;
34
+ }
35
+ const completions = isValueCompletion ? valueCompletions : fieldCompletions;
36
+ return {
37
+ from: token.from,
38
+ to: token.to,
39
+ options: completions
40
+ .filter((completion) => completion.value.toLowerCase().includes(prefix.toLowerCase()))
41
+ .map((completion) => (0, utils_1.mapMongoDBCompletionToCodemirrorCompletion)(completion)),
42
+ filter: false,
43
+ };
44
+ };
24
45
  };
25
46
  exports.createQueryAutocompleter = createQueryAutocompleter;
26
47
  //# sourceMappingURL=query-autocompleter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/query-autocompleter.ts"],"names":[],"mappings":";;;AAEA,oDAA6C;AAC7C,yEAGoC;AACpC,mCAAgD;AAEhD;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CACtC,UAA+D,EAAE,EAC/C,EAAE;IACpB,MAAM,WAAW,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;QAC/D,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,IAAA,uDAA4B,EAAC;QAClC,MAAM,CAAC,EAAE,OAAO,EAAE;YAChB,OAAO,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,CAAC,EAAE,MAAM,EAAE;YACvB,OAAO,IAAA,4DAAiC,EAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,wBAAwB,4BAgBnC"}
1
+ {"version":3,"file":"query-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/query-autocompleter.ts"],"names":[],"mappings":";;;AAEA,oDAA6C;AAC7C,mCAKiB;AAEjB;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CACtC,UAA+D,EAAE,EAC/C,EAAE;IACpB,MAAM,gBAAgB,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QACrC,IAAI,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC;QACnC,GAAG,OAAO;KACX,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QACrC,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAClC,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;QAE5C,yCAAyC;QACzC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK;aACzB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;aACjC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEzB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,iBAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,IAAA,6BAAqB,EAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAChD,CAAC;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAE5E,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,WAAW;iBACjB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACrB,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAC9D;iBACA,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAClB,IAAA,kDAA0C,EAAC,UAAU,CAAC,CACvD;YACH,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,wBAAwB,4BAgDnC"}
@@ -7,13 +7,13 @@ export type SavedQuery = {
7
7
  [propertyName: string]: any;
8
8
  };
9
9
  };
10
+ export declare function createQueryLabel(query: SavedQuery, propertyName: string): string;
11
+ export declare function createQueryDisplayLabel(query: SavedQuery): string;
10
12
  export declare const createQueryHistoryAutocompleter: ({ savedQueries, onApply, queryProperty, theme, }: {
11
13
  savedQueries: SavedQuery[];
12
14
  onApply: (query: SavedQuery["queryProperties"]) => void;
13
15
  queryProperty: string;
14
16
  theme: CodemirrorThemeType;
15
17
  }) => CompletionSource;
16
- export declare function createQueryLabel(query: SavedQuery, propertyName: string): string;
17
- export declare function createQueryDisplayLabel(query: SavedQuery): string;
18
18
  export declare function scaleBetween(unscaledNum: number, newScaleMin: number, newScaleMax: number, originalScaleMin: number, originalScaleMax: number): number;
19
19
  //# sourceMappingURL=query-history-autocompleter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-history-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/query-history-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAAE,KAAK,mBAAmB,EAAmB,MAAM,WAAW,CAAC;AAEtE,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,CAAC;IACnB,eAAe,EAAE;QACf,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC;KAC7B,CAAC;CACH,CAAC;AAiFF,eAAO,MAAM,+BAA+B,GAAI,kDAK7C;IACD,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;CAC5B,KAAG,gBA2CH,CAAC;AAgBF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAWjE;AAoED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CASR"}
1
+ {"version":3,"file":"query-history-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/query-history-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAAE,KAAK,mBAAmB,EAAmB,MAAM,WAAW,CAAC;AAEtE,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,IAAI,CAAC;IACnB,eAAe,EAAE;QACf,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC;KAC7B,CAAC;CACH,CAAC;AAiCF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAaR;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAWjE;AAkJD,eAAO,MAAM,+BAA+B,GAAI,kDAK7C;IACD,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;CAC5B,KAAG,gBA6CH,CAAC;AAoEF,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CASR"}
@@ -9,9 +9,132 @@ const mongodb_query_parser_1 = require("mongodb-query-parser");
9
9
  const editor_1 = require("../editor");
10
10
  const highlight_1 = require("@lezer/highlight");
11
11
  const editor_2 = require("../editor");
12
+ const MAX_RESULTS = 10;
13
+ const MAX_FIELDS = 10;
14
+ const MAX_VALUE_LENGTH = 200;
15
+ const queryLabelStyles = (0, compass_components_1.css)({
16
+ textTransform: 'capitalize',
17
+ fontWeight: 'bold',
18
+ fontFamily: compass_components_1.fontFamilies.default,
19
+ });
20
+ const queryCodeStyles = (0, compass_components_1.css)({
21
+ fontFamily: compass_components_1.fontFamilies.code,
22
+ margin: `${compass_components_1.spacing[50]}px`,
23
+ marginLeft: `${compass_components_1.spacing[100]}px`,
24
+ padding: 0,
25
+ whiteSpace: 'pre-wrap',
26
+ });
27
+ function createQueryLabel(query, propertyName) {
28
+ const queryProperty = query.queryProperties[propertyName];
29
+ if (queryProperty === '' ||
30
+ queryProperty === undefined ||
31
+ queryProperty === null) {
32
+ return '';
33
+ }
34
+ // The autocompletion uses a fuzzy search on the label, we only want to
35
+ // auto complete property that is being edited, not all of them.
36
+ return (0, mongodb_query_parser_1.toJSString)(queryProperty) || '';
37
+ }
38
+ function createQueryDisplayLabel(query) {
39
+ return Object.entries(query.queryProperties)
40
+ .map(([key, value]) => {
41
+ const formattedQuery = (0, mongodb_query_parser_1.toJSString)(value, 1);
42
+ if (!formattedQuery)
43
+ return '';
44
+ // Hide the `filter` key in the display label as it's the default field.
45
+ const fieldKey = key === 'filter' ? '' : `${key}: `;
46
+ return `${fieldKey}${formattedQuery}`;
47
+ })
48
+ .filter(Boolean)
49
+ .reduce((acc, curr) => (acc ? `${acc}, ${curr}` : curr), '');
50
+ }
12
51
  function simplifyQueryStringForAutocomplete(queryString) {
13
52
  return queryString.replace(/[\s'"\n\t{}},]/g, '').toLowerCase();
14
53
  }
54
+ function prepareQueries(savedQueries, queryProperty) {
55
+ return savedQueries
56
+ .map((query) => {
57
+ const queryValue = query.queryProperties[queryProperty];
58
+ // Only some query properties are objects for instance limit is a scalar.
59
+ const isObject = typeof queryValue === 'object';
60
+ let scalarSimplified = '';
61
+ let fields = [];
62
+ if (queryProperty === '' ||
63
+ queryProperty === undefined ||
64
+ queryProperty === null) {
65
+ return null;
66
+ }
67
+ if (!isObject) {
68
+ if (queryValue?.length && queryValue?.length > MAX_VALUE_LENGTH) {
69
+ return null;
70
+ }
71
+ const str = (0, mongodb_query_parser_1.toJSString)(queryValue) || '';
72
+ if (!str || str.length > MAX_VALUE_LENGTH) {
73
+ return null;
74
+ }
75
+ scalarSimplified = str ? simplifyQueryStringForAutocomplete(str) : '';
76
+ }
77
+ else if (queryValue) {
78
+ const queryIsArray = Array.isArray(queryValue);
79
+ // We only support autocompletion for objects and arrays of key value pairs.
80
+ if (queryIsArray &&
81
+ queryValue.some((value) => typeof value !== 'object' ||
82
+ Array.isArray(value) ||
83
+ value.length !== 2)) {
84
+ return null;
85
+ }
86
+ // Sort can be an array of key values, or an object, we want to support both.
87
+ const queryIterable = queryIsArray
88
+ ? queryValue
89
+ : Object.entries(queryValue);
90
+ fields = queryIterable
91
+ // Some queries can have a ton of fields, we slice to avoid long loops on each character typed.
92
+ .slice(0, MAX_FIELDS)
93
+ .map(([key, value]) => {
94
+ // We don't provide matching on array or object values, as they can be
95
+ // very long and we want to prioritize matching on field names.
96
+ const fieldValue = typeof value === 'object' || Array.isArray(value) ? '' : value;
97
+ const fieldString = (0, mongodb_query_parser_1.toJSString)({ [key]: fieldValue }) || '';
98
+ return {
99
+ simplified: simplifyQueryStringForAutocomplete(fieldString),
100
+ };
101
+ });
102
+ // Prioritize performance over showing every query.
103
+ if (fields.length === 0 ||
104
+ fields.some((field) => field.simplified.length > MAX_VALUE_LENGTH)) {
105
+ return null;
106
+ }
107
+ }
108
+ return {
109
+ query,
110
+ label: createQueryLabel(query, queryProperty),
111
+ displayLabel: createQueryDisplayLabel(query),
112
+ isObject,
113
+ scalarSimplified,
114
+ fields,
115
+ };
116
+ })
117
+ .filter((query) => query !== null);
118
+ }
119
+ function matchesPreparedQuery(query, input) {
120
+ if (!query.isObject) {
121
+ return (query.scalarSimplified !== '' && query.scalarSimplified.startsWith(input));
122
+ }
123
+ let inputToMatch = input;
124
+ for (const field of query.fields) {
125
+ // Don't show an option if the user has typed the whole field.
126
+ if (input === field.simplified)
127
+ return false;
128
+ // When the user is typing their first field, we can return early.
129
+ if (field.simplified.startsWith(input))
130
+ return true;
131
+ const inputIndex = inputToMatch.indexOf(field.simplified);
132
+ if (inputIndex !== -1) {
133
+ inputToMatch = inputToMatch.replace(field.simplified, '');
134
+ }
135
+ }
136
+ return inputToMatch.length === 0;
137
+ }
15
138
  /**
16
139
  * Codemirror runs a fuzzy search on the completion item labels.
17
140
  * Oftentimes the fuzzy search will match on too many query history items.
@@ -19,75 +142,45 @@ function simplifyQueryStringForAutocomplete(queryString) {
19
142
  * We give suggestions of queries that either match at least one field,
20
143
  * or that contain the prefix the user is typing.
21
144
  */
22
- function getMatchingQueryHistoryItemsForInput({ savedQueries, queryProperty, input: _input, }) {
23
- const input = simplifyQueryStringForAutocomplete(_input);
24
- if (input.length === 0) {
145
+ function getMatchingPreparedQueries(preparedQueries, input) {
146
+ const simplifiedInput = simplifyQueryStringForAutocomplete(input);
147
+ if (simplifiedInput.length === 0) {
25
148
  // Everything matches when empty search.
26
- return savedQueries;
149
+ return preparedQueries;
27
150
  }
28
- return savedQueries.filter((query) => {
29
- const queryValue = query.queryProperties[queryProperty];
30
- // Only some query properties are objects. For instance limit can be an array.
31
- if (typeof queryValue !== 'object') {
32
- const queryValueString = (0, mongodb_query_parser_1.toJSString)(queryValue) || '';
33
- if (!queryValueString) {
34
- return false;
35
- }
36
- const queryValueSimplified = simplifyQueryStringForAutocomplete(queryValueString);
37
- return queryValueSimplified.startsWith(input);
38
- }
39
- // We subtract parts of the string until there's nothing left.
40
- // We know it's a possible match if the all of the input is found in the query.
41
- let inputToMatch = input;
42
- // We check each top level field as they can be in any order.
43
- for (const [key, value] of Object.entries(queryValue).slice(0, 30 /* Some queries can have a ton of fields, we slice to avoid long loops on each character typed. */)) {
44
- const fieldString = (0, mongodb_query_parser_1.toJSString)({ [key]: value }) || '';
45
- const fieldStringSimplified = simplifyQueryStringForAutocomplete(fieldString);
46
- if (input === fieldStringSimplified) {
47
- // Don't show an option if the user has typed the whole field.
48
- return false;
49
- }
50
- if (fieldStringSimplified.startsWith(input)) {
51
- // When the user is typing their first field, we can return early.
52
- return true;
53
- }
54
- const inputIndex = inputToMatch.indexOf(fieldStringSimplified);
55
- if (inputIndex !== -1) {
56
- inputToMatch = inputToMatch.replace(fieldStringSimplified, '');
57
- }
58
- }
59
- if (inputToMatch.length === 0) {
60
- return true;
151
+ const results = [];
152
+ for (const query of preparedQueries) {
153
+ if (results.length >= MAX_RESULTS)
154
+ break;
155
+ if (matchesPreparedQuery(query, simplifiedInput)) {
156
+ results.push(query);
61
157
  }
62
- return false;
63
- });
158
+ }
159
+ return results;
64
160
  }
65
161
  const createQueryHistoryAutocompleter = ({ savedQueries, onApply, queryProperty, theme, }) => {
162
+ const preparedQueries = prepareQueries(savedQueries, queryProperty);
66
163
  return function queryCompletions(context) {
67
- if (savedQueries.length === 0) {
164
+ if (preparedQueries.length === 0) {
68
165
  return null;
69
166
  }
70
167
  const maxTime = savedQueries[savedQueries.length - 1].lastExecuted.getTime();
71
168
  const minTime = savedQueries[0].lastExecuted.getTime();
72
169
  const contextValue = context.state.sliceDoc(0, context.pos);
73
- const matchedQueries = getMatchingQueryHistoryItemsForInput({
74
- savedQueries,
75
- queryProperty,
76
- input: contextValue,
77
- });
170
+ const matchedQueries = getMatchingPreparedQueries(preparedQueries, contextValue);
78
171
  const options = matchedQueries.map((query) => ({
79
172
  // Use a display label to show the query property
80
173
  // field names before their respective parts.
81
- displayLabel: createQueryDisplayLabel(query),
82
- label: createQueryLabel(query, queryProperty),
83
- type: query.type === 'recent' ? 'query-history' : 'favorite',
84
- detail: (0, compass_components_1.formatDate)(query.lastExecuted.getTime()),
85
- info: () => createInfo(query, theme).dom,
174
+ displayLabel: query.displayLabel,
175
+ label: query.label,
176
+ type: query.query.type === 'recent' ? 'query-history' : 'favorite',
177
+ detail: (0, compass_components_1.formatDate)(query.query.lastExecuted.getTime()),
178
+ info: () => createInfo(query.query, theme).dom,
86
179
  apply: () => {
87
- onApply(query.queryProperties);
180
+ onApply(query.query.queryProperties);
88
181
  },
89
182
  // CodeMirror expects boost values to be between -99 and 99
90
- boost: scaleBetween(query.lastExecuted.getTime(), -99, 99, minTime, maxTime),
183
+ boost: scaleBetween(query.query.lastExecuted.getTime(), -99, 99, minTime, maxTime),
91
184
  }));
92
185
  return {
93
186
  from: context.pos,
@@ -96,39 +189,6 @@ const createQueryHistoryAutocompleter = ({ savedQueries, onApply, queryProperty,
96
189
  };
97
190
  };
98
191
  exports.createQueryHistoryAutocompleter = createQueryHistoryAutocompleter;
99
- const queryLabelStyles = (0, compass_components_1.css)({
100
- textTransform: 'capitalize',
101
- fontWeight: 'bold',
102
- fontFamily: compass_components_1.fontFamilies.default,
103
- });
104
- const queryCodeStyles = (0, compass_components_1.css)({
105
- fontFamily: compass_components_1.fontFamilies.code,
106
- margin: `${compass_components_1.spacing[50]}px`,
107
- marginLeft: `${compass_components_1.spacing[100]}px`,
108
- padding: 0,
109
- whiteSpace: 'pre-wrap',
110
- });
111
- function createQueryLabel(query, propertyName) {
112
- if (!query.queryProperties[propertyName]) {
113
- return '';
114
- }
115
- // The autocompletion uses a fuzzy search on the label, we only want to
116
- // auto complete property that is being edited, not all of them.
117
- return (0, mongodb_query_parser_1.toJSString)(query.queryProperties[propertyName]) || '';
118
- }
119
- function createQueryDisplayLabel(query) {
120
- return Object.entries(query.queryProperties)
121
- .map(([key, value]) => {
122
- const formattedQuery = (0, mongodb_query_parser_1.toJSString)(value, 1);
123
- if (!formattedQuery)
124
- return '';
125
- // Hide the `filter` key in the display label as it's the default field.
126
- const fieldKey = key === 'filter' ? '' : `${key}: `;
127
- return `${fieldKey}${formattedQuery}`;
128
- })
129
- .filter(Boolean)
130
- .reduce((acc, curr) => (acc ? `${acc}, ${curr}` : curr), '');
131
- }
132
192
  const javascriptExpressionLanguageParser = editor_1.languages['javascript-expression']().language.parser;
133
193
  function createInfo(query, theme) {
134
194
  const customHighlighter = editor_2.highlightStyles[theme];
@@ -1 +1 @@
1
- {"version":3,"file":"query-history-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/query-history-autocompleter.ts"],"names":[],"mappings":";;;AA2KA,4CAWC;AAED,0DAWC;AAoED,oCAeC;AAlRD,uEAKwC;AACxC,+DAAkD;AAClD,sCAAsC;AACtC,gDAAiD;AACjD,sCAAsE;AAUtE,SAAS,kCAAkC,CAAC,WAAmB;IAC7D,OAAO,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oCAAoC,CAAC,EAC5C,YAAY,EACZ,aAAa,EACb,KAAK,EAAE,MAAM,GAKd;IACC,MAAM,KAAK,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,wCAAwC;QACxC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAExD,8EAA8E;QAC9E,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,gBAAgB,GAAG,IAAA,iCAAU,EAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,oBAAoB,GACxB,kCAAkC,CAAC,gBAAgB,CAAC,CAAC;YACvD,OAAO,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QAED,8DAA8D;QAC9D,+EAA+E;QAC/E,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,6DAA6D;QAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CACzD,CAAC,EACD,EAAE,CAAC,kGAAkG,CACtG,EAAE,CAAC;YACF,MAAM,WAAW,GAAG,IAAA,iCAAU,EAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,qBAAqB,GACzB,kCAAkC,CAAC,WAAW,CAAC,CAAC;YAElD,IAAI,KAAK,KAAK,qBAAqB,EAAE,CAAC;gBACpC,8DAA8D;gBAC9D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,kEAAkE;gBAClE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC/D,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,MAAM,+BAA+B,GAAG,CAAC,EAC9C,YAAY,EACZ,OAAO,EACP,aAAa,EACb,KAAK,GAMN,EAAoB,EAAE;IACrB,OAAO,SAAS,gBAAgB,CAAC,OAA0B;QACzD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GACX,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAEvD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,oCAAoC,CAAC;YAC1D,YAAY;YACZ,aAAa;YACb,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7C,iDAAiD;YACjD,6CAA6C;YAC7C,YAAY,EAAE,uBAAuB,CAAC,KAAK,CAAC;YAC5C,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC;YAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU;YAC5D,MAAM,EAAE,IAAA,+BAAU,EAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG;YACxC,KAAK,EAAE,GAAG,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACjC,CAAC;YACD,2DAA2D;YAC3D,KAAK,EAAE,YAAY,CACjB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAC5B,CAAC,EAAE,EACH,EAAE,EACF,OAAO,EACP,OAAO,CACR;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,GAAG;YACjB,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AArDW,QAAA,+BAA+B,mCAqD1C;AAEF,MAAM,gBAAgB,GAAG,IAAA,wBAAG,EAAC;IAC3B,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,iCAAY,CAAC,OAAO;CACjC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,IAAA,wBAAG,EAAC;IAC1B,UAAU,EAAE,iCAAY,CAAC,IAAI;IAC7B,MAAM,EAAE,GAAG,4BAAO,CAAC,EAAE,CAAC,IAAI;IAC1B,UAAU,EAAE,GAAG,4BAAO,CAAC,GAAG,CAAC,IAAI;IAC/B,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,UAAU;CACvB,CAAC,CAAC;AAEH,SAAgB,gBAAgB,CAC9B,KAAiB,EACjB,YAAoB;IAEpB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uEAAuE;IACvE,gEAAgE;IAChE,OAAO,IAAA,iCAAU,EAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAAiB;IACvD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,MAAM,cAAc,GAAG,IAAA,iCAAU,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAC/B,wEAAwE;QACxE,MAAM,QAAQ,GAAG,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;QACpD,OAAO,GAAG,QAAQ,GAAG,cAAc,EAAE,CAAC;IACxC,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,kCAAkC,GACtC,kBAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AAEvD,SAAS,UAAU,CACjB,KAAiB,EACjB,KAA0B;IAK1B,MAAM,iBAAiB,GAAG,wBAAe,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7D,MAAM,cAAc,GAAG,IAAA,iCAAU,EAAC,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;QAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;QAEjC,SAAS,IAAI,CAAC,IAAY,EAAE,OAAsB;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,SAAS,SAAS;YAChB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,IAAA,yBAAa,EACX,cAAc,EACd,kCAAkC,CAAC,KAAK,CAAC,cAAc,CAAC,EACxD,iBAAiB,EACjB,IAAI,EACJ,SAAS,CACV,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1B,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC5B,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,SAAgB,YAAY,CAC1B,WAAmB,EACnB,WAAmB,EACnB,WAAmB,EACnB,gBAAwB,EACxB,gBAAwB;IAExB,+DAA+D;IAC/D,IAAI,gBAAgB,KAAK,gBAAgB;QACvC,OAAO,WAAW,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,CACL,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC;QAC9D,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACvC,WAAW,CACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"query-history-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/query-history-autocompleter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stage-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/stage-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAS1D,eAAO,MAAM,wBAAwB,GAAI,sDAKtC,IAAI,CACL,iBAAiB,EACjB,QAAQ,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,CACvD,GAAG;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,KAAG,gBAwDR,CAAC"}
1
+ {"version":3,"file":"stage-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/stage-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAS1D,eAAO,MAAM,wBAAwB,GAAI,sDAKtC,IAAI,CACL,iBAAiB,EACjB,QAAQ,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,CACvD,GAAG;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,KAAG,gBAyDR,CAAC"}
@@ -17,6 +17,7 @@ const createStageAutocompleter = ({ stageOperator, utmSource, utmMedium, ...opti
17
17
  'expr:*',
18
18
  'conv',
19
19
  'bson',
20
+ 'bson-legacy-uuid',
20
21
  'field:identifier',
21
22
  ...(['$project', '$group'].includes(stageOperator ?? '')
22
23
  ? ['accumulator', 'accumulator:*']
@@ -1 +1 @@
1
- {"version":3,"file":"stage-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/stage-autocompleter.ts"],"names":[],"mappings":";;;AAEA,oDAA6C;AAC7C,yEAGoC;AACpC,mCAAyD;AACzD,+DAAiE;AAE1D,MAAM,wBAAwB,GAAG,CAAC,EACvC,aAAa,EACb,SAAS,EACT,SAAS,EACT,GAAG,OAAO,KAMR,EAAE,EAAoB,EAAE;IAC1B,MAAM,kBAAkB,GAAG,IAAA,8CAAwB,EAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,0BAA0B,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QAC/C,GAAG,OAAO;QACV,IAAI,EAAE,CAAC,iBAAiB,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QACrC,GAAG,OAAO;QACV,IAAI,EAAE;YACJ,QAAQ;YACR,MAAM;YACN,MAAM;YACN,kBAAkB;YAClB,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;gBACtD,CAAC,CAAE,CAAC,aAAa,EAAE,eAAe,CAAW;gBAC7C,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACpB,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO;gBACL,GAAG,UAAU;gBACb,WAAW,EAAE,MAAM,IAAA,eAAO,EAAC,UAAU,CAAC,KAAK,EAAE;oBAC3C,SAAS;oBACT,SAAS;iBACV,CAAC,wBAAwB;aAC3B,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,uDAA4B,EAAC;QAClC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;YACxB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAA,4DAAiC,EAAC;oBACvC,MAAM;oBACN,WAAW,EAAE,0BAA0B;oBACvC,iDAAiD;oBACjD,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;YAChC,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,IAAA,4DAAiC,EAAC;gBACvC,MAAM;gBACN,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAlEW,QAAA,wBAAwB,4BAkEnC"}
1
+ {"version":3,"file":"stage-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/stage-autocompleter.ts"],"names":[],"mappings":";;;AAEA,oDAA6C;AAC7C,yEAGoC;AACpC,mCAAyD;AACzD,+DAAiE;AAE1D,MAAM,wBAAwB,GAAG,CAAC,EACvC,aAAa,EACb,SAAS,EACT,SAAS,EACT,GAAG,OAAO,KAMR,EAAE,EAAoB,EAAE;IAC1B,MAAM,kBAAkB,GAAG,IAAA,8CAAwB,EAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,0BAA0B,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QAC/C,GAAG,OAAO;QACV,IAAI,EAAE,CAAC,iBAAiB,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QACrC,GAAG,OAAO;QACV,IAAI,EAAE;YACJ,QAAQ;YACR,MAAM;YACN,MAAM;YACN,kBAAkB;YAClB,kBAAkB;YAClB,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;gBACtD,CAAC,CAAE,CAAC,aAAa,EAAE,eAAe,CAAW;gBAC7C,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACpB,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO;gBACL,GAAG,UAAU;gBACb,WAAW,EAAE,MAAM,IAAA,eAAO,EAAC,UAAU,CAAC,KAAK,EAAE;oBAC3C,SAAS;oBACT,SAAS;iBACV,CAAC,wBAAwB;aAC3B,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,uDAA4B,EAAC;QAClC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;YACxB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAA,4DAAiC,EAAC;oBACvC,MAAM;oBACN,WAAW,EAAE,0BAA0B;oBACvC,iDAAiD;oBACjD,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;YAChC,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,IAAA,4DAAiC,EAAC;gBACvC,MAAM;gBACN,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAnEW,QAAA,wBAAwB,4BAmEnC"}
@@ -1,5 +1,6 @@
1
- import type { CompletionContext } from '@codemirror/autocomplete';
1
+ import type { Completion, CompletionContext } from '@codemirror/autocomplete';
2
2
  import type { EditorState } from '@codemirror/state';
3
+ import type { CompletionResult as MongoDBCompletionResult } from '../autocompleter';
3
4
  export declare const completeWordsInString: import("@codemirror/autocomplete").CompletionSource;
4
5
  export declare function resolveTokenAtCursor(context: CompletionContext): import("@lezer/common").SyntaxNode;
5
6
  export type Token = ReturnType<typeof resolveTokenAtCursor>;
@@ -19,4 +20,6 @@ export declare function getTokenText(editorState: EditorState, token: Token): st
19
20
  * represented as `[0-9]`.
20
21
  */
21
22
  export declare function getAncestryOfToken(token: Token, document: string): string[];
23
+ export declare function isPropertyValue(token: Token): boolean;
24
+ export declare function mapMongoDBCompletionToCodemirrorCompletion(completion: MongoDBCompletionResult, escape?: 'always' | 'never' | 'invalid'): Completion;
22
25
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/codemirror/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,eAAO,MAAM,qBAAqB,qDAAoC,CAAC;AAEvE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,sCAE9D;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,wBAAgB,OAAO,CACrB,EAAE,EAAE,MAAM,EACV,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,MAAM,CAOR;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAO,UAK/C;AAED,wBAAiB,OAAO,CAAC,KAAK,EAAE,KAAK,gEAKpC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAEvC;AAID,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,WAE9C;AAED,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,KAAK,GACnB,MAAM,CAKR;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,UAElE;AAqCD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAY3E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/codemirror/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEpF,eAAO,MAAM,qBAAqB,qDAAoC,CAAC;AAEvE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,sCAE9D;AAED,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,wBAAgB,OAAO,CACrB,EAAE,EAAE,MAAM,EACV,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,MAAM,CAOR;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAO,UAK/C;AAED,wBAAiB,OAAO,CAAC,KAAK,EAAE,KAAK,gEAKpC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAEvC;AAID,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,WAE9C;AAED,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,KAAK,GACnB,MAAM,CAKR;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,UAElE;AAqCD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAY3E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CA6BrD;AAED,wBAAgB,0CAA0C,CACxD,UAAU,EAAE,uBAAuB,EACnC,MAAM,GAAE,QAAQ,GAAG,OAAO,GAAG,SAAqB,GACjD,UAAU,CAqCZ"}