diff --git a/package-lock.json b/package-lock.json
index 26c9c1cdda6..85533d1691d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -57181,7 +57181,6 @@
"lodash.debounce": "^4.0.8",
"lodash.isempty": "^4.4.0",
"lodash.isstring": "^4.0.1",
- "mongodb-extended-json": "^1.11.1",
"mongodb-ns": "^2.3.0",
"re-resizable": "^6.9.0",
"react-bootstrap": "^0.32.4",
@@ -63747,12 +63746,10 @@
"fast-json-parse": "^1.0.3",
"hadron-document": "^7.7.0",
"hadron-type-checker": "^6.6.0",
- "js-beautify": "^1.10.2",
"lodash": "^4.17.15",
"moment": "^2.27.0",
"moment-timezone": "^0.5.21",
"mongodb-ace-theme": "^1.5.0",
- "mongodb-extended-json": "^1.11.1",
"react-click-outside": "^3.0.1",
"react-tooltip": "^3.11.1"
},
@@ -69530,6 +69527,7 @@
"@mongodb-js/compass-field-store": "^7.18.0",
"autoprefixer": "^9.4.6",
"babel-loader": "^8.2.2",
+ "bson": "^4.4.1",
"chai": "^4.2.0",
"chai-enzyme": "1.0.0-beta.1",
"classnames": "^2.2.6",
@@ -69571,7 +69569,6 @@
"mocha-webpack": "^2.0.0-beta.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-index-model": "^3.8.0",
"mongodb-reflux-store": "^0.0.1",
"node-loader": "^0.6.0",
@@ -69605,8 +69602,9 @@
},
"peerDependencies": {
"@hot-loader/react-dom": "^16.9.0",
- "@mongodb-js/compass-components": "^0.10.0",
- "@mongodb-js/compass-deployment-awareness": "^11.18.0",
+ "@mongodb-js/compass-components": "^0.9.1",
+ "@mongodb-js/compass-deployment-awareness": "^11.17.1",
+ "bson": "^4.4.1",
"debug": "4.3.0",
"hadron-react-buttons": "^5.6.0",
"hadron-react-components": "^5.10.0",
@@ -76911,6 +76909,7 @@
"ampersand-rest-collection": "^6.0.0",
"autoprefixer": "^9.4.6",
"babel-loader": "^8.2.2",
+ "bson": "^4.4.1",
"chai": "^4.1.2",
"chai-enzyme": "1.0.0-beta.1",
"cheerio": "^1.0.0-rc.2",
@@ -76954,7 +76953,6 @@
"mocha": "^5.0.0",
"mocha-webpack": "^2.0.0-beta.0",
"mongodb-connection-model": "^21.12.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-js-metrics": "^7.7.0",
"mongodb-ns": "^2.3.0",
"mongodb-query-parser": "^2.4.3",
@@ -77745,7 +77743,6 @@
"mongodb-ace-theme": "^1.5.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-ns": "^2.3.0",
"mongodb-query-parser": "^2.4.3",
"mongodb-reflux-store": "^0.0.1",
@@ -77786,7 +77783,6 @@
"mongodb-ace-autocompleter": "*",
"mongodb-ace-mode": "^1.5.0",
"mongodb-ace-theme": "^1.5.0",
- "mongodb-extended-json": "*",
"mongodb-query-parser": "^2.4.3",
"prop-types": "^15.7.2",
"react": "^16.14.0",
@@ -110489,7 +110485,6 @@
"mongodb-ace-theme": "^1.5.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-js-metrics": "^7.7.0",
"mongodb-ns": "^2.3.0",
"mongodb-query-parser": "^2.4.3",
@@ -115743,7 +115738,6 @@
"ignore-loader": "^0.1.2",
"istanbul-instrumenter-loader": "^3.0.1",
"jquery": "^3.0.0",
- "js-beautify": "^1.10.2",
"jsdom": "^16.7.0",
"jsdom-global": "^3.0.2",
"less": "^3.11.1",
@@ -115757,7 +115751,6 @@
"mongodb-ace-theme": "^1.5.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-ns": "^2.3.0",
"mongodb-runner": "^4.8.3",
"node-loader": "^0.6.0",
@@ -119684,6 +119677,7 @@
"@mongodb-js/mongodb-redux-common": "^1.8.0",
"autoprefixer": "^9.4.6",
"babel-loader": "^8.2.2",
+ "bson": "^4.4.1",
"chai": "^4.2.0",
"chai-enzyme": "1.0.0-beta.1",
"classnames": "^2.2.6",
@@ -119735,7 +119729,6 @@
"mocha-webpack": "^2.0.0-beta.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-index-model": "^3.8.0",
"mongodb-ns": "^2.3.0",
"mongodb-reflux-store": "^0.0.1",
@@ -124270,7 +124263,6 @@
"mocha-webpack": "^2.0.0-beta.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-js-metrics": "^7.7.0",
"mongodb-ns": "^2.3.0",
"mongodb-query-parser": "^2.4.3",
@@ -126341,7 +126333,6 @@
"mongodb-ace-theme": "^1.5.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-ns": "^2.3.0",
"mongodb-query-parser": "^2.4.3",
"mongodb-reflux-store": "^0.0.1",
diff --git a/packages/compass-aggregations/.depcheckrc b/packages/compass-aggregations/.depcheckrc
index 8bd4f1b8a4b..8410dbe5d40 100644
--- a/packages/compass-aggregations/.depcheckrc
+++ b/packages/compass-aggregations/.depcheckrc
@@ -1,5 +1,4 @@
ignores: [
- "mongodb-extended-json",
"storage-mixin",
"@hot-loader/react-dom",
"@babel/cli",
diff --git a/packages/compass-aggregations/package.json b/packages/compass-aggregations/package.json
index fc80f5eb3f7..8d882a86251 100644
--- a/packages/compass-aggregations/package.json
+++ b/packages/compass-aggregations/package.json
@@ -162,7 +162,6 @@
"lodash.debounce": "^4.0.8",
"lodash.isempty": "^4.4.0",
"lodash.isstring": "^4.0.1",
- "mongodb-extended-json": "^1.11.1",
"mongodb-ns": "^2.3.0",
"re-resizable": "^6.9.0",
"react-bootstrap": "^0.32.4",
diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json
index 05c484d2198..ac4333fd3cf 100644
--- a/packages/compass-crud/package.json
+++ b/packages/compass-crud/package.json
@@ -135,12 +135,10 @@
"fast-json-parse": "^1.0.3",
"hadron-document": "^7.7.0",
"hadron-type-checker": "^6.6.0",
- "js-beautify": "^1.10.2",
"lodash": "^4.17.15",
"moment": "^2.27.0",
"moment-timezone": "^0.5.21",
"mongodb-ace-theme": "^1.5.0",
- "mongodb-extended-json": "^1.11.1",
"react-click-outside": "^3.0.1",
"react-tooltip": "^3.11.1"
},
diff --git a/packages/compass-crud/src/components/editable-json.jsx b/packages/compass-crud/src/components/editable-json.jsx
index 68b2c18848b..5f59e414d36 100644
--- a/packages/compass-crud/src/components/editable-json.jsx
+++ b/packages/compass-crud/src/components/editable-json.jsx
@@ -1,7 +1,6 @@
+import { EJSON } from 'bson';
import React from 'react';
import PropTypes from 'prop-types';
-import EJSON from 'mongodb-extended-json';
-import jsBeautify from 'js-beautify';
import jsonParse from 'fast-json-parse';
import { TextButton } from 'hadron-react-buttons';
import DocumentActions from './document-actions';
@@ -313,7 +312,7 @@ class JsonEditor extends React.Component {
const value = this.state.json
? this.state.json
- : jsBeautify(EJSON.stringify(this.props.doc.generateObject()));
+ : EJSON.stringify(this.props.doc.generateObject(), null, 2);
return (
diff --git a/packages/compass-crud/src/components/insert-json-document.jsx b/packages/compass-crud/src/components/insert-json-document.jsx
index aeb156c823f..c33e67d896a 100644
--- a/packages/compass-crud/src/components/insert-json-document.jsx
+++ b/packages/compass-crud/src/components/insert-json-document.jsx
@@ -1,6 +1,5 @@
import React, { Component } from 'react';
import classnames from 'classnames';
-import jsBeautify from 'js-beautify';
import PropTypes from 'prop-types';
import 'ace-builds';
@@ -36,7 +35,7 @@ const OPTIONS = {
class InsertJsonDocument extends Component {
componentDidMount() {
if (this.props.jsonDoc !== '') {
- let value = jsBeautify(this.props.jsonDoc);
+ let value = this.props.jsonDoc;
if (this.props.isCommentNeeded) {
value = `${EDITOR_COMMENT}${value}`;
diff --git a/packages/compass-crud/src/components/json-editor.jsx b/packages/compass-crud/src/components/json-editor.jsx
index e7a36daee7b..82579f6e2a1 100644
--- a/packages/compass-crud/src/components/json-editor.jsx
+++ b/packages/compass-crud/src/components/json-editor.jsx
@@ -1,7 +1,6 @@
+import { EJSON } from 'bson';
import React from 'react';
import PropTypes from 'prop-types';
-import EJSON from 'mongodb-extended-json';
-import jsBeautify from 'js-beautify';
import jsonParse from 'fast-json-parse';
import { TextButton } from 'hadron-react-buttons';
import DocumentActions from './document-actions';
@@ -130,7 +129,7 @@ class EditableJson extends React.Component {
deleting: false,
mode: VIEWING,
message: EMPTY,
- json: jsBeautify(EJSON.stringify(this.props.doc.generateObject()))
+ json: EJSON.stringify(this.props.doc.generateObject(), null, 2)
});
this.props.clearUpdateStatus();
@@ -313,7 +312,7 @@ class EditableJson extends React.Component {
const value = this.state.json
? this.state.json
- : jsBeautify(EJSON.stringify(this.props.doc.generateObject()));
+ : EJSON.stringify(this.props.doc.generateObject(), null, 2);
return (
diff --git a/packages/compass-crud/src/stores/crud-store.js b/packages/compass-crud/src/stores/crud-store.js
index 73eeffda1ba..e2fe3eef04e 100644
--- a/packages/compass-crud/src/stores/crud-store.js
+++ b/packages/compass-crud/src/stores/crud-store.js
@@ -1,6 +1,6 @@
+import { EJSON } from 'bson';
import Reflux from 'reflux';
import toNS from 'mongodb-ns';
-import EJSON from 'mongodb-extended-json';
import { findIndex, isEmpty } from 'lodash';
import StateMixin from 'reflux-state-mixin';
import HadronDocument from 'hadron-document';
@@ -362,7 +362,7 @@ const configureStore = (options = {}) => {
*/
copyToClipboard(doc) {
track('Document Copied', { mode: this.modeForTelemetry() });
- const documentJSON = EJSON.stringify(doc.generateObject());
+ const documentJSON = EJSON.stringify(doc.generateObject(), null, 2);
let input = document.createElement(INPUT);
input.type = TYPE;
input.setAttribute(STYLES, DISPLAY);
@@ -678,7 +678,7 @@ const configureStore = (options = {}) => {
}
}
- const jsonDoc = EJSON.stringify(hadronDoc.generateObject());
+ const jsonDoc = EJSON.stringify(hadronDoc.generateObject(), null, 2);
this.setState({
insert: {
@@ -718,7 +718,7 @@ const configureStore = (options = {}) => {
*/
toggleInsertDocument(view) {
if (view === 'JSON') {
- const jsonDoc = EJSON.stringify(this.state.insert.doc.generateObject());
+ const jsonDoc = EJSON.stringify(this.state.insert.doc.generateObject(), null, 2);
this.setState({
insert: {
diff --git a/packages/compass-crud/src/stores/crud-store.spec.js b/packages/compass-crud/src/stores/crud-store.spec.js
index ffce42a97dd..59ac016be20 100644
--- a/packages/compass-crud/src/stores/crud-store.spec.js
+++ b/packages/compass-crud/src/stores/crud-store.spec.js
@@ -1,3 +1,4 @@
+import { EJSON } from 'bson';
import util from 'util';
import Connection from 'mongodb-connection-model';
import { connect, convertConnectionModelToInfo } from 'mongodb-data-service';
@@ -5,7 +6,6 @@ import AppRegistry from 'hadron-app-registry';
import HadronDocument, { Element } from 'hadron-document';
import configureStore from './crud-store';
import configureActions from '../actions';
-import EJSON from 'mongodb-extended-json';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json
index 64548e23433..1ebfdea1f5a 100644
--- a/packages/compass-indexes/package.json
+++ b/packages/compass-indexes/package.json
@@ -32,6 +32,7 @@
"@hot-loader/react-dom": "^16.9.0",
"@mongodb-js/compass-components": "^0.10.0",
"@mongodb-js/compass-deployment-awareness": "^11.18.0",
+ "bson": "^4.4.1",
"debug": "4.3.0",
"hadron-react-buttons": "^5.6.0",
"hadron-react-components": "^5.10.0",
@@ -59,6 +60,7 @@
"@mongodb-js/compass-field-store": "^7.18.0",
"autoprefixer": "^9.4.6",
"babel-loader": "^8.2.2",
+ "bson": "^4.4.1",
"chai": "^4.2.0",
"chai-enzyme": "1.0.0-beta.1",
"classnames": "^2.2.6",
@@ -100,7 +102,6 @@
"mocha-webpack": "^2.0.0-beta.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-index-model": "^3.8.0",
"mongodb-reflux-store": "^0.0.1",
"node-loader": "^0.6.0",
diff --git a/packages/compass-indexes/src/modules/create-index/index.js b/packages/compass-indexes/src/modules/create-index/index.js
index 8fcf8411af0..ee2dc1384d4 100644
--- a/packages/compass-indexes/src/modules/create-index/index.js
+++ b/packages/compass-indexes/src/modules/create-index/index.js
@@ -1,5 +1,5 @@
+import { EJSON } from 'bson';
import { combineReducers } from 'redux';
-const EJSON = require('mongodb-extended-json');
import { createLoggerAndTelemetry } from '@mongodb-js/compass-logging';
import dataService from '../data-service';
diff --git a/packages/compass-query-history/package.json b/packages/compass-query-history/package.json
index ef2e7ace37b..a4b8f76ef87 100644
--- a/packages/compass-query-history/package.json
+++ b/packages/compass-query-history/package.json
@@ -76,6 +76,7 @@
"ampersand-rest-collection": "^6.0.0",
"autoprefixer": "^9.4.6",
"babel-loader": "^8.2.2",
+ "bson": "^4.4.1",
"chai": "^4.1.2",
"chai-enzyme": "1.0.0-beta.1",
"cheerio": "^1.0.0-rc.2",
@@ -119,7 +120,6 @@
"mocha": "^5.0.0",
"mocha-webpack": "^2.0.0-beta.0",
"mongodb-connection-model": "^21.12.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-js-metrics": "^7.7.0",
"mongodb-ns": "^2.3.0",
"mongodb-query-parser": "^2.4.3",
diff --git a/packages/compass-query-history/src/models/query.js b/packages/compass-query-history/src/models/query.js
index 78cab66c220..c91010f7fd5 100644
--- a/packages/compass-query-history/src/models/query.js
+++ b/packages/compass-query-history/src/models/query.js
@@ -1,6 +1,6 @@
import Model from 'ampersand-model';
+import { EJSON } from 'bson';
import uuid from 'uuid';
-import EJSON from 'mongodb-extended-json';
/**
* A model that represents a MongoDB query.
@@ -51,7 +51,7 @@ const Query = Model.extend({
_ns: 'string'
},
parse: function(attrs) {
- return EJSON.deserialize(attrs);
+ return attrs ? EJSON.deserialize(attrs) : undefined;
},
serialize: function() {
return EJSON.serialize(this.getAttributes({ props: true }));
diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json
index 060634e1a41..5aeaa609fa2 100644
--- a/packages/compass-schema-validation/package.json
+++ b/packages/compass-schema-validation/package.json
@@ -39,7 +39,6 @@
"mongodb-ace-autocompleter": "*",
"mongodb-ace-mode": "^1.5.0",
"mongodb-ace-theme": "^1.5.0",
- "mongodb-extended-json": "*",
"mongodb-query-parser": "^2.4.3",
"prop-types": "^15.7.2",
"react": "^16.14.0",
@@ -102,7 +101,6 @@
"mongodb-ace-theme": "^1.5.0",
"mongodb-connection-model": "^21.12.0",
"mongodb-data-service": "^21.16.0",
- "mongodb-extended-json": "^1.11.1",
"mongodb-ns": "^2.3.0",
"mongodb-query-parser": "^2.4.3",
"mongodb-reflux-store": "^0.0.1",
diff --git a/packages/compass-schema-validation/src/modules/validation.js b/packages/compass-schema-validation/src/modules/validation.js
index 4e01cc5072a..0c86bc1d6e1 100644
--- a/packages/compass-schema-validation/src/modules/validation.js
+++ b/packages/compass-schema-validation/src/modules/validation.js
@@ -1,4 +1,4 @@
-import EJSON from 'mongodb-extended-json';
+import { EJSON } from 'bson';
import queryParser from 'mongodb-query-parser';
import { stringify as javascriptStringify } from 'javascript-stringify';
import { createLoggerAndTelemetry } from '@mongodb-js/compass-logging';