@mongodb-js/compass-editor 0.5.0 → 0.7.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 (65) hide show
  1. package/dist/ace/aggregation-autocompleter.d.ts +1 -1
  2. package/dist/ace/aggregation-autocompleter.d.ts.map +1 -1
  3. package/dist/ace/aggregation-autocompleter.js +7 -6
  4. package/dist/ace/aggregation-autocompleter.js.map +1 -1
  5. package/dist/actions.d.ts +11 -0
  6. package/dist/actions.d.ts.map +1 -0
  7. package/dist/actions.js +90 -0
  8. package/dist/actions.js.map +1 -0
  9. package/dist/autocompleter.d.ts +11 -8
  10. package/dist/autocompleter.d.ts.map +1 -1
  11. package/dist/autocompleter.js +28 -8
  12. package/dist/autocompleter.js.map +1 -1
  13. package/dist/base-editor.d.ts +1 -1
  14. package/dist/base-editor.d.ts.map +1 -1
  15. package/dist/codemirror/ace-compat-autocompleter.d.ts +26 -0
  16. package/dist/codemirror/ace-compat-autocompleter.d.ts.map +1 -0
  17. package/dist/codemirror/ace-compat-autocompleter.js +67 -0
  18. package/dist/codemirror/ace-compat-autocompleter.js.map +1 -0
  19. package/dist/codemirror/aggregation-autocompleter.d.ts +3 -0
  20. package/dist/codemirror/aggregation-autocompleter.d.ts.map +1 -0
  21. package/dist/codemirror/aggregation-autocompleter.js +58 -0
  22. package/dist/codemirror/aggregation-autocompleter.js.map +1 -0
  23. package/dist/codemirror/document-autocompleter.d.ts +3 -0
  24. package/dist/codemirror/document-autocompleter.d.ts.map +1 -0
  25. package/dist/codemirror/document-autocompleter.js +50 -0
  26. package/dist/codemirror/document-autocompleter.js.map +1 -0
  27. package/dist/codemirror/query-autocompleter.d.ts +4 -0
  28. package/dist/codemirror/query-autocompleter.d.ts.map +1 -0
  29. package/dist/codemirror/query-autocompleter.js +22 -0
  30. package/dist/codemirror/query-autocompleter.js.map +1 -0
  31. package/dist/codemirror/stage-autocompleter.d.ts +6 -0
  32. package/dist/codemirror/stage-autocompleter.d.ts.map +1 -0
  33. package/dist/codemirror/stage-autocompleter.js +58 -0
  34. package/dist/codemirror/stage-autocompleter.js.map +1 -0
  35. package/dist/codemirror/utils.d.ts +14 -0
  36. package/dist/codemirror/utils.d.ts.map +1 -0
  37. package/dist/codemirror/utils.js +80 -0
  38. package/dist/codemirror/utils.js.map +1 -0
  39. package/dist/codemirror/validation-autocompleter.d.ts +4 -0
  40. package/dist/codemirror/validation-autocompleter.d.ts.map +1 -0
  41. package/dist/codemirror/validation-autocompleter.js +123 -0
  42. package/dist/codemirror/validation-autocompleter.js.map +1 -0
  43. package/dist/index.d.ts +9 -4
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +13 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/inline-editor.d.ts +1 -1
  48. package/dist/inline-editor.d.ts.map +1 -1
  49. package/dist/json-editor.d.ts +53 -16
  50. package/dist/json-editor.d.ts.map +1 -1
  51. package/dist/json-editor.js +394 -48
  52. package/dist/json-editor.js.map +1 -1
  53. package/dist/multiline-editor.d.ts +2 -2
  54. package/dist/multiline-editor.d.ts.map +1 -1
  55. package/dist/multiline-editor.js +4 -60
  56. package/dist/multiline-editor.js.map +1 -1
  57. package/dist/prettify.d.ts +1 -1
  58. package/dist/prettify.d.ts.map +1 -1
  59. package/dist/syntax-highlight.d.ts +2 -2
  60. package/dist/syntax-highlight.d.ts.map +1 -1
  61. package/dist/syntax-highlight.js +2 -2
  62. package/dist/syntax-highlight.js.map +1 -1
  63. package/dist/types.d.ts +3 -2
  64. package/dist/types.d.ts.map +1 -1
  65. package/package.json +9 -9
@@ -6,7 +6,7 @@ declare class AggregationAutoCompleter implements Ace.Completer {
6
6
  version: string;
7
7
  textCompleter: Ace.Completer;
8
8
  fields: CompletionWithServerInfo[];
9
- stageAutocopmleter: StageAutoCompleter;
9
+ stageAutocompleter: StageAutoCompleter;
10
10
  constructor(version: string, textCompleter: Ace.Completer, fields: CompletionWithServerInfo[]);
11
11
  updateFields(fields: CompletionWithServerInfo[]): void;
12
12
  getCompletions: Ace.Completer['getCompletions'];
@@ -1 +1 @@
1
- {"version":3,"file":"aggregation-autocompleter.d.ts","sourceRoot":"","sources":["../../src/ace/aggregation-autocompleter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAkC3D,wBAAiB,oBAAoB,CACnC,OAAO,EAAE,GAAG,CAAC,WAAW,EACxB,GAAG,EAAE,GAAG,CAAC,QAAQ,uCA4BlB;AAKD,cAAM,wBAAyB,YAAW,GAAG,CAAC,SAAS;IAG5C,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,GAAG,CAAC,SAAS;IAC5B,MAAM,EAAE,wBAAwB,EAAE;IAJpC,kBAAkB,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,CAAC,SAAS,EAC5B,MAAM,EAAE,wBAAwB,EAAE;IAS3C,YAAY,CAAC,MAAM,EAAE,wBAAwB,EAAE;IAK/C,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CA4D7C;CACH;AAmBD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"aggregation-autocompleter.d.ts","sourceRoot":"","sources":["../../src/ace/aggregation-autocompleter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAkC3D,wBAAiB,oBAAoB,CACnC,OAAO,EAAE,GAAG,CAAC,WAAW,EACxB,GAAG,EAAE,GAAG,CAAC,QAAQ,uCA4BlB;AAKD,cAAM,wBAAyB,YAAW,GAAG,CAAC,SAAS;IAG5C,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,GAAG,CAAC,SAAS;IAC5B,MAAM,EAAE,wBAAwB,EAAE;IAJpC,kBAAkB,EAAE,kBAAkB,CAAC;gBAErC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,CAAC,SAAS,EAC5B,MAAM,EAAE,wBAAwB,EAAE;IAS3C,YAAY,CAAC,MAAM,EAAE,wBAAwB,EAAE;IAK/C,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CA6D7C;CACH;AAmBD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -68,28 +68,29 @@ class AggregationAutoCompleter {
68
68
  if (type(token, 'stage_op') ||
69
69
  (type(token, 'identifier') &&
70
70
  mongodb_constants_1.STAGE_OPERATOR_NAMES.includes(token.value))) {
71
- this.stageAutocopmleter.updateStageOperator(token.value);
72
- return this.stageAutocopmleter.getCompletions(editor, session, position, prefix, callback);
71
+ this.stageAutocompleter.updateStageOperator(token.value);
72
+ return this.stageAutocompleter.getCompletions(editor, session, position, prefix, callback);
73
73
  }
74
74
  }
75
75
  const snippetWithBlock = !isInsideBlock(tokens);
76
76
  callback(null, (0, autocompleter_1.completer)(prefix, { serverVersion: this.version, meta: ['stage'] }).map((completion) => {
77
77
  if (completion.snippet) {
78
+ const escapedOp = completion.value.replace('$', '\\$');
78
79
  return {
79
80
  ...completion,
80
81
  snippet: snippetWithBlock
81
- ? `{\n${completion.value}: ${padLines(completion.snippet)}\n}`
82
- : `${completion.value}: ${completion.snippet}`,
82
+ ? `{\n${escapedOp}: ${padLines(completion.snippet)}\n}`
83
+ : `${escapedOp}: ${completion.snippet}`,
83
84
  };
84
85
  }
85
86
  return completion;
86
87
  }));
87
88
  };
88
- this.stageAutocopmleter = new stage_autocompleter_1.StageAutoCompleter(this.version, this.textCompleter, this.fields);
89
+ this.stageAutocompleter = new stage_autocompleter_1.StageAutoCompleter(this.version, this.textCompleter, this.fields);
89
90
  }
90
91
  updateFields(fields) {
91
92
  this.fields = fields;
92
- this.stageAutocopmleter.update(fields, null);
93
+ this.stageAutocompleter.update(fields, null);
93
94
  }
94
95
  }
95
96
  exports.AggregationAutoCompleter = AggregationAutoCompleter;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregation-autocompleter.js","sourceRoot":"","sources":["../../src/ace/aggregation-autocompleter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregation-autocompleter.js","sourceRoot":"","sources":["../../src/ace/aggregation-autocompleter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export declare const ActionButton: React.FunctionComponent<{
3
+ icon: string | React.ReactNode;
4
+ label: string;
5
+ onClick?: (...args: Parameters<React.MouseEventHandler<HTMLButtonElement>>) => boolean | void;
6
+ 'data-testid'?: string;
7
+ }>;
8
+ export declare const FormatIcon: ({ size, ...props }: React.SVGProps<SVGSVGElement> & {
9
+ size?: number | undefined;
10
+ }) => JSX.Element;
11
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAqChE,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACjD,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CACR,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,KAC5D,OAAO,GAAG,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAwEA,CAAC;AAEF,eAAO,MAAM,UAAU;;iBAiBtB,CAAC"}
@@ -0,0 +1,90 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.FormatIcon = exports.ActionButton = void 0;
27
+ const compass_components_1 = require("@mongodb-js/compass-components");
28
+ const compass_components_2 = require("@mongodb-js/compass-components");
29
+ const compass_components_3 = require("@mongodb-js/compass-components");
30
+ const react_1 = __importStar(require("react"));
31
+ const actionButtonStyle = (0, compass_components_2.css)({
32
+ flex: 'none',
33
+ });
34
+ const actionButtonContentStyle = (0, compass_components_2.css)({
35
+ position: 'relative',
36
+ });
37
+ const actionButtonIconContainerStyle = (0, compass_components_2.css)({
38
+ opacity: 1,
39
+ width: 14,
40
+ height: 14,
41
+ transition: 'opacity .2s linear',
42
+ });
43
+ const actionButtonIconContainerHiddenStyle = (0, compass_components_2.css)({
44
+ opacity: 0,
45
+ });
46
+ const actionButtonClickResultIconStyle = (0, compass_components_2.css)({
47
+ position: 'absolute',
48
+ width: 14,
49
+ height: 14,
50
+ top: 0,
51
+ pointerEvents: 'none',
52
+ opacity: 1,
53
+ transition: 'opacity .2s linear',
54
+ });
55
+ const actionButtonClickResultIconHiddenStyle = (0, compass_components_2.css)({
56
+ opacity: 0,
57
+ });
58
+ const ActionButton = ({ label, icon, onClick, ...props }) => {
59
+ var _a;
60
+ const [clickResult, setClickResult] = (0, react_1.useState)('success');
61
+ const [clickResultVisible, setClickResultVisible] = (0, react_1.useState)(false);
62
+ const onButtonClick = (0, react_1.useCallback)((...args) => {
63
+ const result = onClick === null || onClick === void 0 ? void 0 : onClick(...args);
64
+ if (typeof result === 'boolean') {
65
+ setClickResult(result ? 'success' : 'error');
66
+ setClickResultVisible(true);
67
+ }
68
+ }, [onClick]);
69
+ (0, react_1.useEffect)(() => {
70
+ if (!clickResultVisible) {
71
+ return;
72
+ }
73
+ const timeoutId = setTimeout(() => {
74
+ setClickResultVisible(false);
75
+ }, 1000);
76
+ return () => {
77
+ clearTimeout(timeoutId);
78
+ };
79
+ }, [clickResultVisible]);
80
+ return (react_1.default.createElement(compass_components_3.Button, { size: "xsmall", "aria-label": label, title: label, onClick: onButtonClick, className: actionButtonStyle, "data-testid": (_a = props['data-testid']) !== null && _a !== void 0 ? _a : `editor-action-${label}` },
81
+ react_1.default.createElement("div", { className: actionButtonContentStyle },
82
+ react_1.default.createElement("div", { className: (0, compass_components_1.cx)(actionButtonIconContainerStyle, clickResultVisible && actionButtonIconContainerHiddenStyle) }, typeof icon === 'string' ? (react_1.default.createElement(compass_components_3.Icon, { size: "small", role: "presentation", title: null, glyph: icon })) : (icon)),
83
+ react_1.default.createElement("div", { className: (0, compass_components_1.cx)(actionButtonClickResultIconStyle, !clickResultVisible && actionButtonClickResultIconHiddenStyle) },
84
+ react_1.default.createElement(compass_components_3.Icon, { size: "small", glyph: clickResult === 'success' ? 'Checkmark' : 'X' })))));
85
+ };
86
+ exports.ActionButton = ActionButton;
87
+ const FormatIcon = ({ size = 16, ...props }) => (react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", width: size, height: size, viewBox: "0 0 16 16", ...props },
88
+ react_1.default.createElement("path", { fill: "currentColor", d: "M2 4a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm0 4a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm1 3a1 1 0 1 0 0 2h10a1 1 0 1 0 0-2H3Zm4-7a1 1 0 0 1 1-1h5a1 1 0 1 1 0 2H8a1 1 0 0 1-1-1Zm4 4a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2h-1a1 1 0 0 1-1-1Z" })));
89
+ exports.FormatIcon = FormatIcon;
90
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"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"}
@@ -1717,7 +1717,7 @@ declare const ALL_COMPLETIONS: ({
1717
1717
  readonly label: "$documents";
1718
1718
  readonly outputStage: false;
1719
1719
  readonly fullScan: false;
1720
- readonly firstStage: false;
1720
+ readonly firstStage: true;
1721
1721
  readonly score: 1;
1722
1722
  readonly env: readonly ["atlas", "adl", "on-prem"];
1723
1723
  readonly meta: "stage";
@@ -2224,8 +2224,8 @@ declare const ALL_COMPLETIONS: ({
2224
2224
  readonly comment: "/**\n * users: Optional list of users for which local sessions need to be returned.\n * allUsers: Optional boolean value to specify whether to return local sessions for all users or not.\n */\n";
2225
2225
  readonly snippet: "{\n allUsers: ${1:false},\n users: [\n { user: '${2:string}', db: '${3:string}' }\n ]\n}";
2226
2226
  })[];
2227
- declare type Meta = typeof ALL_COMPLETIONS[number]['meta'] | 'field:identifier' | 'field:reference';
2228
- export declare type Completion = {
2227
+ type Meta = typeof ALL_COMPLETIONS[number]['meta'] | 'field:identifier' | 'field:reference';
2228
+ export type Completion = {
2229
2229
  value: string;
2230
2230
  version: string;
2231
2231
  meta: Meta;
@@ -2233,20 +2233,23 @@ export declare type Completion = {
2233
2233
  snippet?: string;
2234
2234
  score?: number;
2235
2235
  };
2236
- export declare function createCompletionFilter(prefix: string, serverVersion: string, filterMeta?: string[]): ({ value, version, meta }: Completion) => boolean;
2237
- export declare type CompleteOptions = {
2236
+ export declare function createCompletionFilter(prefix: string, serverVersion: string, filterMeta?: string[]): ({ value, version: minServerVersion, meta }: Completion) => boolean;
2237
+ export type CompleteOptions = {
2238
2238
  serverVersion?: string;
2239
- fields?: string[];
2239
+ fields?: (string | {
2240
+ name: string;
2241
+ description?: string;
2242
+ })[];
2240
2243
  meta?: (Meta | 'field:*' | 'accumulator:*' | 'expr:*')[];
2241
2244
  };
2242
- export declare type CompletionResult = {
2245
+ export type CompletionResult = {
2243
2246
  value: string;
2244
2247
  meta?: string;
2245
2248
  description?: string;
2246
2249
  snippet?: string;
2247
2250
  score: number;
2248
2251
  };
2249
- export declare function wrapField(field: string): string;
2252
+ export declare function wrapField(field: string, force?: boolean): string;
2250
2253
  export declare function completer(prefix?: string, options?: CompleteOptions, completions?: Completion[]): CompletionResult[];
2251
2254
  export {};
2252
2255
  //# sourceMappingURL=autocompleter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autocompleter.d.ts","sourceRoot":"","sources":["../src/autocompleter.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASpB,CAAC;AAEF,aAAK,IAAI,GACL,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GACtC,kBAAkB,GAClB,iBAAiB,CAAC;AAQtB,oBAAY,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAeF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,EAAE,8BAK+B,UAAU,aAO/D;AAED,oBAAY,eAAe,GAAG;IAE5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC;CAC1D,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAE7B,KAAK,EAAE,MAAM,CAAC;IAEd,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAsBF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,UAItC;AAED,wBAAgB,SAAS,CACvB,MAAM,SAAK,EACX,OAAO,GAAE,eAAoB,EAC7B,WAAW,GAAE,UAAU,EAAoB,GAC1C,gBAAgB,EAAE,CA0BpB"}
1
+ {"version":3,"file":"autocompleter.d.ts","sourceRoot":"","sources":["../src/autocompleter.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.completer = exports.wrapField = exports.createCompletionFilter = void 0;
4
4
  const semver_1 = require("semver");
5
5
  const mongodb_constants_1 = require("@mongodb-js/mongodb-constants");
6
+ const DEFAULT_SERVER_VERSION = '999.999.999';
6
7
  const ALL_COMPLETIONS = [
7
8
  ...mongodb_constants_1.ACCUMULATORS,
8
9
  ...mongodb_constants_1.BSON_TYPES,
@@ -25,7 +26,7 @@ function matchesMeta(filter, meta) {
25
26
  }
26
27
  function createCompletionFilter(prefix, serverVersion, filterMeta) {
27
28
  var _a, _b, _c;
28
- const currentServerVersion = (_c = (_b = (_a = serverVersion.match(/^(?<version>\d+?\.\d+?\.\d+?)/)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version) !== null && _c !== void 0 ? _c : serverVersion;
29
+ const currentServerVersion = (_c = (_b = (_a = serverVersion.match(/^(?<version>\d+?\.\d+?\.\d+?)/)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version) !== null && _c !== void 0 ? _c : DEFAULT_SERVER_VERSION;
29
30
  return ({ value, version: minServerVersion, meta }) => {
30
31
  return (value.toLowerCase().startsWith(prefix.toLowerCase()) &&
31
32
  (0, semver_1.gte)(currentServerVersion, minServerVersion) &&
@@ -45,19 +46,38 @@ function isValidIdentifier(identifier) {
45
46
  return false;
46
47
  }
47
48
  }
48
- function wrapField(field) {
49
- return isValidIdentifier(field)
50
- ? field
51
- : `"${field.replace(/["\\]/g, '\\$&')}"`;
49
+ function wrapField(field, force = false) {
50
+ return force || !isValidIdentifier(field)
51
+ ? `"${field.replace(/["\\]/g, '\\$&')}"`
52
+ : field;
52
53
  }
53
54
  exports.wrapField = wrapField;
55
+ function normalizeField(field) {
56
+ return typeof field === 'string'
57
+ ? { value: field }
58
+ : {
59
+ value: field.name,
60
+ description: field.description,
61
+ };
62
+ }
54
63
  function completer(prefix = '', options = {}, completions = ALL_COMPLETIONS) {
55
- const { serverVersion = '999.999.999', fields = [], meta } = options;
64
+ const { serverVersion = DEFAULT_SERVER_VERSION, fields = [], meta } = options;
56
65
  const completionsFilter = createCompletionFilter(prefix, serverVersion, meta);
57
66
  const completionsWithFields = [].concat(completions, fields.flatMap((field) => {
67
+ const { value, description } = normalizeField(field);
58
68
  return [
59
- { value: field, meta: 'field:identifier', version: '0.0.0' },
60
- { value: `$${field}`, meta: 'field:reference', version: '0.0.0' },
69
+ {
70
+ value: value,
71
+ meta: 'field:identifier',
72
+ version: '0.0.0',
73
+ description,
74
+ },
75
+ {
76
+ value: `$${value}`,
77
+ meta: 'field:reference',
78
+ version: '0.0.0',
79
+ description,
80
+ },
61
81
  ];
62
82
  }));
63
83
  return completionsWithFields
@@ -1 +1 @@
1
- {"version":3,"file":"autocompleter.js","sourceRoot":"","sources":["../src/autocompleter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocompleter.js","sourceRoot":"","sources":["../src/autocompleter.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ declare const EditorVariant: {
17
17
  readonly EJSON: "EJSON";
18
18
  readonly Generic: "Generic";
19
19
  };
20
- export declare type EditorProps = {
20
+ export type EditorProps = {
21
21
  variant: keyof typeof EditorVariant;
22
22
  text?: string;
23
23
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"base-editor.d.ts","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAY,MAAM,WAAW,CAAC;AAIxE,OAAO,8CAA8C,CAAC;AACtD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,oCAAoC,CAAC;AAE5C,OAAO,OAAO,CAAC;AAwBf,QAAA,MAAM,aAAa;;;;CAIT,CAAC;AAEX,oBAAY,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CACZ,WAAW,EACX,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,0BAA0B,CACpE,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAmD1D,iBAAS,UAAU,CAAC,EAClB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,QAAQ,EAAE,SAAS,EACnB,YAAY,EACZ,SAAS,EACT,aAAa,EAAE,UAAU,EACzB,OAAO,EACP,QAAQ,EAAE,SAAS,EACnB,SAAS,EACT,eAAe,EACf,GAAG,QAAQ,EACZ,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAoElC;AAUD,iBAAS,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED,QAAA,MAAM,mBAAmB,KAAsB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"base-editor.d.ts","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAShE,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAY,MAAM,WAAW,CAAC;AAIxE,OAAO,8CAA8C,CAAC;AACtD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,oCAAoC,CAAC;AAE5C,OAAO,OAAO,CAAC;AAwBf,QAAA,MAAM,aAAa;;;;CAIT,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CACZ,WAAW,EACX,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,0BAA0B,CACpE,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAmD1D,iBAAS,UAAU,CAAC,EAClB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,QAAQ,EAAE,SAAS,EACnB,YAAY,EACZ,SAAS,EACT,aAAa,EAAE,UAAU,EACzB,OAAO,EACP,QAAQ,EAAE,SAAS,EACnB,SAAS,EACT,eAAe,EACf,GAAG,QAAQ,EACZ,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAoElC;AAUD,iBAAS,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED,QAAA,MAAM,mBAAmB,KAAsB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Completion, CompletionContext, CompletionResult, CompletionSource } from '@codemirror/autocomplete';
2
+ import type { CompletionResult as MongoDBCompletionResult } from '../autocompleter';
3
+ import type { Token } from './utils';
4
+ export declare function mapMongoDBCompletionToCodemirrorCompletion(completion: MongoDBCompletionResult, escape?: 'always' | 'never' | 'invalid'): Completion;
5
+ type Prefix = {
6
+ from: number;
7
+ to: number;
8
+ text: string;
9
+ };
10
+ export declare const ID_REGEX: RegExp;
11
+ export declare function createCompletionResultForIdPrefix({ prefix, completions, escape, }: {
12
+ prefix: Pick<Prefix, 'from' | 'to'>;
13
+ completions: MongoDBCompletionResult[];
14
+ escape?: 'always' | 'never' | 'invalid';
15
+ }): CompletionResult;
16
+ type AceCompatCompletionSource = (options: {
17
+ prefix: Prefix;
18
+ token: Token;
19
+ context: CompletionContext;
20
+ }) => ReturnType<CompletionSource>;
21
+ export declare function createAceCompatAutocompleter(completers: {
22
+ String?: AceCompatCompletionSource;
23
+ IdentifierLike?: AceCompatCompletionSource;
24
+ }): CompletionSource;
25
+ export {};
26
+ //# sourceMappingURL=ace-compat-autocompleter.d.ts.map
@@ -0,0 +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,CAoCZ;AAED,KAAK,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAKzD,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;AAWnC,wBAAgB,4BAA4B,CAAC,UAAU,EAAE;IACvD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,cAAc,CAAC,EAAE,yBAAyB,CAAC;CAC5C,GAAG,gBAAgB,CAqBnB"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAceCompatAutocompleter = exports.createCompletionResultForIdPrefix = exports.ID_REGEX = exports.mapMongoDBCompletionToCodemirrorCompletion = void 0;
4
+ const autocomplete_1 = require("@codemirror/autocomplete");
5
+ const autocompleter_1 = require("../autocompleter");
6
+ const utils_1 = require("./utils");
7
+ function mapMongoDBCompletionToCodemirrorCompletion(completion, escape = 'invalid') {
8
+ var _a;
9
+ const cmCompletion = {
10
+ label: completion.value,
11
+ apply: escape === 'never'
12
+ ? completion.value
13
+ : (0, autocompleter_1.wrapField)(completion.value, escape === 'always'),
14
+ detail: ((_a = completion.meta) === null || _a === void 0 ? void 0 : _a.startsWith('field')) ? 'field' : completion.meta,
15
+ info() {
16
+ if (!completion.description) {
17
+ return null;
18
+ }
19
+ const infoNode = document.createElement('div');
20
+ infoNode.classList.add('completion-info');
21
+ infoNode.addEventListener('mousedown', (evt) => {
22
+ if (evt.target.nodeName === 'A') {
23
+ evt.preventDefault();
24
+ }
25
+ });
26
+ infoNode.innerHTML = completion.description;
27
+ return infoNode;
28
+ },
29
+ };
30
+ if (completion.snippet) {
31
+ return (0, autocomplete_1.snippetCompletion)(completion.snippet, cmCompletion);
32
+ }
33
+ return cmCompletion;
34
+ }
35
+ exports.mapMongoDBCompletionToCodemirrorCompletion = mapMongoDBCompletionToCodemirrorCompletion;
36
+ exports.ID_REGEX = /[a-zA-Z_0-9$\-\u00A2-\u2000\u2070-\uFFFF]+/;
37
+ function createCompletionResultForIdPrefix({ prefix, completions, escape, }) {
38
+ return {
39
+ from: prefix.from,
40
+ to: prefix.to,
41
+ options: completions.map((completion) => {
42
+ return mapMongoDBCompletionToCodemirrorCompletion(completion, escape);
43
+ }),
44
+ validFor: exports.ID_REGEX,
45
+ };
46
+ }
47
+ exports.createCompletionResultForIdPrefix = createCompletionResultForIdPrefix;
48
+ function createAceCompatAutocompleter(completers) {
49
+ return function aceCompatAutocompleter(context) {
50
+ var _a, _b, _c;
51
+ const prefix = context.matchBefore(exports.ID_REGEX);
52
+ const token = (0, utils_1.resolveTokenAtCursor)(context);
53
+ if (!prefix || prefix.text === '') {
54
+ return null;
55
+ }
56
+ if (['BlockComment', 'LineComment'].includes(token.type.name)) {
57
+ return null;
58
+ }
59
+ const opts = { context, prefix, token };
60
+ if (token.type.name === 'String' && completers.String) {
61
+ return (_a = completers.String(opts)) !== null && _a !== void 0 ? _a : null;
62
+ }
63
+ return (_c = (_b = completers.IdentifierLike) === null || _b === void 0 ? void 0 : _b.call(completers, opts)) !== null && _c !== void 0 ? _c : null;
64
+ };
65
+ }
66
+ exports.createAceCompatAutocompleter = createAceCompatAutocompleter;
67
+ //# sourceMappingURL=ace-compat-autocompleter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ace-compat-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/ace-compat-autocompleter.ts"],"names":[],"mappings":";;;AAMA,2DAA6D;AAE7D,oDAA6C;AAC7C,mCAA+C;AAG/C,SAAgB,0CAA0C,CACxD,UAAmC,EACnC,SAAyC,SAAS;;IAElD,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,KAAK,EACH,MAAM,KAAK,OAAO;YAChB,CAAC,CAAC,UAAU,CAAC,KAAK;YAClB,CAAC,CAAC,IAAA,yBAAS,EAAC,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;QACtD,MAAM,EAAE,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,UAAU,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI;QACxE,IAAI;YACF,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC1C,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;gBAO7C,IAAK,GAAG,CAAC,MAAsB,CAAC,QAAQ,KAAK,GAAG,EAAE;oBAChD,GAAG,CAAC,cAAc,EAAE,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;YAC5C,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;IAEF,IAAI,UAAU,CAAC,OAAO,EAAE;QACtB,OAAO,IAAA,gCAAiB,EAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAC5D;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAvCD,gGAuCC;AAOY,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,0CAA0C,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxE,CAAC,CAAC;QACF,QAAQ,EAAE,gBAAQ;KACnB,CAAC;AACJ,CAAC;AAjBD,8EAiBC;AAiBD,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;YACjC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7D,OAAO,IAAI,CAAC;SACb;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;YACrD,OAAO,MAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAI,IAAI,CAAC;SACxC;QAED,OAAO,MAAA,MAAA,UAAU,CAAC,cAAc,2DAAG,IAAI,CAAC,mCAAI,IAAI,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAxBD,oEAwBC"}
@@ -0,0 +1,3 @@
1
+ import type { CompleteOptions } from '../autocompleter';
2
+ export declare function createAggregationAutocompleter(options?: Pick<CompleteOptions, 'fields' | 'serverVersion'>): import("@codemirror/autocomplete").CompletionSource;
3
+ //# sourceMappingURL=aggregation-autocompleter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregation-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/aggregation-autocompleter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAoCxD,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,eAAe,CAAM,uDAoChE"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAggregationAutocompleter = void 0;
4
+ const mongodb_constants_1 = require("@mongodb-js/mongodb-constants");
5
+ const autocompleter_1 = require("../autocompleter");
6
+ const utils_1 = require("./utils");
7
+ const utils_2 = require("./utils");
8
+ const utils_3 = require("./utils");
9
+ const ace_compat_autocompleter_1 = require("./ace-compat-autocompleter");
10
+ const ace_compat_autocompleter_2 = require("./ace-compat-autocompleter");
11
+ const stage_autocompleter_1 = require("./stage-autocompleter");
12
+ const StageOperatorNames = new Set(mongodb_constants_1.STAGE_OPERATOR_NAMES);
13
+ function getStageNameForToken(editorState, token) {
14
+ for (const parent of (0, utils_1.parents)(token)) {
15
+ if (parent.name === 'Property') {
16
+ const propertyName = (0, utils_2.getPropertyNameFromPropertyToken)(editorState, parent);
17
+ if (parent.firstChild &&
18
+ !(0, utils_2.isTokenEqual)(parent.firstChild, token) &&
19
+ StageOperatorNames.has(propertyName)) {
20
+ return propertyName;
21
+ }
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ function createAggregationAutocompleter(options = {}) {
27
+ const stageAutocompletions = (0, autocompleter_1.completer)('', { ...options, meta: ['stage'] });
28
+ return (0, ace_compat_autocompleter_2.createAceCompatAutocompleter)({
29
+ IdentifierLike({ context, prefix, token }) {
30
+ var _a;
31
+ const stageOperator = getStageNameForToken(context.state, token);
32
+ if (stageOperator) {
33
+ return (0, stage_autocompleter_1.createStageAutocompleter)({ stageOperator, ...options })(context);
34
+ }
35
+ const isInsideBlock = token.name === 'PropertyName' || ((_a = token.parent) === null || _a === void 0 ? void 0 : _a.name) === 'Property';
36
+ return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({
37
+ prefix,
38
+ completions: stageAutocompletions.map((completion) => {
39
+ const opName = completion.value;
40
+ return {
41
+ ...completion,
42
+ ...(completion.description && {
43
+ description: `<p>${(0, utils_3.aggLink)(opName)} pipeline stage</p>` +
44
+ `<p>${completion.description}</p>`,
45
+ }),
46
+ ...(completion.snippet && {
47
+ snippet: !isInsideBlock
48
+ ? `{\n${(0, utils_3.padLines)(`${opName}: ${completion.snippet}`)}\n}`
49
+ : `${opName}: ${completion.snippet}`,
50
+ }),
51
+ };
52
+ }),
53
+ });
54
+ },
55
+ });
56
+ }
57
+ exports.createAggregationAutocompleter = createAggregationAutocompleter;
58
+ //# sourceMappingURL=aggregation-autocompleter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregation-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/aggregation-autocompleter.ts"],"names":[],"mappings":";;;AACA,qEAAqE;AAErE,oDAA6C;AAE7C,mCAAkC;AAClC,mCAAyE;AACzE,mCAA4C;AAC5C,yEAA+E;AAC/E,yEAA0E;AAC1E,+DAAiE;AAEjE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,wCAAgC,CAAC,CAAC;AAErE,SAAS,oBAAoB,CAC3B,WAAwB,EACxB,KAAY;IAEZ,KAAK,MAAM,MAAM,IAAI,IAAA,eAAO,EAAC,KAAK,CAAC,EAAE;QACnC,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,YAAY,GAAG,IAAA,wCAAgC,EACnD,WAAW,EACX,MAAM,CACP,CAAC;YACF,IACE,MAAM,CAAC,UAAU;gBAGjB,CAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC;gBACvC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,EACpC;gBACA,OAAO,YAAY,CAAC;aACrB;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,8BAA8B,CAC5C,UAA6D,EAAE;IAE/D,MAAM,oBAAoB,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE5E,OAAO,IAAA,uDAA4B,EAAC;QAClC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;;YACvC,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEjE,IAAI,aAAa,EAAE;gBACjB,OAAO,IAAA,8CAAwB,EAAC,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aACzE;YAED,MAAM,aAAa,GACjB,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,IAAI,MAAK,UAAU,CAAC;YAErE,OAAO,IAAA,4DAAiC,EAAC;gBACvC,MAAM;gBACN,WAAW,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBACnD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;oBAChC,OAAO;wBACL,GAAG,UAAU;wBACb,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI;4BAC5B,WAAW,EACT,MAAM,IAAA,eAAO,EAAC,MAAM,CAAC,qBAAqB;gCAC1C,MAAM,UAAU,CAAC,WAAW,MAAM;yBACrC,CAAC;wBACF,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI;4BACxB,OAAO,EAAE,CAAC,aAAa;gCACrB,CAAC,CAAC,MAAM,IAAA,gBAAQ,EAAC,GAAG,MAAM,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK;gCACzD,CAAC,CAAC,GAAG,MAAM,KAAK,UAAU,CAAC,OAAO,EAAE;yBACvC,CAAC;qBACH,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AArCD,wEAqCC"}
@@ -0,0 +1,3 @@
1
+ import type { CompletionSource } from '@codemirror/autocomplete';
2
+ export declare const createDocumentAutocompleter: (fields: string[]) => CompletionSource;
3
+ //# sourceMappingURL=document-autocompleter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/document-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA+BjE,eAAO,MAAM,2BAA2B,WAC9B,MAAM,EAAE,KACf,gBAqCF,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDocumentAutocompleter = void 0;
4
+ const autocompleter_1 = require("../autocompleter");
5
+ const json_editor_1 = require("../json-editor");
6
+ const utils_1 = require("./utils");
7
+ function isJSONPropertyName(token) {
8
+ var _a, _b;
9
+ return (token.name === 'PropertyName' ||
10
+ (token.type.isError &&
11
+ ['Property', '{'].includes((_b = (_a = token.prevSibling) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '')));
12
+ }
13
+ function isJavaScriptPropertyName(token) {
14
+ var _a;
15
+ return (((_a = token.parent) === null || _a === void 0 ? void 0 : _a.name) === 'Property' &&
16
+ (!token.prevSibling || token.prevSibling.name === '['));
17
+ }
18
+ const createDocumentAutocompleter = (fields) => {
19
+ const completions = (0, autocompleter_1.completer)('', { fields, meta: ['field:identifier'] });
20
+ return (context) => {
21
+ const token = (0, utils_1.resolveTokenAtCursor)(context);
22
+ const shouldAlwaysEscapeProperty = context.state.facet(json_editor_1.languageName)[0] === 'json';
23
+ if (isJSONPropertyName(token) || isJavaScriptPropertyName(token)) {
24
+ const prefix = context.state
25
+ .sliceDoc(token.from, context.pos)
26
+ .replace(/^("|')/, '');
27
+ return {
28
+ from: token.from,
29
+ to: token.to,
30
+ options: completions
31
+ .filter((completion) => {
32
+ return completion.value
33
+ .toLowerCase()
34
+ .startsWith(prefix.toLowerCase());
35
+ })
36
+ .map((completion) => {
37
+ return {
38
+ label: (0, autocompleter_1.wrapField)(completion.value, shouldAlwaysEscapeProperty),
39
+ type: 'property',
40
+ detail: 'field',
41
+ };
42
+ }),
43
+ filter: false,
44
+ };
45
+ }
46
+ return (0, utils_1.completeWordsInString)(context);
47
+ };
48
+ };
49
+ exports.createDocumentAutocompleter = createDocumentAutocompleter;
50
+ //# sourceMappingURL=document-autocompleter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/document-autocompleter.ts"],"names":[],"mappings":";;;AACA,oDAAwD;AACxD,gDAA8C;AAC9C,mCAAsE;AAGtE,SAAS,kBAAkB,CAAC,KAAY;;IACtC,OAAO,CAEL,KAAK,CAAC,IAAI,KAAK,cAAc;QAI7B,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;YACjB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC,CAC7D,CAAC;AACJ,CAAC;AACD,SAAS,wBAAwB,CAAC,KAAY;;IAC5C,OAAO,CAEL,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,IAAI,MAAK,UAAU;QAGjC,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,CACvD,CAAC;AACJ,CAAC;AAMM,MAAM,2BAA2B,GAAG,CACzC,MAAgB,EACE,EAAE;IACpB,MAAM,WAAW,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE1E,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,0BAA0B,GAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,0BAAY,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;QAElD,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE;YAChE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK;iBACzB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;iBACjC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEzB,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,OAAO,EAAE,WAAW;qBACjB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;oBACrB,OAAO,UAAU,CAAC,KAAK;yBACpB,WAAW,EAAE;yBACb,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtC,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBAClB,OAAO;wBACL,KAAK,EAAE,IAAA,yBAAS,EAAC,UAAU,CAAC,KAAK,EAAE,0BAA0B,CAAC;wBAE9D,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,OAAO;qBAChB,CAAC;gBACJ,CAAC,CAAC;gBACJ,MAAM,EAAE,KAAK;aACd,CAAC;SACH;QAED,OAAO,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,2BAA2B,+BAuCtC"}
@@ -0,0 +1,4 @@
1
+ import type { CompletionSource } from '@codemirror/autocomplete';
2
+ import type { CompleteOptions } from '../autocompleter';
3
+ export declare const createQueryAutocompleter: (options?: Pick<CompleteOptions, 'fields' | 'serverVersion'>) => CompletionSource;
4
+ //# sourceMappingURL=query-autocompleter.d.ts.map
@@ -0,0 +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,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAYxD,eAAO,MAAM,wBAAwB,aAC1B,KAAK,eAAe,EAAE,QAAQ,GAAG,eAAe,CAAC,KACzD,gBAcF,CAAC"}