@mongodb-js/compass-editor 0.6.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.
- package/dist/ace/aggregation-autocompleter.d.ts +1 -1
- package/dist/ace/aggregation-autocompleter.d.ts.map +1 -1
- package/dist/ace/aggregation-autocompleter.js +7 -6
- package/dist/ace/aggregation-autocompleter.js.map +1 -1
- package/dist/actions.d.ts +11 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +90 -0
- package/dist/actions.js.map +1 -0
- package/dist/autocompleter.d.ts +10 -7
- package/dist/autocompleter.d.ts.map +1 -1
- package/dist/autocompleter.js +28 -8
- package/dist/autocompleter.js.map +1 -1
- package/dist/base-editor.d.ts +1 -1
- package/dist/base-editor.d.ts.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 +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/inline-editor.d.ts +1 -1
- package/dist/inline-editor.d.ts.map +1 -1
- package/dist/json-editor.d.ts +51 -16
- package/dist/json-editor.d.ts.map +1 -1
- package/dist/json-editor.js +373 -50
- package/dist/json-editor.js.map +1 -1
- package/dist/multiline-editor.d.ts +2 -2
- package/dist/multiline-editor.d.ts.map +1 -1
- package/dist/multiline-editor.js +4 -60
- package/dist/multiline-editor.js.map +1 -1
- package/dist/prettify.d.ts +1 -1
- package/dist/prettify.d.ts.map +1 -1
- package/dist/syntax-highlight.d.ts +2 -2
- package/dist/syntax-highlight.d.ts.map +1 -1
- package/dist/syntax-highlight.js +2 -2
- package/dist/syntax-highlight.js.map +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createStageAutocompleter = 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 query_autocompleter_1 = require("./query-autocompleter");
|
|
8
|
+
const createStageAutocompleter = ({ stageOperator, ...options } = {}) => {
|
|
9
|
+
const queryAutocompleter = (0, query_autocompleter_1.createQueryAutocompleter)(options);
|
|
10
|
+
const fieldsReferenceCompletions = (0, autocompleter_1.completer)('', {
|
|
11
|
+
...options,
|
|
12
|
+
meta: ['field:reference'],
|
|
13
|
+
});
|
|
14
|
+
const stageCompletions = (0, autocompleter_1.completer)('', {
|
|
15
|
+
...options,
|
|
16
|
+
meta: [
|
|
17
|
+
'expr:*',
|
|
18
|
+
'conv',
|
|
19
|
+
'bson',
|
|
20
|
+
'field:identifier',
|
|
21
|
+
...(['$project', '$group'].includes(stageOperator !== null && stageOperator !== void 0 ? stageOperator : '')
|
|
22
|
+
? ['accumulator', 'accumulator:*']
|
|
23
|
+
: []),
|
|
24
|
+
],
|
|
25
|
+
}).map((completion) => {
|
|
26
|
+
var _a;
|
|
27
|
+
if ((_a = completion.meta) === null || _a === void 0 ? void 0 : _a.startsWith('expr:')) {
|
|
28
|
+
return {
|
|
29
|
+
...completion,
|
|
30
|
+
description: `<p>${(0, utils_1.aggLink)(completion.value)} pipeline operator</p>`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return completion;
|
|
34
|
+
});
|
|
35
|
+
return (0, ace_compat_autocompleter_1.createAceCompatAutocompleter)({
|
|
36
|
+
String({ prefix, context }) {
|
|
37
|
+
if (prefix.text.startsWith('$')) {
|
|
38
|
+
return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({
|
|
39
|
+
prefix,
|
|
40
|
+
completions: fieldsReferenceCompletions,
|
|
41
|
+
escape: 'never',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return (0, utils_1.completeWordsInString)(context);
|
|
45
|
+
},
|
|
46
|
+
IdentifierLike({ prefix, context }) {
|
|
47
|
+
if (stageOperator === '$match') {
|
|
48
|
+
return queryAutocompleter(context);
|
|
49
|
+
}
|
|
50
|
+
return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({
|
|
51
|
+
prefix,
|
|
52
|
+
completions: stageCompletions,
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
exports.createStageAutocompleter = createStageAutocompleter;
|
|
58
|
+
//# sourceMappingURL=stage-autocompleter.js.map
|
|
@@ -0,0 +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,GAAG,OAAO,KAGR,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,aAAb,aAAa,cAAb,aAAa,GAAI,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,MAAA,UAAU,CAAC,IAAI,0CAAE,UAAU,CAAC,OAAO,CAAC,EAAE;YACxC,OAAO;gBACL,GAAG,UAAU;gBACb,WAAW,EAAE,MAAM,IAAA,eAAO,EAAC,UAAU,CAAC,KAAK,CAAC,wBAAwB;aACrE,CAAC;SACH;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;gBAC/B,OAAO,IAAA,4DAAiC,EAAC;oBACvC,MAAM;oBACN,WAAW,EAAE,0BAA0B;oBAEvC,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;aACJ;YAED,OAAO,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;YAChC,IAAI,aAAa,KAAK,QAAQ,EAAE;gBAC9B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;aACpC;YACD,OAAO,IAAA,4DAAiC,EAAC;gBACvC,MAAM;gBACN,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AA1DW,QAAA,wBAAwB,4BA0DnC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CompletionContext } from '@codemirror/autocomplete';
|
|
2
|
+
import type { EditorState } from '@codemirror/state';
|
|
3
|
+
export declare const completeWordsInString: import("@codemirror/autocomplete").CompletionSource;
|
|
4
|
+
export declare function resolveTokenAtCursor(context: CompletionContext): import("@lezer/common").SyntaxNode;
|
|
5
|
+
export type Token = ReturnType<typeof resolveTokenAtCursor>;
|
|
6
|
+
export declare function aggLink(op: string): string;
|
|
7
|
+
export declare function padLines(str: string, pad?: string): string;
|
|
8
|
+
export declare function parents(token: Token): Generator<import("@lezer/common").SyntaxNode, void, unknown>;
|
|
9
|
+
export declare function removeQuotes(str: string): string;
|
|
10
|
+
export declare function isTokenEqual(a: Token, b: Token): boolean;
|
|
11
|
+
export declare function getPropertyNameFromPropertyToken(editorState: EditorState, propertyToken: Token): string;
|
|
12
|
+
export declare function getTokenText(editorState: EditorState, token: Token): string;
|
|
13
|
+
export declare function getAncestryOfToken(token: Token, document: string): string[];
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +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;AAErD,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,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG1C;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;AA0CD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAY3E"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAncestryOfToken = exports.getTokenText = exports.getPropertyNameFromPropertyToken = exports.isTokenEqual = exports.removeQuotes = exports.parents = exports.padLines = exports.aggLink = exports.resolveTokenAtCursor = exports.completeWordsInString = void 0;
|
|
4
|
+
const autocomplete_1 = require("@codemirror/autocomplete");
|
|
5
|
+
const language_1 = require("@codemirror/language");
|
|
6
|
+
exports.completeWordsInString = (0, autocomplete_1.ifIn)(['String'], autocomplete_1.completeAnyWord);
|
|
7
|
+
function resolveTokenAtCursor(context) {
|
|
8
|
+
return (0, language_1.syntaxTree)(context.state).resolveInner(context.pos, -1);
|
|
9
|
+
}
|
|
10
|
+
exports.resolveTokenAtCursor = resolveTokenAtCursor;
|
|
11
|
+
function aggLink(op) {
|
|
12
|
+
op = op.replace(/^\$/, '');
|
|
13
|
+
return `<a target="_blank" href="https://www.mongodb.com/docs/manual/reference/operator/aggregation/${op}/">$${op}</a>`;
|
|
14
|
+
}
|
|
15
|
+
exports.aggLink = aggLink;
|
|
16
|
+
function padLines(str, pad = ' ') {
|
|
17
|
+
return str
|
|
18
|
+
.split('\n')
|
|
19
|
+
.map((line) => `${pad}${line}`)
|
|
20
|
+
.join('\n');
|
|
21
|
+
}
|
|
22
|
+
exports.padLines = padLines;
|
|
23
|
+
function* parents(token) {
|
|
24
|
+
let parent = token;
|
|
25
|
+
while ((parent = parent.parent)) {
|
|
26
|
+
yield parent;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.parents = parents;
|
|
30
|
+
function removeQuotes(str) {
|
|
31
|
+
return str.replace(/(^('|")|('|")$)/g, '');
|
|
32
|
+
}
|
|
33
|
+
exports.removeQuotes = removeQuotes;
|
|
34
|
+
function isTokenEqual(a, b) {
|
|
35
|
+
return a.from === b.from && a.to === b.to;
|
|
36
|
+
}
|
|
37
|
+
exports.isTokenEqual = isTokenEqual;
|
|
38
|
+
function getPropertyNameFromPropertyToken(editorState, propertyToken) {
|
|
39
|
+
if (!propertyToken.firstChild) {
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
return removeQuotes(getTokenText(editorState, propertyToken.firstChild));
|
|
43
|
+
}
|
|
44
|
+
exports.getPropertyNameFromPropertyToken = getPropertyNameFromPropertyToken;
|
|
45
|
+
function getTokenText(editorState, token) {
|
|
46
|
+
return editorState.sliceDoc(token.from, token.to);
|
|
47
|
+
}
|
|
48
|
+
exports.getTokenText = getTokenText;
|
|
49
|
+
const getAncestorList = (node, doc) => {
|
|
50
|
+
const ancestors = [];
|
|
51
|
+
if (!(node === null || node === void 0 ? void 0 : node.parent)) {
|
|
52
|
+
return ancestors;
|
|
53
|
+
}
|
|
54
|
+
if (['ArrayExpression', 'Array'].includes(node.parent.name)) {
|
|
55
|
+
let prevSibling = node.prevSibling;
|
|
56
|
+
let index = 0;
|
|
57
|
+
while (prevSibling) {
|
|
58
|
+
if (![':', ',', '['].includes(prevSibling.name)) {
|
|
59
|
+
index++;
|
|
60
|
+
}
|
|
61
|
+
prevSibling = prevSibling.prevSibling;
|
|
62
|
+
}
|
|
63
|
+
ancestors.push(`[${index}]`);
|
|
64
|
+
}
|
|
65
|
+
if (node.name === 'Property' && node.firstChild) {
|
|
66
|
+
const { from, to } = node.firstChild;
|
|
67
|
+
const ancestor = doc.slice(from, to).replace(/"/g, '').replace(/'/g, '');
|
|
68
|
+
ancestors.push(ancestor);
|
|
69
|
+
}
|
|
70
|
+
return ancestors.concat(getAncestorList(node.parent, doc));
|
|
71
|
+
};
|
|
72
|
+
function getAncestryOfToken(token, document) {
|
|
73
|
+
var _a, _b, _c;
|
|
74
|
+
const isAutocompletingPropertyName = ['ObjectExpression', 'PropertyDefinition'].includes(token.name) ||
|
|
75
|
+
(((_b = (_a = token.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.name) === 'ObjectExpression' && !token.prevSibling);
|
|
76
|
+
const list = getAncestorList(isAutocompletingPropertyName ? (_c = token.parent) === null || _c === void 0 ? void 0 : _c.parent : token, document).reverse();
|
|
77
|
+
return list;
|
|
78
|
+
}
|
|
79
|
+
exports.getAncestryOfToken = getAncestryOfToken;
|
|
80
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/codemirror/utils.ts"],"names":[],"mappings":";;;AAAA,2DAAiE;AAEjE,mDAAkD;AAGrC,QAAA,qBAAqB,GAAG,IAAA,mBAAI,EAAC,CAAC,QAAQ,CAAC,EAAE,8BAAe,CAAC,CAAC;AAEvE,SAAgB,oBAAoB,CAAC,OAA0B;IAC7D,OAAO,IAAA,qBAAU,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAFD,oDAEC;AAID,SAAgB,OAAO,CAAC,EAAU;IAChC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,+FAA+F,EAAE,OAAO,EAAE,MAAM,CAAC;AAC1H,CAAC;AAHD,0BAGC;AAED,SAAgB,QAAQ,CAAC,GAAW,EAAE,GAAG,GAAG,IAAI;IAC9C,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;SAC9B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AALD,4BAKC;AAED,QAAe,CAAC,CAAC,OAAO,CAAC,KAAY;IACnC,IAAI,MAAM,GAAiB,KAAK,CAAC;IACjC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;QAC/B,MAAM,MAAM,CAAC;KACd;AACH,CAAC;AALD,0BAKC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAFD,oCAEC;AAID,SAAgB,YAAY,CAAC,CAAQ,EAAE,CAAQ;IAC7C,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAFD,oCAEC;AAED,SAAgB,gCAAgC,CAC9C,WAAwB,EACxB,aAAoB;IAEpB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;QAC7B,OAAO,EAAE,CAAC;KACX;IACD,OAAO,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3E,CAAC;AARD,4EAQC;AAED,SAAgB,YAAY,CAAC,WAAwB,EAAE,KAAY;IACjE,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC;AAFD,oCAEC;AAKD,MAAM,eAAe,GAAG,CACtB,IAA8B,EAC9B,GAAW,EACD,EAAE;IACZ,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAE;QACjB,OAAO,SAAS,CAAC;KAClB;IAKD,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC3D,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,WAAW,EAAE;YAClB,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAC/C,KAAK,EAAE,CAAC;aACT;YACD,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;SACvC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;KAC9B;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;QAC/C,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1B;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAOF,SAAgB,kBAAkB,CAAC,KAAY,EAAE,QAAgB;;IAG/D,MAAM,4BAA4B,GAChC,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/D,CAAC,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,0CAAE,IAAI,MAAK,kBAAkB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE5E,MAAM,IAAI,GAAG,eAAe,CAC1B,4BAA4B,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,MAAM,0CAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAC3D,QAAQ,CACT,CAAC,OAAO,EAAE,CAAC;IACZ,OAAO,IAAI,CAAC;AACd,CAAC;AAZD,gDAYC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CompletionSource } from '@codemirror/autocomplete';
|
|
2
|
+
import type { CompleteOptions } from '../autocompleter';
|
|
3
|
+
export declare const createValidationAutocompleter: (options?: Pick<CompleteOptions, 'fields' | 'serverVersion'>) => CompletionSource;
|
|
4
|
+
//# sourceMappingURL=validation-autocompleter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-autocompleter.d.ts","sourceRoot":"","sources":["../../src/codemirror/validation-autocompleter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA6F1E,eAAO,MAAM,6BAA6B,aAC/B,KAAK,eAAe,EAAE,QAAQ,GAAG,eAAe,CAAC,KACzD,gBAqEF,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createValidationAutocompleter = void 0;
|
|
4
|
+
const autocomplete_1 = require("@codemirror/autocomplete");
|
|
5
|
+
const autocompleter_1 = require("../autocompleter");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const ace_compat_autocompleter_1 = require("./ace-compat-autocompleter");
|
|
8
|
+
const query_autocompleter_1 = require("./query-autocompleter");
|
|
9
|
+
const rootJsonSchemaCompletion = (from, to) => ({
|
|
10
|
+
filter: false,
|
|
11
|
+
from,
|
|
12
|
+
to,
|
|
13
|
+
options: [
|
|
14
|
+
(0, autocomplete_1.snippetCompletion)('{\n\t$jsonSchema: {\n\t\t${}\n\t}\n}', {
|
|
15
|
+
label: '$jsonSchema',
|
|
16
|
+
info: 'json-schema validation object',
|
|
17
|
+
}),
|
|
18
|
+
],
|
|
19
|
+
});
|
|
20
|
+
const isCompletingRequired = (ancestors) => {
|
|
21
|
+
return ancestors[ancestors.length - 2] === 'required';
|
|
22
|
+
};
|
|
23
|
+
const isCompletingProperties = (ancestors) => {
|
|
24
|
+
return ancestors[ancestors.length - 1] === 'properties';
|
|
25
|
+
};
|
|
26
|
+
const isCompletingBsonType = (ancestors) => {
|
|
27
|
+
var _a;
|
|
28
|
+
const immediateParent = (_a = ancestors[ancestors.length - 1]) !== null && _a !== void 0 ? _a : '';
|
|
29
|
+
return (immediateParent === 'bsonType' ||
|
|
30
|
+
ancestors[ancestors.length - 2] === 'bsonType');
|
|
31
|
+
};
|
|
32
|
+
const isCompletingQueryOperator = (ancestors, operators) => {
|
|
33
|
+
return ancestors
|
|
34
|
+
.filter((x) => x !== '$jsonSchema')
|
|
35
|
+
.some((x) => operators.includes(x));
|
|
36
|
+
};
|
|
37
|
+
const getNestingAncestor = (ancestors) => {
|
|
38
|
+
return (ancestors
|
|
39
|
+
.filter((x) => !['$jsonSchema'].includes(x))
|
|
40
|
+
.map((x, i, a) => {
|
|
41
|
+
if (['required', 'properties'].includes(x)) {
|
|
42
|
+
return a[i - 1];
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
.filter(Boolean)
|
|
46
|
+
.join('.'));
|
|
47
|
+
};
|
|
48
|
+
const filterFieldsByAncestor = (fields, ancestor) => {
|
|
49
|
+
if (ancestor === '') {
|
|
50
|
+
return fields;
|
|
51
|
+
}
|
|
52
|
+
return fields
|
|
53
|
+
.filter((x) => x.value !== ancestor && x.value.startsWith(ancestor))
|
|
54
|
+
.map((x) => {
|
|
55
|
+
const value = x.value.replace(`${ancestor}.`, '');
|
|
56
|
+
return {
|
|
57
|
+
...x,
|
|
58
|
+
value,
|
|
59
|
+
};
|
|
60
|
+
})
|
|
61
|
+
.filter((x) => x.value);
|
|
62
|
+
};
|
|
63
|
+
const createValidationAutocompleter = (options = {}) => {
|
|
64
|
+
const defaultCompletions = (0, autocompleter_1.completer)('', {
|
|
65
|
+
meta: ['json-schema', 'bson', 'query'],
|
|
66
|
+
...options,
|
|
67
|
+
});
|
|
68
|
+
const fieldCompletions = (0, autocompleter_1.completer)('', {
|
|
69
|
+
meta: ['field:identifier'],
|
|
70
|
+
...options,
|
|
71
|
+
});
|
|
72
|
+
const bsonTypeCompletions = (0, autocompleter_1.completer)('', {
|
|
73
|
+
meta: ['bson-type-aliases'],
|
|
74
|
+
...options,
|
|
75
|
+
});
|
|
76
|
+
const queryAutocompleter = (0, query_autocompleter_1.createQueryAutocompleter)(options);
|
|
77
|
+
const queryCompletions = (0, autocompleter_1.completer)('', {
|
|
78
|
+
meta: ['query'],
|
|
79
|
+
...options,
|
|
80
|
+
});
|
|
81
|
+
const queryOperators = queryCompletions.map((x) => x.value);
|
|
82
|
+
return (context) => {
|
|
83
|
+
const token = (0, utils_1.resolveTokenAtCursor)(context);
|
|
84
|
+
const document = context.state.sliceDoc(0);
|
|
85
|
+
const prefix = context.matchBefore(ace_compat_autocompleter_1.ID_REGEX);
|
|
86
|
+
if (token.type.isTop) {
|
|
87
|
+
return rootJsonSchemaCompletion(0, document.length);
|
|
88
|
+
}
|
|
89
|
+
if (!prefix) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const ancestors = (0, utils_1.getAncestryOfToken)(token, document);
|
|
93
|
+
if (ancestors.length === 0) {
|
|
94
|
+
return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({
|
|
95
|
+
prefix,
|
|
96
|
+
completions: queryCompletions,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (isCompletingQueryOperator(ancestors, queryOperators)) {
|
|
100
|
+
return queryAutocompleter(context);
|
|
101
|
+
}
|
|
102
|
+
if (isCompletingRequired(ancestors) || isCompletingProperties(ancestors)) {
|
|
103
|
+
const ancestor = getNestingAncestor(ancestors);
|
|
104
|
+
return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({
|
|
105
|
+
prefix,
|
|
106
|
+
completions: filterFieldsByAncestor(fieldCompletions, ancestor),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
if (isCompletingBsonType(ancestors)) {
|
|
110
|
+
return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({
|
|
111
|
+
prefix,
|
|
112
|
+
completions: bsonTypeCompletions,
|
|
113
|
+
escape: 'always',
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return (0, ace_compat_autocompleter_1.createCompletionResultForIdPrefix)({
|
|
117
|
+
prefix,
|
|
118
|
+
completions: defaultCompletions,
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
exports.createValidationAutocompleter = createValidationAutocompleter;
|
|
123
|
+
//# sourceMappingURL=validation-autocompleter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-autocompleter.js","sourceRoot":"","sources":["../../src/codemirror/validation-autocompleter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,14 +4,19 @@ export { ValidationAutoCompleter } from './ace/validation-autocompleter';
|
|
|
4
4
|
export { QueryAutoCompleter } from './ace/query-autocompleter';
|
|
5
5
|
export { StageAutoCompleter } from './ace/stage-autocompleter';
|
|
6
6
|
export { AggregationAutoCompleter } from './ace/aggregation-autocompleter';
|
|
7
|
-
export
|
|
8
|
-
export
|
|
7
|
+
export type AceEditor = Ace.Editor;
|
|
8
|
+
export type AceAnnotation = Ace.Annotation;
|
|
9
9
|
export type { CompletionWithServerInfo } from './types';
|
|
10
10
|
export { InlineEditor } from './inline-editor';
|
|
11
11
|
export { prettify } from './prettify';
|
|
12
12
|
export type { FormatOptions } from './prettify';
|
|
13
13
|
export { Editor } from './multiline-editor';
|
|
14
|
-
export {
|
|
15
|
-
export type { EditorView } from './json-editor';
|
|
14
|
+
export { CodemirrorInlineEditor, CodemirrorMultilineEditor, } from './json-editor';
|
|
15
|
+
export type { EditorView, Command, Annotation, Action, EditorRef, } from './json-editor';
|
|
16
16
|
export { SyntaxHighlight } from './syntax-highlight';
|
|
17
|
+
export { createDocumentAutocompleter } from './codemirror/document-autocompleter';
|
|
18
|
+
export { createValidationAutocompleter } from './codemirror/validation-autocompleter';
|
|
19
|
+
export { createQueryAutocompleter } from './codemirror/query-autocompleter';
|
|
20
|
+
export { createStageAutocompleter } from './codemirror/stage-autocompleter';
|
|
21
|
+
export { createAggregationAutocompleter } from './codemirror/aggregation-autocompleter';
|
|
17
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;AACnC,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC;AAC3C,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.SyntaxHighlight = exports.
|
|
17
|
+
exports.createAggregationAutocompleter = exports.createStageAutocompleter = exports.createQueryAutocompleter = exports.createValidationAutocompleter = exports.createDocumentAutocompleter = exports.SyntaxHighlight = exports.CodemirrorMultilineEditor = exports.CodemirrorInlineEditor = exports.Editor = exports.prettify = exports.InlineEditor = exports.AggregationAutoCompleter = exports.StageAutoCompleter = exports.QueryAutoCompleter = exports.ValidationAutoCompleter = void 0;
|
|
18
18
|
__exportStar(require("./base-editor"), exports);
|
|
19
19
|
var validation_autocompleter_1 = require("./ace/validation-autocompleter");
|
|
20
20
|
Object.defineProperty(exports, "ValidationAutoCompleter", { enumerable: true, get: function () { return validation_autocompleter_1.ValidationAutoCompleter; } });
|
|
@@ -31,7 +31,18 @@ Object.defineProperty(exports, "prettify", { enumerable: true, get: function ()
|
|
|
31
31
|
var multiline_editor_1 = require("./multiline-editor");
|
|
32
32
|
Object.defineProperty(exports, "Editor", { enumerable: true, get: function () { return multiline_editor_1.Editor; } });
|
|
33
33
|
var json_editor_1 = require("./json-editor");
|
|
34
|
-
Object.defineProperty(exports, "
|
|
34
|
+
Object.defineProperty(exports, "CodemirrorInlineEditor", { enumerable: true, get: function () { return json_editor_1.CodemirrorInlineEditor; } });
|
|
35
|
+
Object.defineProperty(exports, "CodemirrorMultilineEditor", { enumerable: true, get: function () { return json_editor_1.CodemirrorMultilineEditor; } });
|
|
35
36
|
var syntax_highlight_1 = require("./syntax-highlight");
|
|
36
37
|
Object.defineProperty(exports, "SyntaxHighlight", { enumerable: true, get: function () { return syntax_highlight_1.SyntaxHighlight; } });
|
|
38
|
+
var document_autocompleter_1 = require("./codemirror/document-autocompleter");
|
|
39
|
+
Object.defineProperty(exports, "createDocumentAutocompleter", { enumerable: true, get: function () { return document_autocompleter_1.createDocumentAutocompleter; } });
|
|
40
|
+
var validation_autocompleter_2 = require("./codemirror/validation-autocompleter");
|
|
41
|
+
Object.defineProperty(exports, "createValidationAutocompleter", { enumerable: true, get: function () { return validation_autocompleter_2.createValidationAutocompleter; } });
|
|
42
|
+
var query_autocompleter_2 = require("./codemirror/query-autocompleter");
|
|
43
|
+
Object.defineProperty(exports, "createQueryAutocompleter", { enumerable: true, get: function () { return query_autocompleter_2.createQueryAutocompleter; } });
|
|
44
|
+
var stage_autocompleter_2 = require("./codemirror/stage-autocompleter");
|
|
45
|
+
Object.defineProperty(exports, "createStageAutocompleter", { enumerable: true, get: function () { return stage_autocompleter_2.createStageAutocompleter; } });
|
|
46
|
+
var aggregation_autocompleter_2 = require("./codemirror/aggregation-autocompleter");
|
|
47
|
+
Object.defineProperty(exports, "createAggregationAutocompleter", { enumerable: true, get: function () { return aggregation_autocompleter_2.createAggregationAutocompleter; } });
|
|
37
48
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,2EAAyE;AAAhE,mIAAA,uBAAuB,OAAA;AAChC,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,6EAA2E;AAAlE,qIAAA,wBAAwB,OAAA;AAIjC,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,uDAA4C;AAAnC,0GAAA,MAAM,OAAA;AACf,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,2EAAyE;AAAhE,mIAAA,uBAAuB,OAAA;AAChC,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,iEAA+D;AAAtD,yHAAA,kBAAkB,OAAA;AAC3B,6EAA2E;AAAlE,qIAAA,wBAAwB,OAAA;AAIjC,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,uDAA4C;AAAnC,0GAAA,MAAM,OAAA;AACf,6CAGuB;AAFrB,qHAAA,sBAAsB,OAAA;AACtB,wHAAA,yBAAyB,OAAA;AAS3B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,8EAAkF;AAAzE,qIAAA,2BAA2B,OAAA;AACpC,kFAAsF;AAA7E,yIAAA,6BAA6B,OAAA;AACtC,wEAA4E;AAAnE,+HAAA,wBAAwB,OAAA;AACjC,wEAA4E;AAAnE,+HAAA,wBAAwB,OAAA;AACjC,oFAAwF;AAA/E,2IAAA,8BAA8B,OAAA"}
|
package/dist/inline-editor.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { EditorProps } from './base-editor';
|
|
3
|
-
|
|
3
|
+
type InlineEditorProps = Omit<EditorProps, 'options' | 'editorClassName'> & {
|
|
4
4
|
options?: Omit<EditorProps['options'], 'showGutter' | 'highlightActiveLine' | 'highlightGutterLine' | 'minLines'>;
|
|
5
5
|
};
|
|
6
6
|
declare const InlineEditor: React.FunctionComponent<InlineEditorProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-editor.d.ts","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,
|
|
1
|
+
{"version":3,"file":"inline-editor.d.ts","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,KAAK,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,iBAAiB,CAAC,GAAG;IAC1E,OAAO,CAAC,EAAE,IAAI,CACZ,WAAW,CAAC,SAAS,CAAC,EACtB,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,UAAU,CAC1E,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAmB5D,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/json-editor.d.ts
CHANGED
|
@@ -1,39 +1,74 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { KeyBinding } from '@codemirror/view';
|
|
3
3
|
import { EditorView } from '@codemirror/view';
|
|
4
|
-
import { unfoldAll } from '@codemirror/language';
|
|
5
4
|
import type { Diagnostic } from '@codemirror/lint';
|
|
6
5
|
import type { CompletionSource } from '@codemirror/autocomplete';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import type { IconGlyph } from '@mongodb-js/compass-components';
|
|
7
|
+
import { Facet } from '@codemirror/state';
|
|
8
|
+
import { LanguageSupport } from '@codemirror/language';
|
|
9
|
+
type EditorLanguage = 'json' | 'javascript';
|
|
10
|
+
export type Annotation = Pick<Diagnostic, 'from' | 'to' | 'severity' | 'message'>;
|
|
11
|
+
type EditorProps = {
|
|
10
12
|
language?: EditorLanguage;
|
|
11
13
|
onChangeText?: (text: string, event?: any) => void;
|
|
12
14
|
onLoad?: (editor: EditorView) => void;
|
|
13
15
|
darkMode?: boolean;
|
|
14
16
|
showLineNumbers?: boolean;
|
|
15
17
|
showFoldGutter?: boolean;
|
|
18
|
+
showAnnotationsGutter?: boolean;
|
|
19
|
+
showScroll?: boolean;
|
|
20
|
+
highlightActiveLine?: boolean;
|
|
16
21
|
readOnly?: boolean;
|
|
17
|
-
className?: string;
|
|
18
22
|
'data-testid'?: string;
|
|
19
23
|
annotations?: Annotation[];
|
|
20
24
|
completer?: CompletionSource;
|
|
25
|
+
minLines?: number;
|
|
26
|
+
maxLines?: number;
|
|
27
|
+
lineHeight?: number;
|
|
28
|
+
placeholder?: string;
|
|
29
|
+
commands?: readonly KeyBinding[];
|
|
21
30
|
} & ({
|
|
22
31
|
text: string;
|
|
23
32
|
initialText?: never;
|
|
24
33
|
} | {
|
|
25
34
|
text?: never;
|
|
26
35
|
initialText: string;
|
|
36
|
+
}) & Pick<React.HTMLProps<HTMLDivElement>, 'id' | 'className' | 'onFocus' | 'onBlur'>;
|
|
37
|
+
export declare const languages: Record<EditorLanguage, () => LanguageSupport>;
|
|
38
|
+
export declare const languageName: Facet<EditorLanguage, readonly EditorLanguage[]>;
|
|
39
|
+
export type EditorRef = {
|
|
40
|
+
foldAll: () => boolean;
|
|
41
|
+
unfoldAll: () => boolean;
|
|
42
|
+
copyAll: () => boolean;
|
|
43
|
+
prettify: () => boolean;
|
|
44
|
+
applySnippet: (template: string) => boolean;
|
|
45
|
+
focus: () => boolean;
|
|
46
|
+
readonly editor: EditorView | null;
|
|
47
|
+
};
|
|
48
|
+
declare const BaseEditor: React.ForwardRefExoticComponent<EditorProps & React.RefAttributes<EditorRef>>;
|
|
49
|
+
export type { EditorView, KeyBinding as Command };
|
|
50
|
+
type InlineEditorProps = Omit<EditorProps, 'text' | 'showLineNumbers' | 'showFoldGutter' | 'showAnnotationsGutter' | 'showScroll' | 'highlightActiveLine' | 'minLines' | 'maxLines' | 'annotations'> & ({
|
|
51
|
+
text: string;
|
|
52
|
+
initialText?: never;
|
|
53
|
+
} | {
|
|
54
|
+
text?: never;
|
|
55
|
+
initialText: string;
|
|
27
56
|
});
|
|
28
|
-
declare const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
57
|
+
declare const InlineEditor: React.ForwardRefExoticComponent<InlineEditorProps & React.RefAttributes<EditorRef>>;
|
|
58
|
+
export type Action = {
|
|
59
|
+
icon: IconGlyph;
|
|
60
|
+
label: string;
|
|
61
|
+
action: (editor: EditorView) => boolean | void;
|
|
62
|
+
};
|
|
63
|
+
type MultilineEditorProps = EditorProps & {
|
|
64
|
+
customActions?: Action[];
|
|
65
|
+
copyable?: boolean;
|
|
66
|
+
formattable?: boolean;
|
|
67
|
+
editorClassName?: string;
|
|
68
|
+
actionsClassName?: string;
|
|
33
69
|
};
|
|
34
|
-
declare const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export
|
|
38
|
-
export { BaseEditor as JSONEditor };
|
|
70
|
+
declare const MultilineEditor: React.ForwardRefExoticComponent<MultilineEditorProps & React.RefAttributes<EditorRef>>;
|
|
71
|
+
export { BaseEditor };
|
|
72
|
+
export { InlineEditor as CodemirrorInlineEditor };
|
|
73
|
+
export { MultilineEditor as CodemirrorMultilineEditor };
|
|
39
74
|
//# sourceMappingURL=json-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-editor.d.ts","sourceRoot":"","sources":["../src/json-editor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json-editor.d.ts","sourceRoot":"","sources":["../src/json-editor.tsx"],"names":[],"mappings":"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"}
|