@mongodb-js/compass-editor 0.6.0 → 0.8.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/dist/actions.d.ts +11 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/{multiline-editor.js → actions.js} +8 -57
- package/dist/actions.js.map +1 -0
- package/dist/autocompleter.d.ts +22 -7
- package/dist/autocompleter.d.ts.map +1 -1
- package/dist/autocompleter.js +28 -8
- package/dist/autocompleter.js.map +1 -1
- package/dist/codemirror/ace-compat-autocompleter.d.ts +26 -0
- package/dist/codemirror/ace-compat-autocompleter.d.ts.map +1 -0
- package/dist/codemirror/ace-compat-autocompleter.js +67 -0
- package/dist/codemirror/ace-compat-autocompleter.js.map +1 -0
- package/dist/codemirror/aggregation-autocompleter.d.ts +3 -0
- package/dist/codemirror/aggregation-autocompleter.d.ts.map +1 -0
- package/dist/codemirror/aggregation-autocompleter.js +58 -0
- package/dist/codemirror/aggregation-autocompleter.js.map +1 -0
- package/dist/codemirror/document-autocompleter.d.ts +3 -0
- package/dist/codemirror/document-autocompleter.d.ts.map +1 -0
- package/dist/codemirror/document-autocompleter.js +50 -0
- package/dist/codemirror/document-autocompleter.js.map +1 -0
- package/dist/codemirror/query-autocompleter.d.ts +4 -0
- package/dist/codemirror/query-autocompleter.d.ts.map +1 -0
- package/dist/codemirror/query-autocompleter.js +22 -0
- package/dist/codemirror/query-autocompleter.js.map +1 -0
- package/dist/codemirror/stage-autocompleter.d.ts +6 -0
- package/dist/codemirror/stage-autocompleter.d.ts.map +1 -0
- package/dist/codemirror/stage-autocompleter.js +58 -0
- package/dist/codemirror/stage-autocompleter.js.map +1 -0
- package/dist/codemirror/utils.d.ts +14 -0
- package/dist/codemirror/utils.d.ts.map +1 -0
- package/dist/codemirror/utils.js +80 -0
- package/dist/codemirror/utils.js.map +1 -0
- package/dist/codemirror/validation-autocompleter.d.ts +4 -0
- package/dist/codemirror/validation-autocompleter.d.ts.map +1 -0
- package/dist/codemirror/validation-autocompleter.js +123 -0
- package/dist/codemirror/validation-autocompleter.js.map +1 -0
- package/dist/index.d.ts +7 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -31
- package/dist/index.js.map +1 -1
- package/dist/json-editor.d.ts +101 -16
- package/dist/json-editor.d.ts.map +1 -1
- package/dist/json-editor.js +440 -76
- package/dist/json-editor.js.map +1 -1
- package/dist/prettify.d.ts +1 -1
- package/dist/prettify.d.ts.map +1 -1
- package/dist/types.d.ts +4 -36
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -14
- package/dist/ace/aggregation-autocompleter.d.ts +0 -15
- package/dist/ace/aggregation-autocompleter.d.ts.map +0 -1
- package/dist/ace/aggregation-autocompleter.js +0 -108
- package/dist/ace/aggregation-autocompleter.js.map +0 -1
- package/dist/ace/index.d.ts +0 -2
- package/dist/ace/index.d.ts.map +0 -1
- package/dist/ace/index.js +0 -37
- package/dist/ace/index.js.map +0 -1
- package/dist/ace/mode.d.ts +0 -2
- package/dist/ace/mode.d.ts.map +0 -1
- package/dist/ace/mode.js +0 -67
- package/dist/ace/mode.js.map +0 -1
- package/dist/ace/query-autocompleter.d.ts +0 -12
- package/dist/ace/query-autocompleter.d.ts.map +0 -1
- package/dist/ace/query-autocompleter.js +0 -38
- package/dist/ace/query-autocompleter.js.map +0 -1
- package/dist/ace/stage-autocompleter.d.ts +0 -16
- package/dist/ace/stage-autocompleter.d.ts.map +0 -1
- package/dist/ace/stage-autocompleter.js +0 -70
- package/dist/ace/stage-autocompleter.js.map +0 -1
- package/dist/ace/theme.d.ts +0 -4
- package/dist/ace/theme.d.ts.map +0 -1
- package/dist/ace/theme.js +0 -297
- package/dist/ace/theme.js.map +0 -1
- package/dist/ace/util.d.ts +0 -3
- package/dist/ace/util.d.ts.map +0 -1
- package/dist/ace/util.js +0 -12
- package/dist/ace/util.js.map +0 -1
- package/dist/ace/validation-autocompleter.d.ts +0 -12
- package/dist/ace/validation-autocompleter.d.ts.map +0 -1
- package/dist/ace/validation-autocompleter.js +0 -36
- package/dist/ace/validation-autocompleter.js.map +0 -1
- package/dist/base-editor.d.ts +0 -36
- package/dist/base-editor.d.ts.map +0 -1
- package/dist/base-editor.js +0 -156
- package/dist/base-editor.js.map +0 -1
- package/dist/inline-editor.d.ts +0 -8
- package/dist/inline-editor.d.ts.map +0 -1
- package/dist/inline-editor.js +0 -21
- package/dist/inline-editor.js.map +0 -1
- package/dist/multiline-editor.d.ts +0 -18
- package/dist/multiline-editor.d.ts.map +0 -1
- package/dist/multiline-editor.js.map +0 -1
- package/dist/syntax-highlight.d.ts +0 -10
- package/dist/syntax-highlight.d.ts.map +0 -1
- package/dist/syntax-highlight.js +0 -26
- package/dist/syntax-highlight.js.map +0 -1
|
@@ -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"}
|
|
@@ -23,12 +23,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.FormatIcon = exports.ActionButton = void 0;
|
|
27
27
|
const compass_components_1 = require("@mongodb-js/compass-components");
|
|
28
28
|
const compass_components_2 = require("@mongodb-js/compass-components");
|
|
29
29
|
const compass_components_3 = require("@mongodb-js/compass-components");
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
|
-
const base_editor_1 = require("./base-editor");
|
|
32
31
|
const actionButtonStyle = (0, compass_components_2.css)({
|
|
33
32
|
flex: 'none',
|
|
34
33
|
});
|
|
@@ -56,11 +55,12 @@ const actionButtonClickResultIconStyle = (0, compass_components_2.css)({
|
|
|
56
55
|
const actionButtonClickResultIconHiddenStyle = (0, compass_components_2.css)({
|
|
57
56
|
opacity: 0,
|
|
58
57
|
});
|
|
59
|
-
const ActionButton = ({ label, icon, onClick }) => {
|
|
58
|
+
const ActionButton = ({ label, icon, onClick, ...props }) => {
|
|
59
|
+
var _a;
|
|
60
60
|
const [clickResult, setClickResult] = (0, react_1.useState)('success');
|
|
61
61
|
const [clickResultVisible, setClickResultVisible] = (0, react_1.useState)(false);
|
|
62
62
|
const onButtonClick = (0, react_1.useCallback)((...args) => {
|
|
63
|
-
const result = onClick(...args);
|
|
63
|
+
const result = onClick === null || onClick === void 0 ? void 0 : onClick(...args);
|
|
64
64
|
if (typeof result === 'boolean') {
|
|
65
65
|
setClickResult(result ? 'success' : 'error');
|
|
66
66
|
setClickResultVisible(true);
|
|
@@ -77,63 +77,14 @@ const ActionButton = ({ label, icon, onClick }) => {
|
|
|
77
77
|
clearTimeout(timeoutId);
|
|
78
78
|
};
|
|
79
79
|
}, [clickResultVisible]);
|
|
80
|
-
return (react_1.default.createElement(compass_components_3.Button, { size: "xsmall", "aria-label": label, title: label, onClick: onButtonClick, className: actionButtonStyle },
|
|
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
81
|
react_1.default.createElement("div", { className: actionButtonContentStyle },
|
|
82
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
83
|
react_1.default.createElement("div", { className: (0, compass_components_1.cx)(actionButtonClickResultIconStyle, !clickResultVisible && actionButtonClickResultIconHiddenStyle) },
|
|
84
84
|
react_1.default.createElement(compass_components_3.Icon, { size: "small", glyph: clickResult === 'success' ? 'Checkmark' : 'X' })))));
|
|
85
85
|
};
|
|
86
|
+
exports.ActionButton = ActionButton;
|
|
86
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 },
|
|
87
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" })));
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
height: '100%',
|
|
91
|
-
[`&:focus-within > .multiline-editor-actions,
|
|
92
|
-
&:hover > .multiline-editor-actions`]: {
|
|
93
|
-
display: 'flex',
|
|
94
|
-
},
|
|
95
|
-
});
|
|
96
|
-
const editorContainerStyle = (0, compass_components_2.css)({
|
|
97
|
-
overflow: 'auto',
|
|
98
|
-
paddingTop: compass_components_2.spacing[1],
|
|
99
|
-
height: `calc(100% - ${compass_components_2.spacing[1]}px)`,
|
|
100
|
-
minHeight: 'inherit',
|
|
101
|
-
});
|
|
102
|
-
const actionsContainerStyle = (0, compass_components_2.css)({
|
|
103
|
-
position: 'absolute',
|
|
104
|
-
top: compass_components_2.spacing[1],
|
|
105
|
-
right: compass_components_2.spacing[2],
|
|
106
|
-
display: 'none',
|
|
107
|
-
gap: compass_components_2.spacing[2],
|
|
108
|
-
});
|
|
109
|
-
const MultilineEditor = ({ copyable = true, formattable = true, customActions = [], onAction, onLoad, className, ...props }) => {
|
|
110
|
-
const editorRef = (0, react_1.useRef)();
|
|
111
|
-
const actions = (0, react_1.useMemo)(() => {
|
|
112
|
-
return [
|
|
113
|
-
copyable && (react_1.default.createElement(ActionButton, { key: "Copy", label: "Copy", icon: "Copy", onClick: () => {
|
|
114
|
-
var _a;
|
|
115
|
-
(_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.execCommand('copy-all');
|
|
116
|
-
return true;
|
|
117
|
-
} })),
|
|
118
|
-
formattable && (react_1.default.createElement(ActionButton, { key: "Format", label: "Format", icon: react_1.default.createElement(FormatIcon, { size: 14, role: "presentation" }), onClick: () => {
|
|
119
|
-
var _a;
|
|
120
|
-
(_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.execCommand('prettify');
|
|
121
|
-
return true;
|
|
122
|
-
} })),
|
|
123
|
-
...customActions.map((action) => {
|
|
124
|
-
return (react_1.default.createElement(ActionButton, { key: action.action, icon: action.icon, label: action.label, onClick: () => {
|
|
125
|
-
onAction === null || onAction === void 0 ? void 0 : onAction(editorRef.current, action.action);
|
|
126
|
-
} }));
|
|
127
|
-
}),
|
|
128
|
-
];
|
|
129
|
-
}, [copyable, formattable, customActions, onAction]);
|
|
130
|
-
return (react_1.default.createElement("div", { className: (0, compass_components_1.cx)(multilineEditorContainerStyle, className) },
|
|
131
|
-
react_1.default.createElement("div", { className: editorContainerStyle },
|
|
132
|
-
react_1.default.createElement(base_editor_1.BaseEditor, { onLoad: (editor) => {
|
|
133
|
-
editorRef.current = editor;
|
|
134
|
-
onLoad === null || onLoad === void 0 ? void 0 : onLoad(editor);
|
|
135
|
-
}, ...props })),
|
|
136
|
-
actions.length > 0 && (react_1.default.createElement("div", { className: (0, compass_components_1.cx)('multiline-editor-actions', actionsContainerStyle) }, actions))));
|
|
137
|
-
};
|
|
138
|
-
exports.Editor = MultilineEditor;
|
|
139
|
-
//# sourceMappingURL=multiline-editor.js.map
|
|
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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"}
|
package/dist/autocompleter.d.ts
CHANGED
|
@@ -114,6 +114,12 @@ declare const ALL_COMPLETIONS: ({
|
|
|
114
114
|
readonly score: 1;
|
|
115
115
|
readonly meta: "accumulator";
|
|
116
116
|
readonly version: "5.2.0";
|
|
117
|
+
} | {
|
|
118
|
+
readonly name: "$median";
|
|
119
|
+
readonly value: "$median";
|
|
120
|
+
readonly score: 1;
|
|
121
|
+
readonly meta: "accumulator";
|
|
122
|
+
readonly version: "7.0.0";
|
|
117
123
|
} | {
|
|
118
124
|
readonly name: "$min";
|
|
119
125
|
readonly value: "$min";
|
|
@@ -127,6 +133,12 @@ declare const ALL_COMPLETIONS: ({
|
|
|
127
133
|
readonly score: 1;
|
|
128
134
|
readonly meta: "accumulator";
|
|
129
135
|
readonly version: "5.2.0";
|
|
136
|
+
} | {
|
|
137
|
+
readonly name: "$percentile";
|
|
138
|
+
readonly value: "$percentile";
|
|
139
|
+
readonly score: 1;
|
|
140
|
+
readonly meta: "accumulator";
|
|
141
|
+
readonly version: "7.0.0";
|
|
130
142
|
} | {
|
|
131
143
|
readonly name: "$push";
|
|
132
144
|
readonly value: "$push";
|
|
@@ -2224,8 +2236,8 @@ declare const ALL_COMPLETIONS: ({
|
|
|
2224
2236
|
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
2237
|
readonly snippet: "{\n allUsers: ${1:false},\n users: [\n { user: '${2:string}', db: '${3:string}' }\n ]\n}";
|
|
2226
2238
|
})[];
|
|
2227
|
-
|
|
2228
|
-
export
|
|
2239
|
+
type Meta = typeof ALL_COMPLETIONS[number]['meta'] | 'field:identifier' | 'field:reference';
|
|
2240
|
+
export type Completion = {
|
|
2229
2241
|
value: string;
|
|
2230
2242
|
version: string;
|
|
2231
2243
|
meta: Meta;
|
|
@@ -2233,20 +2245,23 @@ export declare type Completion = {
|
|
|
2233
2245
|
snippet?: string;
|
|
2234
2246
|
score?: number;
|
|
2235
2247
|
};
|
|
2236
|
-
export declare function createCompletionFilter(prefix: string, serverVersion: string, filterMeta?: string[]): ({ value, version, meta }: Completion) => boolean;
|
|
2237
|
-
export
|
|
2248
|
+
export declare function createCompletionFilter(prefix: string, serverVersion: string, filterMeta?: string[]): ({ value, version: minServerVersion, meta }: Completion) => boolean;
|
|
2249
|
+
export type CompleteOptions = {
|
|
2238
2250
|
serverVersion?: string;
|
|
2239
|
-
fields?: string
|
|
2251
|
+
fields?: (string | {
|
|
2252
|
+
name: string;
|
|
2253
|
+
description?: string;
|
|
2254
|
+
})[];
|
|
2240
2255
|
meta?: (Meta | 'field:*' | 'accumulator:*' | 'expr:*')[];
|
|
2241
2256
|
};
|
|
2242
|
-
export
|
|
2257
|
+
export type CompletionResult = {
|
|
2243
2258
|
value: string;
|
|
2244
2259
|
meta?: string;
|
|
2245
2260
|
description?: string;
|
|
2246
2261
|
snippet?: string;
|
|
2247
2262
|
score: number;
|
|
2248
2263
|
};
|
|
2249
|
-
export declare function wrapField(field: string): string;
|
|
2264
|
+
export declare function wrapField(field: string, force?: boolean): string;
|
|
2250
2265
|
export declare function completer(prefix?: string, options?: CompleteOptions, completions?: Completion[]): CompletionResult[];
|
|
2251
2266
|
export {};
|
|
2252
2267
|
//# sourceMappingURL=autocompleter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleter.d.ts","sourceRoot":"","sources":["../src/autocompleter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"autocompleter.d.ts","sourceRoot":"","sources":["../src/autocompleter.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/dist/autocompleter.js
CHANGED
|
@@ -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 :
|
|
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
|
-
:
|
|
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 =
|
|
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
|
-
{
|
|
60
|
-
|
|
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":";;;AAAA,mCAA6B;AAC7B,qEASuC;AAEvC,MAAM,eAAe,GAAG;IACtB,GAAG,gCAAY;IACf,GAAG,8BAAU;IACb,GAAG,qCAAiB;IACpB,GAAG,wCAAoB;IACvB,GAAG,wCAAoB;IACvB,GAAG,+BAAW;IACd,GAAG,mCAAe;IAClB,GAAG,mCAAe;CACnB,CAAC;AAsBF,SAAS,WAAW,CAAC,MAAgB,EAAE,IAAY;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;QAChC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,CACL,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YACvC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAChC,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB,CACpC,MAAc,EACd,aAAqB,EACrB,UAAqB;;IAErB,MAAM,oBAAoB,GACxB,MAAA,MAAA,MAAA,aAAa,CAAC,KAAK,CAAC,+BAA+B,CAAC,0CAAE,MAAM,0CAAE,OAAO,mCACrE,
|
|
1
|
+
{"version":3,"file":"autocompleter.js","sourceRoot":"","sources":["../src/autocompleter.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createQueryAutocompleter = void 0;
|
|
4
|
+
const autocompleter_1 = require("../autocompleter");
|
|
5
|
+
const ace_compat_autocompleter_1 = require("./ace-compat-autocompleter");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const createQueryAutocompleter = (options = {}) => {
|
|
8
|
+
const completions = (0, autocompleter_1.completer)('', {
|
|
9
|
+
meta: ['query', 'bson', 'field:identifier'],
|
|
10
|
+
...options,
|
|
11
|
+
});
|
|
12
|
+
return (0, ace_compat_autocompleter_1.createAceCompatAutocompleter)({
|
|
13
|
+
String({ context }) {
|
|
14
|
+
return (0, utils_1.completeWordsInString)(context);
|
|
15
|
+
},
|
|
16
|
+
IdentifierLike({ prefix }) {
|
|
17
|
+
return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({ prefix, completions });
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.createQueryAutocompleter = createQueryAutocompleter;
|
|
22
|
+
//# sourceMappingURL=query-autocompleter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/query-autocompleter.ts"],"names":[],"mappings":";;;AAEA,oDAA6C;AAC7C,yEAGoC;AACpC,mCAAgD;AAMzC,MAAM,wBAAwB,GAAG,CACtC,UAA6D,EAAE,EAC7C,EAAE;IACpB,MAAM,WAAW,GAAG,IAAA,yBAAS,EAAC,EAAE,EAAE;QAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC;QAC3C,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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompletionSource } from '@codemirror/autocomplete';
|
|
2
|
+
import type { CompleteOptions } from '../autocompleter';
|
|
3
|
+
export declare const createStageAutocompleter: ({ stageOperator, ...options }?: Pick<CompleteOptions, "serverVersion" | "fields"> & {
|
|
4
|
+
stageOperator?: string | undefined;
|
|
5
|
+
}) => CompletionSource;
|
|
6
|
+
//# sourceMappingURL=stage-autocompleter.d.ts.map
|
|
@@ -0,0 +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,eAAe,EAAE,MAAM,kBAAkB,CAAC;AASxD,eAAO,MAAM,wBAAwB;;MAK5B,gBAqDR,CAAC"}
|