@mongodb-js/compass-editor 0.2.0 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,uBAAuB,gBAAgB,CAAC;AAK9C,QAAA,MAAM,sBAAsB,QAiP3B,CAAC;AAgCF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,uBAAuB,gBAAgB,CAAC;AAW9C,QAAA,MAAM,sBAAsB,QA4Q3B,CAAC;AAgCF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC"}
package/dist/ace/theme.js CHANGED
@@ -4,6 +4,10 @@ exports.mongodbAceThemeCssText = exports.mongodbAceThemeCssClass = void 0;
4
4
  const compass_components_1 = require("@mongodb-js/compass-components");
5
5
  const mongodbAceThemeCssClass = 'ace-mongodb';
6
6
  exports.mongodbAceThemeCssClass = mongodbAceThemeCssClass;
7
+ const errorColor = encodeURIComponent(compass_components_1.palette.red.base);
8
+ const errorColorDarkMode = encodeURIComponent(compass_components_1.palette.red.light1);
9
+ const foldColor = encodeURIComponent(compass_components_1.palette.black);
10
+ const foldColorDarkMode = encodeURIComponent(compass_components_1.palette.white);
7
11
  const css = String.raw;
8
12
  const mongodbAceThemeCssText = css `
9
13
  .ace-mongodb {
@@ -118,9 +122,36 @@ const mongodbAceThemeCssText = css `
118
122
  background: inherit;
119
123
  }
120
124
  .ace-mongodb .ace_gutter-cell {
121
- /* gutter left padding has to account for error annotation size */
122
- padding-left: 20px;
123
- padding-right: 10px;
125
+ /* gutter left padding has to account for error annotation icon size */
126
+ padding-left: ${compass_components_1.spacing[3]}px;
127
+ }
128
+ .ace-mongodb .ace_gutter-cell.ace_error {
129
+ /* leafygreen XWithCircle */
130
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${errorColor}' fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm1.414-9.828a1 1 0 1 1 1.414 1.414L9.414 8l1.414 1.414a1 1 0 1 1-1.414 1.414L8 9.414l-1.414 1.414a1 1 0 1 1-1.414-1.414L6.586 8 5.172 6.586a1 1 0 0 1 1.414-1.414L8 6.586l1.414-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E%0A");
131
+ background-size: 12px;
132
+ background-repeat: no-repeat;
133
+ background-position: ${compass_components_1.spacing[1] / 2}px center;
134
+ }
135
+ /* To change svg foll color, we have to completely replace the background url, this can't be done with css custom properties */
136
+ .ace_dark.ace-mongodb .ace_gutter-cell.ace_error {
137
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${errorColorDarkMode}' fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm1.414-9.828a1 1 0 1 1 1.414 1.414L9.414 8l1.414 1.414a1 1 0 1 1-1.414 1.414L8 9.414l-1.414 1.414a1 1 0 1 1-1.414-1.414L6.586 8 5.172 6.586a1 1 0 0 1 1.414-1.414L8 6.586l1.414-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E%0A");
138
+ }
139
+ .ace-mongodb .ace_fold-widget {
140
+ /* leafygreen CaretDown */
141
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColor}' d='M8.679 10.796a.554.554 0 0 1-.858 0L4.64 6.976C4.32 6.594 4.582 6 5.069 6h6.362c.487 0 .748.594.43.976l-3.182 3.82z'/%3E%3C/svg%3E%0A");
142
+ background-size: 12px;
143
+ background-repeat: no-repeat;
144
+ background-position: center;
145
+ }
146
+ .ace_dark.ace-mongodb .ace_fold-widget {
147
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColorDarkMode}' d='M8.679 10.796a.554.554 0 0 1-.858 0L4.64 6.976C4.32 6.594 4.582 6 5.069 6h6.362c.487 0 .748.594.43.976l-3.182 3.82z'/%3E%3C/svg%3E%0A");
148
+ }
149
+ .ace-mongodb .ace_fold-widget.ace_closed {
150
+ /* leafygreen CaretRight */
151
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColor}' d='M10.796 7.321a.554.554 0 0 1 0 .858l-3.82 3.181c-.382.319-.976.058-.976-.429V4.57c0-.487.594-.748.976-.43l3.82 3.182z'/%3E%3C/svg%3E%0A");
152
+ }
153
+ .ace_dark.ace-mongodb .ace_fold-widget.ace_closed {
154
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='${foldColorDarkMode}' d='M10.796 7.321a.554.554 0 0 1 0 .858l-3.82 3.181c-.382.319-.976.058-.976-.429V4.57c0-.487.594-.748.976-.43l3.82 3.182z'/%3E%3C/svg%3E%0A");
124
155
  }
125
156
  .ace-mongodb .ace_keyword {
126
157
  color: var(--keyword-color);
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ace/theme.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,10 @@ export declare type EditorProps = {
27
27
  'data-testid'?: string;
28
28
  onChangeText?: (text: string, event?: any) => void;
29
29
  darkMode?: boolean;
30
+ editorClassName?: string;
30
31
  } & Omit<IAceEditorProps, 'onChange' | 'value' | 'theme'>;
31
- declare function BaseEditor({ text, variant, options, readOnly, id, name, commands: _commands, onChangeText, completer, 'data-testid': dataTestId, onFocus, darkMode: _darkMode, ...aceProps }: EditorProps): React.ReactElement;
32
+ declare function BaseEditor({ text, variant, options, readOnly, id, name, commands: _commands, onChangeText, completer, 'data-testid': dataTestId, onFocus, darkMode: _darkMode, className, editorClassName, ...aceProps }: EditorProps): React.ReactElement;
32
33
  declare function setEditorValue(element: HTMLElement, value: string): void;
33
34
  declare const EditorTextCompleter: any;
34
- export { BaseEditor as Editor, EditorVariant, EditorTextCompleter, setEditorValue, };
35
+ export { BaseEditor, EditorVariant, EditorTextCompleter, setEditorValue };
35
36
  //# sourceMappingURL=base-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-editor.d.ts","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAQhE,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI9D,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;AAG5C,OAAO,OAAO,CAAC;AAuBf,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;CACpB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAQ1D,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,GAAG,QAAQ,EACZ,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAmElC;AAUD,iBAAS,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED,QAAA,MAAM,mBAAmB,KAAsB,CAAC;AAGhD,OAAO,EACL,UAAU,IAAI,MAAM,EACpB,aAAa,EACb,mBAAmB,EACnB,cAAc,GACf,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,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;AA+C1D,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"}
@@ -26,9 +26,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.setEditorValue = exports.EditorTextCompleter = exports.EditorVariant = exports.Editor = void 0;
29
+ exports.setEditorValue = exports.EditorTextCompleter = exports.EditorVariant = exports.BaseEditor = void 0;
30
30
  const react_1 = __importStar(require("react"));
31
31
  const compass_components_1 = require("@mongodb-js/compass-components");
32
+ const compass_components_2 = require("@mongodb-js/compass-components");
32
33
  require("ace-builds");
33
34
  const react_ace_1 = __importDefault(require("react-ace"));
34
35
  require("ace-builds/src-noconflict/ext-language_tools");
@@ -42,8 +43,8 @@ require("ace-builds/src-noconflict/mode-rust");
42
43
  require("ace-builds/src-noconflict/mode-golang");
43
44
  require("ace-builds/src-noconflict/mode-php");
44
45
  const ext_language_tools_1 = __importDefault(require("ace-builds/src-noconflict/ext-language_tools"));
45
- const ext_beautify_1 = __importDefault(require("ace-builds/src-noconflict/ext-beautify"));
46
46
  require("./ace");
47
+ const prettify_1 = require("./prettify");
47
48
  const DEFAULT_OPTIONS = {
48
49
  enableLiveAutocompletion: false,
49
50
  tabSize: 2,
@@ -52,7 +53,7 @@ const DEFAULT_OPTIONS = {
52
53
  showGutter: true,
53
54
  showPrintMargin: false,
54
55
  useWorker: false,
55
- fontFamily: compass_components_1.fontFamilies.code,
56
+ fontFamily: compass_components_2.fontFamilies.code,
56
57
  fontSize: 13,
57
58
  };
58
59
  const EditorVariant = {
@@ -61,12 +62,45 @@ const EditorVariant = {
61
62
  Generic: 'Generic',
62
63
  };
63
64
  exports.EditorVariant = EditorVariant;
64
- const editorStyle = (0, compass_components_1.css)({
65
+ const editorStyle = (0, compass_components_2.css)({
65
66
  position: 'relative',
66
67
  width: '100%',
67
68
  zIndex: 0,
68
69
  });
69
- function BaseEditor({ text, variant, options, readOnly, id, name, commands: _commands, onChangeText, completer, 'data-testid': dataTestId, onFocus, darkMode: _darkMode, ...aceProps }) {
70
+ const defaultCommands = [
71
+ {
72
+ name: 'prettify',
73
+ exec(editor) {
74
+ try {
75
+ const mode = editor.session.getMode().$id;
76
+ const format = mode.endsWith('/json')
77
+ ? 'json'
78
+ : 'javascript-expression';
79
+ const code = (0, prettify_1.prettify)(editor.getValue(), format);
80
+ const currentSelection = editor.selection.toJSON();
81
+ editor.session.doc.setValue(code);
82
+ editor.selection.fromJSON(currentSelection);
83
+ }
84
+ catch (_a) {
85
+ }
86
+ },
87
+ bindKey: {
88
+ win: 'Ctrl-Shift-B',
89
+ mac: 'Ctrl-Shift-B',
90
+ },
91
+ },
92
+ {
93
+ name: 'copy-all',
94
+ exec(editor) {
95
+ void navigator.clipboard.writeText(editor.getValue());
96
+ },
97
+ bindKey: {
98
+ win: 'Ctrl-Shift-C',
99
+ mac: 'Ctrl-Shift-C',
100
+ },
101
+ },
102
+ ];
103
+ function BaseEditor({ text, variant, options, readOnly, id, name, commands: _commands, onChangeText, completer, 'data-testid': dataTestId, onFocus, darkMode: _darkMode, className, editorClassName, ...aceProps }) {
70
104
  const setOptions = {
71
105
  ...DEFAULT_OPTIONS,
72
106
  ...options,
@@ -75,7 +109,7 @@ function BaseEditor({ text, variant, options, readOnly, id, name, commands: _com
75
109
  ...(!!completer && { enableLiveAutocompletion: true }),
76
110
  };
77
111
  const editorRef = (0, react_1.useRef)(null);
78
- const providerDarkMode = (0, compass_components_1.useDarkMode)();
112
+ const providerDarkMode = (0, compass_components_2.useDarkMode)();
79
113
  const darkMode = _darkMode !== null && _darkMode !== void 0 ? _darkMode : providerDarkMode;
80
114
  (0, react_1.useLayoutEffect)(() => {
81
115
  if (!editorRef.current) {
@@ -88,11 +122,11 @@ function BaseEditor({ text, variant, options, readOnly, id, name, commands: _com
88
122
  editorRef.current.editor.textInput.getElement().id = id;
89
123
  }
90
124
  }, [id]);
91
- const editorName = (0, compass_components_1.useId)();
125
+ const editorName = (0, compass_components_2.useId)();
92
126
  const commands = (0, react_1.useMemo)(() => {
93
- return ext_beautify_1.default.commands.concat(_commands !== null && _commands !== void 0 ? _commands : []);
127
+ return defaultCommands.concat(_commands !== null && _commands !== void 0 ? _commands : []);
94
128
  }, [_commands]);
95
- return (react_1.default.createElement("div", { "data-testid": dataTestId, className: editorStyle },
129
+ return (react_1.default.createElement("div", { "data-testid": dataTestId, className: (0, compass_components_1.cx)(editorStyle, className) },
96
130
  react_1.default.createElement(react_ace_1.default, { ref: editorRef, mode: variant === 'Generic'
97
131
  ? undefined
98
132
  : variant === 'EJSON'
@@ -102,9 +136,9 @@ function BaseEditor({ text, variant, options, readOnly, id, name, commands: _com
102
136
  ext_language_tools_1.default.setCompleters([completer]);
103
137
  }
104
138
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(ev);
105
- }, ...aceProps })));
139
+ }, className: editorClassName, ...aceProps })));
106
140
  }
107
- exports.Editor = BaseEditor;
141
+ exports.BaseEditor = BaseEditor;
108
142
  function setEditorValue(element, value) {
109
143
  const container = element.querySelector('.ace_editor');
110
144
  if (!container) {
@@ -1 +1 @@
1
- {"version":3,"file":"base-editor.js","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-editor.js","sourceRoot":"","sources":["../src/base-editor.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,4 +8,7 @@ export declare type AceEditor = Ace.Editor;
8
8
  export declare type AceAnnotation = Ace.Annotation;
9
9
  export type { CompletionWithServerInfo } from './types';
10
10
  export { InlineEditor } from './inline-editor';
11
+ export { prettify } from './prettify';
12
+ export type { FormatOptions } from './prettify';
13
+ export { Editor } from './multiline-editor';
11
14
  //# sourceMappingURL=index.d.ts.map
@@ -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,oBAAY,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;AACnC,oBAAY,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC;AAC3C,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
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,oBAAY,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;AACnC,oBAAY,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"}
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.InlineEditor = exports.AggregationAutoCompleter = exports.StageAutoCompleter = exports.QueryAutoCompleter = exports.ValidationAutoCompleter = void 0;
17
+ 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; } });
@@ -26,4 +26,8 @@ var aggregation_autocompleter_1 = require("./ace/aggregation-autocompleter");
26
26
  Object.defineProperty(exports, "AggregationAutoCompleter", { enumerable: true, get: function () { return aggregation_autocompleter_1.AggregationAutoCompleter; } });
27
27
  var inline_editor_1 = require("./inline-editor");
28
28
  Object.defineProperty(exports, "InlineEditor", { enumerable: true, get: function () { return inline_editor_1.InlineEditor; } });
29
+ var prettify_1 = require("./prettify");
30
+ Object.defineProperty(exports, "prettify", { enumerable: true, get: function () { return prettify_1.prettify; } });
31
+ var multiline_editor_1 = require("./multiline-editor");
32
+ Object.defineProperty(exports, "Editor", { enumerable: true, get: function () { return multiline_editor_1.Editor; } });
29
33
  //# 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"}
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"}
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  import type { EditorProps } from './base-editor';
3
- declare type InlineEditorProps = EditorProps & Omit<EditorProps['options'], 'showGutter' | 'highlightActiveLine' | 'highlightGutterLine' | 'minLines'>;
3
+ declare type InlineEditorProps = Omit<EditorProps, 'options' | 'editorClassName'> & {
4
+ options?: Omit<EditorProps['options'], 'showGutter' | 'highlightActiveLine' | 'highlightGutterLine' | 'minLines'>;
5
+ };
4
6
  declare const InlineEditor: React.FunctionComponent<InlineEditorProps>;
5
7
  export { InlineEditor };
6
8
  //# sourceMappingURL=inline-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-editor.d.ts","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,aAAK,iBAAiB,GAAG,WAAW,GAClC,IAAI,CACF,WAAW,CAAC,SAAS,CAAC,EACtB,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,UAAU,CAC1E,CAAC;AAEJ,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAoB5D,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
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,aAAK,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"}
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.InlineEditor = void 0;
7
- const compass_components_1 = require("@mongodb-js/compass-components");
8
7
  const react_1 = __importDefault(require("react"));
9
8
  const base_editor_1 = require("./base-editor");
10
- const InlineEditor = ({ options, className, ...props }) => {
9
+ const InlineEditor = ({ options, ...props }) => {
11
10
  const inlineEditorOptions = {
12
11
  maxLines: 10,
13
12
  ...options,
@@ -16,7 +15,7 @@ const InlineEditor = ({ options, className, ...props }) => {
16
15
  highlightActiveLine: false,
17
16
  highlightGutterLine: false,
18
17
  };
19
- return (react_1.default.createElement(base_editor_1.Editor, { options: inlineEditorOptions, className: (0, compass_components_1.cx)('inline-editor', className), ...props }));
18
+ return (react_1.default.createElement(base_editor_1.BaseEditor, { options: inlineEditorOptions, editorClassName: "inline-editor", ...props }));
20
19
  };
21
20
  exports.InlineEditor = InlineEditor;
22
21
  //# sourceMappingURL=inline-editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-editor.js","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":";;;;;;AAAA,uEAAoD;AACpD,kDAA0B;AAE1B,+CAAuC;AAQvC,MAAM,YAAY,GAA+C,CAAC,EAChE,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,mBAAmB,GAAG;QAC1B,QAAQ,EAAE,EAAE;QACZ,GAAG,OAAO;QACV,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,KAAK;QACjB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;KAC3B,CAAC;IACF,OAAO,CACL,8BAAC,oBAAM,IACL,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,IAAA,uBAAE,EAAC,eAAe,EAAE,SAAS,CAAC,KACrC,KAAK,GACD,CACX,CAAC;AACJ,CAAC,CAAC;AAEO,oCAAY"}
1
+ {"version":3,"file":"inline-editor.js","sourceRoot":"","sources":["../src/inline-editor.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,+CAA2C;AAS3C,MAAM,YAAY,GAA+C,CAAC,EAChE,OAAO,EACP,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,mBAAmB,GAAG;QAC1B,QAAQ,EAAE,EAAE;QACZ,GAAG,OAAO;QACV,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,KAAK;QACjB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;KAC3B,CAAC;IACF,OAAO,CACL,8BAAC,wBAAU,IACT,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAC,eAAe,KAC3B,KAAK,GACG,CACf,CAAC;AACJ,CAAC,CAAC;AAEO,oCAAY"}
@@ -0,0 +1,18 @@
1
+ import type { IconGlyph } from '@mongodb-js/compass-components';
2
+ import type { Ace } from 'ace-builds';
3
+ import React from 'react';
4
+ import type { EditorProps as BaseEditorProps } from './base-editor';
5
+ declare type CustomActionItem = {
6
+ icon: IconGlyph;
7
+ action: string;
8
+ label: string;
9
+ };
10
+ declare type EditorProps = Omit<BaseEditorProps, 'editorClassName'> & {
11
+ copyable?: boolean;
12
+ formattable?: boolean;
13
+ customActions?: CustomActionItem[];
14
+ onAction?: (editor: Ace.Editor | undefined, action: string) => void;
15
+ };
16
+ declare const MultilineEditor: React.FunctionComponent<EditorProps>;
17
+ export { MultilineEditor as Editor };
18
+ //# sourceMappingURL=multiline-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiline-editor.d.ts","sourceRoot":"","sources":["../src/multiline-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAIhE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAqHpE,aAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,aAAK,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,GAAG;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE,CAAC;AA8CF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAyEzD,CAAC;AAEF,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,138 @@
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.Editor = 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 base_editor_1 = require("./base-editor");
32
+ const actionButtonStyle = (0, compass_components_2.css)({
33
+ flex: 'none',
34
+ });
35
+ const actionButtonContentStyle = (0, compass_components_2.css)({
36
+ position: 'relative',
37
+ });
38
+ const actionButtonIconContainerStyle = (0, compass_components_2.css)({
39
+ opacity: 1,
40
+ width: 14,
41
+ height: 14,
42
+ transition: 'opacity .2s linear',
43
+ });
44
+ const actionButtonIconContainerHiddenStyle = (0, compass_components_2.css)({
45
+ opacity: 0,
46
+ });
47
+ const actionButtonClickResultIconStyle = (0, compass_components_2.css)({
48
+ position: 'absolute',
49
+ width: 14,
50
+ height: 14,
51
+ top: 0,
52
+ pointerEvents: 'none',
53
+ opacity: 1,
54
+ transition: 'opacity .2s linear',
55
+ });
56
+ const actionButtonClickResultIconHiddenStyle = (0, compass_components_2.css)({
57
+ opacity: 0,
58
+ });
59
+ const ActionButton = ({ label, icon, onClick }) => {
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(...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 },
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
+ 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
+ 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
+ const multilineEditorContainerStyle = (0, compass_components_2.css)({
89
+ position: 'relative',
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
+ });
101
+ const actionsContainerStyle = (0, compass_components_2.css)({
102
+ position: 'absolute',
103
+ top: compass_components_2.spacing[1],
104
+ right: compass_components_2.spacing[2],
105
+ display: 'none',
106
+ gap: compass_components_2.spacing[2],
107
+ });
108
+ const MultilineEditor = ({ copyable = true, formattable = true, customActions = [], onAction, onLoad, className, ...props }) => {
109
+ const editorRef = (0, react_1.useRef)();
110
+ const actions = (0, react_1.useMemo)(() => {
111
+ return [
112
+ copyable && (react_1.default.createElement(ActionButton, { label: "Copy", icon: "Copy", onClick: () => {
113
+ var _a;
114
+ (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.execCommand('copy-all');
115
+ return true;
116
+ } })),
117
+ formattable && (react_1.default.createElement(ActionButton, { label: "Format", icon: react_1.default.createElement(FormatIcon, { size: 14, role: "presentation" }), onClick: () => {
118
+ var _a;
119
+ (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.execCommand('prettify');
120
+ return true;
121
+ } })),
122
+ ...customActions.map((action) => {
123
+ return (react_1.default.createElement(ActionButton, { key: action.action, icon: action.icon, label: action.label, onClick: () => {
124
+ onAction === null || onAction === void 0 ? void 0 : onAction(editorRef.current, action.action);
125
+ } }));
126
+ }),
127
+ ];
128
+ }, [copyable, formattable, customActions, onAction]);
129
+ return (react_1.default.createElement("div", { className: (0, compass_components_1.cx)(multilineEditorContainerStyle, className) },
130
+ react_1.default.createElement("div", { className: editorContainerStyle },
131
+ react_1.default.createElement(base_editor_1.BaseEditor, { onLoad: (editor) => {
132
+ editorRef.current = editor;
133
+ onLoad === null || onLoad === void 0 ? void 0 : onLoad(editor);
134
+ }, ...props })),
135
+ actions.length > 0 && (react_1.default.createElement("div", { className: (0, compass_components_1.cx)('multiline-editor-actions', actionsContainerStyle) }, actions))));
136
+ };
137
+ exports.Editor = MultilineEditor;
138
+ //# sourceMappingURL=multiline-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiline-editor.js","sourceRoot":"","sources":["../src/multiline-editor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Options as PrettierFormatOptions } from 'prettier';
2
+ export declare type FormatOptions = Omit<PrettierFormatOptions, 'plugin' | 'parser'>;
3
+ export declare function prettify(code: string, parser?: 'javascript-expression' | 'javascript' | 'json', formatOptions?: FormatOptions): string;
4
+ //# sourceMappingURL=prettify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettify.d.ts","sourceRoot":"","sources":["../src/prettify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjE,oBAAY,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAE7E,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,MAAM,GACF,uBAAuB,GACvB,YAAY,GACZ,MAAgC,EACpC,aAAa,GAAE,aAAkB,UAoBlC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prettify = void 0;
7
+ const standalone_1 = __importDefault(require("prettier/standalone"));
8
+ const parser_babel_1 = __importDefault(require("prettier/parser-babel"));
9
+ function prettify(code, parser = 'javascript-expression', formatOptions = {}) {
10
+ return standalone_1.default
11
+ .format(code, {
12
+ plugins: [parser_babel_1.default],
13
+ printWidth: 50,
14
+ parser: parser === 'javascript-expression'
15
+ ?
16
+ '__js_expression'
17
+ : parser === 'json'
18
+ ? 'json'
19
+ : 'babel',
20
+ ...formatOptions,
21
+ })
22
+ .trim();
23
+ }
24
+ exports.prettify = prettify;
25
+ //# sourceMappingURL=prettify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettify.js","sourceRoot":"","sources":["../src/prettify.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA2C;AAC3C,yEAAgD;AAKhD,SAAgB,QAAQ,CACtB,IAAY,EACZ,SAGa,uBAAuB,EACpC,gBAA+B,EAAE;IAEjC,OAAO,oBAAQ;SACZ,MAAM,CAAC,IAAI,EAAE;QACZ,OAAO,EAAE,CAAC,sBAAW,CAAC;QACtB,UAAU,EAAE,EAAE;QACd,MAAM,EACJ,MAAM,KAAK,uBAAuB;YAChC,CAAC;gBAKC,iBAAiB;YACnB,CAAC,CAAC,MAAM,KAAK,MAAM;gBACnB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO;QACb,GAAG,aAAa;KACjB,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC;AA1BD,4BA0BC"}
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "email": "compass@mongodb.com"
14
14
  },
15
15
  "homepage": "https://github.com/mongodb-js/compass",
16
- "version": "0.2.0",
16
+ "version": "0.3.0",
17
17
  "repository": {
18
18
  "type": "git",
19
19
  "url": "https://github.com/mongodb-js/compass.git"
@@ -52,6 +52,7 @@
52
52
  "@mongodb-js/tsconfig-compass": "^1.0.1",
53
53
  "@types/chai": "^4.2.21",
54
54
  "@types/mocha": "^9.0.0",
55
+ "@types/prettier": "^2.7.1",
55
56
  "@types/sinon-chai": "^3.2.5",
56
57
  "chai": "^4.3.6",
57
58
  "depcheck": "^1.4.1",
@@ -63,12 +64,12 @@
63
64
  "typescript": "^4.8.3"
64
65
  },
65
66
  "dependencies": {
66
- "@mongodb-js/compass-components": "^1.3.0",
67
+ "@mongodb-js/compass-components": "^1.4.0",
67
68
  "@mongodb-js/mongodb-constants": "^0.1.4",
68
69
  "ace-builds": "^1.11.2",
69
70
  "react": "^16.14.0",
70
71
  "react-ace": "^9.5.0",
71
72
  "semver": "^7.3.8"
72
73
  },
73
- "gitHead": "10815be8fd57f3bfd89d061e1592eb7136d4a0fb"
74
+ "gitHead": "7f786ed13b999a5c0831af6fde545154890df956"
74
75
  }