diff --git a/package-lock.json b/package-lock.json index 56b1129d1a7..9efa053d593 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14693,15 +14693,6 @@ "ajv": "^6.9.1" } }, - "node_modules/ampersand-class-extend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ampersand-class-extend/-/ampersand-class-extend-1.0.2.tgz", - "integrity": "sha1-jjqxJdCb976UO1DpjM5G/1F8vpE=", - "dev": true, - "dependencies": { - "lodash.assign": "^3.0.0" - } - }, "node_modules/ampersand-collection": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ampersand-collection/-/ampersand-collection-2.0.2.tgz", @@ -14713,71 +14704,6 @@ "lodash": "^4.11.1" } }, - "node_modules/ampersand-collection-view": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ampersand-collection-view/-/ampersand-collection-view-1.4.0.tgz", - "integrity": "sha1-+HUWLEt//WTFV5TgYgYGgdSLwCU=", - "dev": true, - "dependencies": { - "ampersand-class-extend": "^1.0.0", - "ampersand-events": "^1.1.1", - "ampersand-version": "^1.0.0", - "lodash.assign": "^3.0.0", - "lodash.difference": "^3.1.0", - "lodash.find": "^3.1.0", - "lodash.invoke": "^3.1.0", - "lodash.pick": "^3.1.0" - } - }, - "node_modules/ampersand-collection-view/node_modules/lodash.difference": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-3.2.2.tgz", - "integrity": "sha1-3EY//+ZhmrSvSaPIes5mlaKF3eY=", - "dev": true, - "dependencies": { - "lodash._basedifference": "^3.0.0", - "lodash._baseflatten": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "node_modules/ampersand-collection-view/node_modules/lodash.find": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-3.2.1.tgz", - "integrity": "sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0=", - "dev": true, - "dependencies": { - "lodash._basecallback": "^3.0.0", - "lodash._baseeach": "^3.0.0", - "lodash._basefind": "^3.0.0", - "lodash._basefindindex": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/ampersand-collection-view/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/ampersand-collection-view/node_modules/lodash.pick": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz", - "integrity": "sha1-8lKoVbIEa2G805BLJvdr0u/GVVA=", - "dev": true, - "dependencies": { - "lodash._baseflatten": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash._pickbyarray": "^3.0.0", - "lodash._pickbycallback": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, "node_modules/ampersand-collection/node_modules/ampersand-class-extend": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ampersand-class-extend/-/ampersand-class-extend-2.0.0.tgz", @@ -14795,74 +14721,6 @@ "lodash": "^4.6.1" } }, - "node_modules/ampersand-dom": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ampersand-dom/-/ampersand-dom-1.5.0.tgz", - "integrity": "sha1-eONviziqVwDxoSnTQjVgpsBSOAg=", - "dev": true, - "dependencies": { - "ampersand-version": "^1.0.0" - } - }, - "node_modules/ampersand-dom-bindings": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/ampersand-dom-bindings/-/ampersand-dom-bindings-3.9.2.tgz", - "integrity": "sha512-LQBOVB5DlGZZZ2mf6W1Y4Ld19JnuThsqD6dSvfmjBEK2dby/I1rjpkWaPrt11YZELs8IRilwzNC3OdYluV6hqw==", - "dev": true, - "dependencies": { - "ampersand-dom": "^1.2.5", - "ampersand-version": "^1.0.0", - "key-tree-store": "^1.2.0", - "lodash": "^4.17.4", - "matches-selector": "^1.0.0" - } - }, - "node_modules/ampersand-events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ampersand-events/-/ampersand-events-1.1.1.tgz", - "integrity": "sha1-pQDpjMrorZKqHZV0TFM9nBChZTA=", - "dev": true, - "dependencies": { - "ampersand-version": "^1.0.2", - "lodash.assign": "^3.0.0", - "lodash.bind": "^3.1.0", - "lodash.foreach": "^3.0.2", - "lodash.isempty": "^3.0.1", - "lodash.keys": "^3.0.5", - "lodash.once": "^3.0.0", - "lodash.uniqueid": "^3.0.0" - } - }, - "node_modules/ampersand-events/node_modules/lodash.isempty": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-3.0.4.tgz", - "integrity": "sha1-O8Vb+BHW0jLV4zVM4shkR6IPGtU=", - "dev": true, - "dependencies": { - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isfunction": "^3.0.0", - "lodash.isstring": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/ampersand-events/node_modules/lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "node_modules/ampersand-events/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, "node_modules/ampersand-model": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ampersand-model/-/ampersand-model-8.0.1.tgz", @@ -14895,103 +14753,6 @@ "lodash": "^4.12.0" } }, - "node_modules/ampersand-state": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/ampersand-state/-/ampersand-state-4.8.2.tgz", - "integrity": "sha1-qPrjZakZ54S8icbqk6PzXvcvLDk=", - "dev": true, - "dependencies": { - "ampersand-events": "^1.1.1", - "ampersand-version": "^1.0.0", - "array-next": "~0.0.1", - "key-tree-store": "^1.3.0", - "lodash.assign": "^3.2.0", - "lodash.bind": "^3.1.0", - "lodash.escape": "^3.0.0", - "lodash.forown": "^3.0.2", - "lodash.has": "^3.0.0", - "lodash.includes": "^3.1.3", - "lodash.isarray": "^3.0.4", - "lodash.isdate": "^3.0.1", - "lodash.isequal": "^3.0.1", - "lodash.isfunction": "^3.0.6", - "lodash.isobject": "^3.0.1", - "lodash.isstring": "^3.0.1", - "lodash.omit": "^3.1.0", - "lodash.result": "^3.0.0", - "lodash.union": "^3.1.0", - "lodash.uniqueid": "^3.0.0" - } - }, - "node_modules/ampersand-state/node_modules/lodash.has": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-3.2.1.tgz", - "integrity": "sha1-O3VHHY0gg9itnYoV4yHseEJJWOY=", - "dev": true, - "dependencies": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/ampersand-state/node_modules/lodash.isequal": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-3.0.4.tgz", - "integrity": "sha1-HDXrO27wzR/1F0Pj6jz3/f/ay2Q=", - "dev": true, - "dependencies": { - "lodash._baseisequal": "^3.0.0", - "lodash._bindcallback": "^3.0.0" - } - }, - "node_modules/ampersand-state/node_modules/lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "node_modules/ampersand-state/node_modules/lodash.omit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz", - "integrity": "sha1-iX/jguZBPZrJfGH3jtHgV6AK+fM=", - "dev": true, - "dependencies": { - "lodash._arraymap": "^3.0.0", - "lodash._basedifference": "^3.0.0", - "lodash._baseflatten": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash._pickbyarray": "^3.0.0", - "lodash._pickbycallback": "^3.0.0", - "lodash.keysin": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "node_modules/ampersand-state/node_modules/lodash.result": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.result/-/lodash.result-3.1.2.tgz", - "integrity": "sha1-IRcohOTaJEk5JHK1CGHFjD8a4nk=", - "dev": true, - "dependencies": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isfunction": "^3.0.0" - } - }, - "node_modules/ampersand-state/node_modules/lodash.union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-3.1.0.tgz", - "integrity": "sha1-pKMGb8Fdan+BUczpvf5j3Of1vP8=", - "dev": true, - "dependencies": { - "lodash._baseflatten": "^3.0.0", - "lodash._baseuniq": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, "node_modules/ampersand-sync": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ampersand-sync/-/ampersand-sync-5.1.0.tgz", @@ -15044,75 +14805,6 @@ "xtend": ">=4.0.0 <4.1.0-0" } }, - "node_modules/ampersand-view": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/ampersand-view/-/ampersand-view-9.0.2.tgz", - "integrity": "sha1-ez7jFfkbQKLvZVROXdb5AnDaWv8=", - "dev": true, - "dependencies": { - "ampersand-collection-view": "^1.4.0", - "ampersand-dom-bindings": "^3.5.0", - "ampersand-state": "^4.5.2", - "ampersand-version": "^1.0.2", - "component-classes": "^1.2.4", - "domify": "^1.3.2", - "events-mixin": "^1.2.0", - "lodash.assign": "^3.0.0", - "lodash.bind": "^3.1.0", - "lodash.flatten": "^3.0.2", - "lodash.foreach": "^3.0.2", - "lodash.get": "^3.1.0", - "lodash.invoke": "^3.1.0", - "lodash.isstring": "^3.0.1", - "lodash.last": "^3.0.0", - "lodash.pick": "^3.1.0", - "lodash.result": "^3.0.0", - "lodash.uniqueid": "^3.0.0", - "matches-selector": "^1.0.0" - } - }, - "node_modules/ampersand-view/node_modules/lodash.get": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-3.7.0.tgz", - "integrity": "sha1-POaK4skWg7KBzFOUEoMDy/deaR8=", - "dev": true, - "dependencies": { - "lodash._baseget": "^3.0.0", - "lodash._topath": "^3.0.0" - } - }, - "node_modules/ampersand-view/node_modules/lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "node_modules/ampersand-view/node_modules/lodash.pick": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz", - "integrity": "sha1-8lKoVbIEa2G805BLJvdr0u/GVVA=", - "dev": true, - "dependencies": { - "lodash._baseflatten": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash._pickbyarray": "^3.0.0", - "lodash._pickbycallback": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "node_modules/ampersand-view/node_modules/lodash.result": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.result/-/lodash.result-3.1.2.tgz", - "integrity": "sha1-IRcohOTaJEk5JHK1CGHFjD8a4nk=", - "dev": true, - "dependencies": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isfunction": "^3.0.0" - } - }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -17787,21 +17479,6 @@ "node": ">=4" } }, - "node_modules/closest": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/closest/-/closest-0.0.1.tgz", - "integrity": "sha1-JtpvgLPg4X5x+A8SeCgZ6fZTSVw=", - "dev": true, - "dependencies": { - "matches-selector": "0.0.1" - } - }, - "node_modules/closest/node_modules/matches-selector": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-0.0.1.tgz", - "integrity": "sha1-HfUmIkOuNBwaCATdMCBIJnrHE7s=", - "dev": true - }, "node_modules/clsx": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", @@ -17957,27 +17634,6 @@ "resolved": "packages/compass-preferences-model", "link": true }, - "node_modules/component-classes": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", - "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", - "dev": true, - "dependencies": { - "component-indexof": "0.0.3" - } - }, - "node_modules/component-event": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", - "integrity": "sha1-PeePwoeCOBeH4kvyp8U2vwFCybQ=", - "dev": true - }, - "node_modules/component-indexof": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", - "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=", - "dev": true - }, "node_modules/compress-commons": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.1.6.tgz", @@ -19772,16 +19428,6 @@ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" }, - "node_modules/delegate-events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/delegate-events/-/delegate-events-1.1.1.tgz", - "integrity": "sha1-2rSQqcHx1AykDrzSHtr3F7Zx1NQ=", - "dev": true, - "dependencies": { - "closest": "*", - "component-event": "*" - } - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -20180,12 +19826,6 @@ "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/domify": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.1.tgz", - "integrity": "sha512-x18nuiDHMCZGXr4KJSRMf/TWYtiaRo6RX8KN9fEbW54mvbQ6pieUuerC2ahBg+kEp1wycFj8MPUI0WkIOw5E9w==", - "dev": true - }, "node_modules/domutils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", @@ -22603,16 +22243,6 @@ "node": ">=0.4.x" } }, - "node_modules/events-mixin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/events-mixin/-/events-mixin-1.3.0.tgz", - "integrity": "sha1-VSFn3oCow1Ch8gDrc9IBeueX7N0=", - "dev": true, - "dependencies": { - "component-event": "^0.1.3", - "delegate-events": "^1.1.0" - } - }, "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -29110,12 +28740,6 @@ "node": ">=6.11.5" } }, - "node_modules/local-links": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/local-links/-/local-links-1.4.1.tgz", - "integrity": "sha1-v8lPPQnMRE8NFECPgPnFkpLFfjU=", - "dev": true - }, "node_modules/locate-app": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.5.0.tgz", @@ -29175,326 +28799,12 @@ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, - "node_modules/lodash._arrayeach": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz", - "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754=", - "dev": true - }, - "node_modules/lodash._arraymap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", - "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", - "dev": true - }, - "node_modules/lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true, - "dependencies": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._baseassign/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash._basecallback": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", - "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=", - "dev": true, - "dependencies": { - "lodash._baseisequal": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.pairs": "^3.0.0" - } - }, - "node_modules/lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "node_modules/lodash._basedifference": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz", - "integrity": "sha1-8sIEKWwqeOArOJCBtu3KyTPPYpw=", - "dev": true, - "dependencies": { - "lodash._baseindexof": "^3.0.0", - "lodash._cacheindexof": "^3.0.0", - "lodash._createcache": "^3.0.0" - } - }, - "node_modules/lodash._basedifference/node_modules/lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "dev": true - }, - "node_modules/lodash._baseeach": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", - "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", - "dev": true, - "dependencies": { - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._baseeach/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash._basefind": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basefind/-/lodash._basefind-3.0.0.tgz", - "integrity": "sha1-srugXMZF+XLeLPkl+iv2Og9gyK4=", - "dev": true - }, - "node_modules/lodash._basefindindex": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz", - "integrity": "sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8=", - "dev": true - }, - "node_modules/lodash._baseflatten": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz", - "integrity": "sha1-B3D/gBMa9uNPO1EXlqe6UhTmX/c=", - "dev": true, - "dependencies": { - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash._basefor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz", - "integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=", - "dev": true - }, - "node_modules/lodash._baseget": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz", - "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ=", - "dev": true - }, - "node_modules/lodash._baseisequal": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", - "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", - "dev": true, - "dependencies": { - "lodash.isarray": "^3.0.0", - "lodash.istypedarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._baseisequal/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash._baseslice": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-3.0.3.tgz", - "integrity": "sha1-qkrj3FPu1TsI3i4zYrOTV7XIfXU=", - "dev": true - }, - "node_modules/lodash._baseuniq": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz", - "integrity": "sha1-ISP6DbLWnCjVvrHB821hUip0AjQ=", - "dev": true, - "dependencies": { - "lodash._baseindexof": "^3.0.0", - "lodash._cacheindexof": "^3.0.0", - "lodash._createcache": "^3.0.0" - } - }, - "node_modules/lodash._baseuniq/node_modules/lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "dev": true - }, - "node_modules/lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "node_modules/lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "dev": true - }, - "node_modules/lodash._cacheindexof": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", - "dev": true - }, - "node_modules/lodash._createassigner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "dev": true, - "dependencies": { - "lodash._bindcallback": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "node_modules/lodash._createcache": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0" - } - }, - "node_modules/lodash._createwrapper": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._createwrapper/-/lodash._createwrapper-3.2.0.tgz", - "integrity": "sha1-30U+ZkFjIXuJWkVAZa8cR6DqPE0=", - "dev": true, - "dependencies": { - "lodash._root": "^3.0.0" - } - }, - "node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "node_modules/lodash._invokepath": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/lodash._invokepath/-/lodash._invokepath-3.7.2.tgz", - "integrity": "sha1-GUEVgIeG4MUi/BzvpaLnuwWbTlU=", - "dev": true, - "dependencies": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "node_modules/lodash._pickbyarray": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz", - "integrity": "sha1-H4mNlgfrVgsOFnOEt3x8bRCKpMU=", - "dev": true - }, - "node_modules/lodash._pickbycallback": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz", - "integrity": "sha1-/2G5oBens699MObFPeKK+hm4dQo=", - "dev": true, - "dependencies": { - "lodash._basefor": "^3.0.0", - "lodash.keysin": "^3.0.0" - } - }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "optional": true }, - "node_modules/lodash._replaceholders": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._replaceholders/-/lodash._replaceholders-3.0.0.tgz", - "integrity": "sha1-iru3EmxDH37XRPe6rznwi8m9nVg=", - "dev": true - }, - "node_modules/lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "node_modules/lodash._topath": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz", - "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=", - "dev": true, - "dependencies": { - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.assign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "dev": true, - "dependencies": { - "lodash._baseassign": "^3.0.0", - "lodash._createassigner": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash.assign/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.before": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.before/-/lodash.before-3.0.3.tgz", - "integrity": "sha1-aHeDZg6hqPrE8B4ndN4PUgaxYc4=", - "dev": true - }, - "node_modules/lodash.bind": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-3.1.0.tgz", - "integrity": "sha1-+V9IY419i7tYVPkIJmUnmZ+/pLs=", - "dev": true, - "dependencies": { - "lodash._createwrapper": "^3.0.0", - "lodash._replaceholders": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -29506,64 +28816,11 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, - "node_modules/lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "dependencies": { - "lodash._root": "^3.0.0" - } - }, - "node_modules/lodash.flatten": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-3.0.2.tgz", - "integrity": "sha1-3hz1d1j49EeTGdNcPpzGDEUBk4w=", - "dev": true, - "dependencies": { - "lodash._baseflatten": "^3.0.0", - "lodash._isiterateecall": "^3.0.0" - } - }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" }, - "node_modules/lodash.foreach": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-3.0.3.tgz", - "integrity": "sha512-PA7Lp7pe2HMJBoB1vELegEIF3waUFnM0fWDKJVYolwZ4zHh6WTmnq0xmzfQksD66gx2quhDNyBdyaE2T8/DP3Q==", - "dev": true, - "dependencies": { - "lodash._arrayeach": "^3.0.0", - "lodash._baseeach": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.forown": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-3.0.2.tgz", - "integrity": "sha1-kOKc33iTBI3QUpozPjBIlrC6wo4=", - "dev": true, - "dependencies": { - "lodash._basefor": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash.forown/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -29574,158 +28831,22 @@ "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=" }, - "node_modules/lodash.includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-3.1.3.tgz", - "integrity": "sha1-wyLQScJ4krKaAbmVk25ZU4HrvBc=", - "dev": true, - "dependencies": { - "lodash._baseindexof": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isstring": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash.includes/node_modules/lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "dev": true - }, - "node_modules/lodash.includes/node_modules/lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "node_modules/lodash.includes/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.invoke": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/lodash.invoke/-/lodash.invoke-3.2.3.tgz", - "integrity": "sha1-ns1EinzHUOQiM+NYe5gET0Hga8M=", - "dev": true, - "dependencies": { - "lodash._baseeach": "^3.0.0", - "lodash._invokepath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", - "dev": true - }, - "node_modules/lodash.isdate": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isdate/-/lodash.isdate-3.0.3.tgz", - "integrity": "sha1-vWub5kXmrmcWta0Aegj70avQsCA=", - "dev": true - }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true - }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true }, - "node_modules/lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true - }, - "node_modules/lodash.istypedarray": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", - "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", - "dev": true - }, - "node_modules/lodash.keysin": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", - "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=", - "dev": true, - "dependencies": { - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.last": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash.last/-/lodash.last-3.0.0.tgz", - "integrity": "sha1-JC9mMRLdTG5jcoxgo8kJ0b2tvUw=", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "node_modules/lodash.once": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-3.0.1.tgz", - "integrity": "sha1-GBN+yW+jzOhoIm89q7nqcNC8Eo8=", - "dev": true, - "dependencies": { - "lodash.before": "^3.0.0" - } - }, - "node_modules/lodash.pairs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", - "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", - "dev": true, - "dependencies": { - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash.pairs/node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, "node_modules/lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -29745,15 +28866,6 @@ "lodash._reinterpolate": "^3.0.0" } }, - "node_modules/lodash.uniqueid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-3.2.0.tgz", - "integrity": "sha1-WUFvE0EDziU9S0qoGCcr4/u8u9s=", - "dev": true, - "dependencies": { - "lodash._root": "^3.0.0" - } - }, "node_modules/lodash.zip": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", @@ -30183,12 +29295,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/marky": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.2.tgz", - "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", - "dev": true - }, "node_modules/matcher": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", @@ -30213,12 +29319,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/matches-selector": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", - "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==", - "dev": true - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -43334,7 +42434,6 @@ "@mongodb-js/webpack-config-compass": "^1.6.10", "@segment/analytics-node": "^1.1.4", "@types/minimatch": "^5.1.2", - "ampersand-view": "^9.0.0", "bson": "^6.10.3", "chai": "^4.3.4", "chalk": "^4.1.2", @@ -43352,16 +42451,13 @@ "hadron-app-registry": "^9.4.10", "hadron-build": "^25.7.12", "hadron-ipc": "^3.4.9", - "local-links": "^1.4.0", "make-fetch-happen": "^10.2.1", - "marky": "^1.2.1", "minimatch": "^10.0.1", "mongodb": "^6.16.0", "mongodb-build-info": "^1.7.2", "mongodb-cloud-info": "^2.1.7", "mongodb-connection-string-url": "^3.0.1", "mongodb-data-service": "^22.27.1", - "mongodb-instance-model": "^12.31.0", "mongodb-log-writer": "^2.3.4", "mongodb-ns": "^2.4.2", "react": "^17.0.2", @@ -65380,15 +64476,6 @@ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "requires": {} }, - "ampersand-class-extend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ampersand-class-extend/-/ampersand-class-extend-1.0.2.tgz", - "integrity": "sha1-jjqxJdCb976UO1DpjM5G/1F8vpE=", - "dev": true, - "requires": { - "lodash.assign": "^3.0.0" - } - }, "ampersand-collection": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ampersand-collection/-/ampersand-collection-2.0.2.tgz", @@ -65419,143 +64506,6 @@ } } }, - "ampersand-collection-view": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ampersand-collection-view/-/ampersand-collection-view-1.4.0.tgz", - "integrity": "sha1-+HUWLEt//WTFV5TgYgYGgdSLwCU=", - "dev": true, - "requires": { - "ampersand-class-extend": "^1.0.0", - "ampersand-events": "^1.1.1", - "ampersand-version": "^1.0.0", - "lodash.assign": "^3.0.0", - "lodash.difference": "^3.1.0", - "lodash.find": "^3.1.0", - "lodash.invoke": "^3.1.0", - "lodash.pick": "^3.1.0" - }, - "dependencies": { - "lodash.difference": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-3.2.2.tgz", - "integrity": "sha1-3EY//+ZhmrSvSaPIes5mlaKF3eY=", - "dev": true, - "requires": { - "lodash._basedifference": "^3.0.0", - "lodash._baseflatten": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "lodash.find": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-3.2.1.tgz", - "integrity": "sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0=", - "dev": true, - "requires": { - "lodash._basecallback": "^3.0.0", - "lodash._baseeach": "^3.0.0", - "lodash._basefind": "^3.0.0", - "lodash._basefindindex": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.pick": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz", - "integrity": "sha1-8lKoVbIEa2G805BLJvdr0u/GVVA=", - "dev": true, - "requires": { - "lodash._baseflatten": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash._pickbyarray": "^3.0.0", - "lodash._pickbycallback": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - } - } - }, - "ampersand-dom": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/ampersand-dom/-/ampersand-dom-1.5.0.tgz", - "integrity": "sha1-eONviziqVwDxoSnTQjVgpsBSOAg=", - "dev": true, - "requires": { - "ampersand-version": "^1.0.0" - } - }, - "ampersand-dom-bindings": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/ampersand-dom-bindings/-/ampersand-dom-bindings-3.9.2.tgz", - "integrity": "sha512-LQBOVB5DlGZZZ2mf6W1Y4Ld19JnuThsqD6dSvfmjBEK2dby/I1rjpkWaPrt11YZELs8IRilwzNC3OdYluV6hqw==", - "dev": true, - "requires": { - "ampersand-dom": "^1.2.5", - "ampersand-version": "^1.0.0", - "key-tree-store": "^1.2.0", - "lodash": "^4.17.4", - "matches-selector": "^1.0.0" - } - }, - "ampersand-events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ampersand-events/-/ampersand-events-1.1.1.tgz", - "integrity": "sha1-pQDpjMrorZKqHZV0TFM9nBChZTA=", - "dev": true, - "requires": { - "ampersand-version": "^1.0.2", - "lodash.assign": "^3.0.0", - "lodash.bind": "^3.1.0", - "lodash.foreach": "^3.0.2", - "lodash.isempty": "^3.0.1", - "lodash.keys": "^3.0.5", - "lodash.once": "^3.0.0", - "lodash.uniqueid": "^3.0.0" - }, - "dependencies": { - "lodash.isempty": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-3.0.4.tgz", - "integrity": "sha1-O8Vb+BHW0jLV4zVM4shkR6IPGtU=", - "dev": true, - "requires": { - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isfunction": "^3.0.0", - "lodash.isstring": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, "ampersand-model": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ampersand-model/-/ampersand-model-8.0.1.tgz", @@ -65590,105 +64540,6 @@ } } }, - "ampersand-state": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/ampersand-state/-/ampersand-state-4.8.2.tgz", - "integrity": "sha1-qPrjZakZ54S8icbqk6PzXvcvLDk=", - "dev": true, - "requires": { - "ampersand-events": "^1.1.1", - "ampersand-version": "^1.0.0", - "array-next": "~0.0.1", - "key-tree-store": "^1.3.0", - "lodash.assign": "^3.2.0", - "lodash.bind": "^3.1.0", - "lodash.escape": "^3.0.0", - "lodash.forown": "^3.0.2", - "lodash.has": "^3.0.0", - "lodash.includes": "^3.1.3", - "lodash.isarray": "^3.0.4", - "lodash.isdate": "^3.0.1", - "lodash.isequal": "^3.0.1", - "lodash.isfunction": "^3.0.6", - "lodash.isobject": "^3.0.1", - "lodash.isstring": "^3.0.1", - "lodash.omit": "^3.1.0", - "lodash.result": "^3.0.0", - "lodash.union": "^3.1.0", - "lodash.uniqueid": "^3.0.0" - }, - "dependencies": { - "lodash.has": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-3.2.1.tgz", - "integrity": "sha1-O3VHHY0gg9itnYoV4yHseEJJWOY=", - "dev": true, - "requires": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.isequal": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-3.0.4.tgz", - "integrity": "sha1-HDXrO27wzR/1F0Pj6jz3/f/ay2Q=", - "dev": true, - "requires": { - "lodash._baseisequal": "^3.0.0", - "lodash._bindcallback": "^3.0.0" - } - }, - "lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "lodash.omit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz", - "integrity": "sha1-iX/jguZBPZrJfGH3jtHgV6AK+fM=", - "dev": true, - "requires": { - "lodash._arraymap": "^3.0.0", - "lodash._basedifference": "^3.0.0", - "lodash._baseflatten": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash._pickbyarray": "^3.0.0", - "lodash._pickbycallback": "^3.0.0", - "lodash.keysin": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "lodash.result": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.result/-/lodash.result-3.1.2.tgz", - "integrity": "sha1-IRcohOTaJEk5JHK1CGHFjD8a4nk=", - "dev": true, - "requires": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isfunction": "^3.0.0" - } - }, - "lodash.union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-3.1.0.tgz", - "integrity": "sha1-pKMGb8Fdan+BUczpvf5j3Of1vP8=", - "dev": true, - "requires": { - "lodash._baseflatten": "^3.0.0", - "lodash._baseuniq": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - } - } - }, "ampersand-sync": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ampersand-sync/-/ampersand-sync-5.1.0.tgz", @@ -65743,77 +64594,6 @@ } } }, - "ampersand-view": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/ampersand-view/-/ampersand-view-9.0.2.tgz", - "integrity": "sha1-ez7jFfkbQKLvZVROXdb5AnDaWv8=", - "dev": true, - "requires": { - "ampersand-collection-view": "^1.4.0", - "ampersand-dom-bindings": "^3.5.0", - "ampersand-state": "^4.5.2", - "ampersand-version": "^1.0.2", - "component-classes": "^1.2.4", - "domify": "^1.3.2", - "events-mixin": "^1.2.0", - "lodash.assign": "^3.0.0", - "lodash.bind": "^3.1.0", - "lodash.flatten": "^3.0.2", - "lodash.foreach": "^3.0.2", - "lodash.get": "^3.1.0", - "lodash.invoke": "^3.1.0", - "lodash.isstring": "^3.0.1", - "lodash.last": "^3.0.0", - "lodash.pick": "^3.1.0", - "lodash.result": "^3.0.0", - "lodash.uniqueid": "^3.0.0", - "matches-selector": "^1.0.0" - }, - "dependencies": { - "lodash.get": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-3.7.0.tgz", - "integrity": "sha1-POaK4skWg7KBzFOUEoMDy/deaR8=", - "dev": true, - "requires": { - "lodash._baseget": "^3.0.0", - "lodash._topath": "^3.0.0" - } - }, - "lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "lodash.pick": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz", - "integrity": "sha1-8lKoVbIEa2G805BLJvdr0u/GVVA=", - "dev": true, - "requires": { - "lodash._baseflatten": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash._pickbyarray": "^3.0.0", - "lodash._pickbycallback": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "lodash.result": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.result/-/lodash.result-3.1.2.tgz", - "integrity": "sha1-IRcohOTaJEk5JHK1CGHFjD8a4nk=", - "dev": true, - "requires": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isfunction": "^3.0.0" - } - } - } - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -67842,23 +66622,6 @@ } } }, - "closest": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/closest/-/closest-0.0.1.tgz", - "integrity": "sha1-JtpvgLPg4X5x+A8SeCgZ6fZTSVw=", - "dev": true, - "requires": { - "matches-selector": "0.0.1" - }, - "dependencies": { - "matches-selector": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-0.0.1.tgz", - "integrity": "sha1-HfUmIkOuNBwaCATdMCBIJnrHE7s=", - "dev": true - } - } - }, "clsx": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", @@ -68348,27 +67111,6 @@ } } }, - "component-classes": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", - "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", - "dev": true, - "requires": { - "component-indexof": "0.0.3" - } - }, - "component-event": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz", - "integrity": "sha1-PeePwoeCOBeH4kvyp8U2vwFCybQ=", - "dev": true - }, - "component-indexof": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", - "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=", - "dev": true - }, "compress-commons": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.1.6.tgz", @@ -69725,16 +68467,6 @@ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" }, - "delegate-events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/delegate-events/-/delegate-events-1.1.1.tgz", - "integrity": "sha1-2rSQqcHx1AykDrzSHtr3F7Zx1NQ=", - "dev": true, - "requires": { - "closest": "*", - "component-event": "*" - } - }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -70051,12 +68783,6 @@ "domelementtype": "^2.2.0" } }, - "domify": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.1.tgz", - "integrity": "sha512-x18nuiDHMCZGXr4KJSRMf/TWYtiaRo6RX8KN9fEbW54mvbQ6pieUuerC2ahBg+kEp1wycFj8MPUI0WkIOw5E9w==", - "dev": true - }, "domutils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", @@ -71886,16 +70612,6 @@ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==" }, - "events-mixin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/events-mixin/-/events-mixin-1.3.0.tgz", - "integrity": "sha1-VSFn3oCow1Ch8gDrc9IBeueX7N0=", - "dev": true, - "requires": { - "component-event": "^0.1.3", - "delegate-events": "^1.1.0" - } - }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -77601,12 +76317,6 @@ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" }, - "local-links": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/local-links/-/local-links-1.4.1.tgz", - "integrity": "sha1-v8lPPQnMRE8NFECPgPnFkpLFfjU=", - "dev": true - }, "locate-app": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.5.0.tgz", @@ -77644,338 +76354,12 @@ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, - "lodash._arrayeach": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz", - "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754=", - "dev": true - }, - "lodash._arraymap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", - "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", - "dev": true - }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true, - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" - }, - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, - "lodash._basecallback": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", - "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=", - "dev": true, - "requires": { - "lodash._baseisequal": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.pairs": "^3.0.0" - } - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basedifference": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz", - "integrity": "sha1-8sIEKWwqeOArOJCBtu3KyTPPYpw=", - "dev": true, - "requires": { - "lodash._baseindexof": "^3.0.0", - "lodash._cacheindexof": "^3.0.0", - "lodash._createcache": "^3.0.0" - }, - "dependencies": { - "lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "dev": true - } - } - }, - "lodash._baseeach": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", - "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", - "dev": true, - "requires": { - "lodash.keys": "^3.0.0" - }, - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, - "lodash._basefind": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basefind/-/lodash._basefind-3.0.0.tgz", - "integrity": "sha1-srugXMZF+XLeLPkl+iv2Og9gyK4=", - "dev": true - }, - "lodash._basefindindex": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz", - "integrity": "sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8=", - "dev": true - }, - "lodash._baseflatten": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz", - "integrity": "sha1-B3D/gBMa9uNPO1EXlqe6UhTmX/c=", - "dev": true, - "requires": { - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash._basefor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz", - "integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=", - "dev": true - }, - "lodash._baseget": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz", - "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ=", - "dev": true - }, - "lodash._baseisequal": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", - "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", - "dev": true, - "requires": { - "lodash.isarray": "^3.0.0", - "lodash.istypedarray": "^3.0.0", - "lodash.keys": "^3.0.0" - }, - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, - "lodash._baseslice": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-3.0.3.tgz", - "integrity": "sha1-qkrj3FPu1TsI3i4zYrOTV7XIfXU=", - "dev": true - }, - "lodash._baseuniq": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz", - "integrity": "sha1-ISP6DbLWnCjVvrHB821hUip0AjQ=", - "dev": true, - "requires": { - "lodash._baseindexof": "^3.0.0", - "lodash._cacheindexof": "^3.0.0", - "lodash._createcache": "^3.0.0" - }, - "dependencies": { - "lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "dev": true - } - } - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", - "dev": true - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", - "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", - "dev": true - }, - "lodash._createassigner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "dev": true, - "requires": { - "lodash._bindcallback": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "lodash._createcache": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", - "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0" - } - }, - "lodash._createwrapper": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._createwrapper/-/lodash._createwrapper-3.2.0.tgz", - "integrity": "sha1-30U+ZkFjIXuJWkVAZa8cR6DqPE0=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._invokepath": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/lodash._invokepath/-/lodash._invokepath-3.7.2.tgz", - "integrity": "sha1-GUEVgIeG4MUi/BzvpaLnuwWbTlU=", - "dev": true, - "requires": { - "lodash._baseget": "^3.0.0", - "lodash._baseslice": "^3.0.0", - "lodash._topath": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._pickbyarray": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz", - "integrity": "sha1-H4mNlgfrVgsOFnOEt3x8bRCKpMU=", - "dev": true - }, - "lodash._pickbycallback": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz", - "integrity": "sha1-/2G5oBens699MObFPeKK+hm4dQo=", - "dev": true, - "requires": { - "lodash._basefor": "^3.0.0", - "lodash.keysin": "^3.0.0" - } - }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "optional": true }, - "lodash._replaceholders": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._replaceholders/-/lodash._replaceholders-3.0.0.tgz", - "integrity": "sha1-iru3EmxDH37XRPe6rznwi8m9nVg=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash._topath": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz", - "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=", - "dev": true, - "requires": { - "lodash.isarray": "^3.0.0" - } - }, - "lodash.assign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "dev": true, - "requires": { - "lodash._baseassign": "^3.0.0", - "lodash._createassigner": "^3.0.0", - "lodash.keys": "^3.0.0" - }, - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, - "lodash.before": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.before/-/lodash.before-3.0.3.tgz", - "integrity": "sha1-aHeDZg6hqPrE8B4ndN4PUgaxYc4=", - "dev": true - }, - "lodash.bind": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-3.1.0.tgz", - "integrity": "sha1-+V9IY419i7tYVPkIJmUnmZ+/pLs=", - "dev": true, - "requires": { - "lodash._createwrapper": "^3.0.0", - "lodash._replaceholders": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -77987,66 +76371,11 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.flatten": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-3.0.2.tgz", - "integrity": "sha1-3hz1d1j49EeTGdNcPpzGDEUBk4w=", - "dev": true, - "requires": { - "lodash._baseflatten": "^3.0.0", - "lodash._isiterateecall": "^3.0.0" - } - }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" }, - "lodash.foreach": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-3.0.3.tgz", - "integrity": "sha512-PA7Lp7pe2HMJBoB1vELegEIF3waUFnM0fWDKJVYolwZ4zHh6WTmnq0xmzfQksD66gx2quhDNyBdyaE2T8/DP3Q==", - "dev": true, - "requires": { - "lodash._arrayeach": "^3.0.0", - "lodash._baseeach": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.forown": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-3.0.2.tgz", - "integrity": "sha1-kOKc33iTBI3QUpozPjBIlrC6wo4=", - "dev": true, - "requires": { - "lodash._basefor": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash.keys": "^3.0.0" - }, - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -78057,162 +76386,22 @@ "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=" }, - "lodash.includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-3.1.3.tgz", - "integrity": "sha1-wyLQScJ4krKaAbmVk25ZU4HrvBc=", - "dev": true, - "requires": { - "lodash._baseindexof": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.isstring": "^3.0.0", - "lodash.keys": "^3.0.0" - }, - "dependencies": { - "lodash._baseindexof": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", - "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", - "dev": true - }, - "lodash.isstring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-3.0.1.tgz", - "integrity": "sha1-QWOJROoELvZ61nwpOqVB0/PW5Tw=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, - "lodash.invoke": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/lodash.invoke/-/lodash.invoke-3.2.3.tgz", - "integrity": "sha1-ns1EinzHUOQiM+NYe5gET0Hga8M=", - "dev": true, - "requires": { - "lodash._baseeach": "^3.0.0", - "lodash._invokepath": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.restparam": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", - "dev": true - }, - "lodash.isdate": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isdate/-/lodash.isdate-3.0.3.tgz", - "integrity": "sha1-vWub5kXmrmcWta0Aegj70avQsCA=", - "dev": true - }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, - "lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true - }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true }, - "lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true - }, - "lodash.istypedarray": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", - "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", - "dev": true - }, - "lodash.keysin": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", - "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=", - "dev": true, - "requires": { - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.last": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash.last/-/lodash.last-3.0.0.tgz", - "integrity": "sha1-JC9mMRLdTG5jcoxgo8kJ0b2tvUw=", - "dev": true - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "lodash.once": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-3.0.1.tgz", - "integrity": "sha1-GBN+yW+jzOhoIm89q7nqcNC8Eo8=", - "dev": true, - "requires": { - "lodash.before": "^3.0.0" - } - }, - "lodash.pairs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", - "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", - "dev": true, - "requires": { - "lodash.keys": "^3.0.0" - }, - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - } - } - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -78232,15 +76421,6 @@ "lodash._reinterpolate": "^3.0.0" } }, - "lodash.uniqueid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-3.2.0.tgz", - "integrity": "sha1-WUFvE0EDziU9S0qoGCcr4/u8u9s=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, "lodash.zip": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", @@ -78556,12 +76736,6 @@ "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", "dev": true }, - "marky": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.2.tgz", - "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==", - "dev": true - }, "matcher": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", @@ -78579,12 +76753,6 @@ } } }, - "matches-selector": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", - "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==", - "dev": true - }, "math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -79265,7 +77433,6 @@ "@mongosh/node-runtime-worker-thread": "^3.3.8", "@segment/analytics-node": "^1.1.4", "@types/minimatch": "^5.1.2", - "ampersand-view": "^9.0.0", "bson": "^6.10.3", "chai": "^4.3.4", "chalk": "^4.1.2", @@ -79286,10 +77453,8 @@ "hadron-ipc": "^3.4.9", "kerberos": "^2.2.1", "keytar": "^7.9.0", - "local-links": "^1.4.0", "macos-export-certificate-and-key": "^1.1.2", "make-fetch-happen": "^10.2.1", - "marky": "^1.2.1", "minimatch": "^10.0.1", "mongodb": "^6.16.0", "mongodb-build-info": "^1.7.2", @@ -79297,7 +77462,6 @@ "mongodb-cloud-info": "^2.1.7", "mongodb-connection-string-url": "^3.0.1", "mongodb-data-service": "^22.27.1", - "mongodb-instance-model": "^12.31.0", "mongodb-log-writer": "^2.3.4", "mongodb-ns": "^2.4.2", "native-machine-id": "^0.1.1", diff --git a/packages/compass/licenses.json b/packages/compass/licenses.json index 6d097c301f3..8e8304d59bc 100644 --- a/packages/compass/licenses.json +++ b/packages/compass/licenses.json @@ -1,9 +1,5 @@ { "ignoredOrgs": ["@mongodb-js", "@leafygreen-ui", "@mongosh"], "ignoredPackages": [], - "licenseOverrides": { - "component-event@0.1.4": "MIT", - "delegate-events@1.1.1": "MIT", - "events-mixin@1.3.0": "MIT" - } + "licenseOverrides": {} } diff --git a/packages/compass/package.json b/packages/compass/package.json index 57b7fdbc84e..bab48b51b50 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -242,7 +242,6 @@ "@mongodb-js/webpack-config-compass": "^1.6.10", "@segment/analytics-node": "^1.1.4", "@types/minimatch": "^5.1.2", - "ampersand-view": "^9.0.0", "bson": "^6.10.3", "chai": "^4.3.4", "chalk": "^4.1.2", @@ -260,16 +259,13 @@ "hadron-app-registry": "^9.4.10", "hadron-build": "^25.7.12", "hadron-ipc": "^3.4.9", - "local-links": "^1.4.0", "make-fetch-happen": "^10.2.1", - "marky": "^1.2.1", "minimatch": "^10.0.1", "mongodb": "^6.16.0", "mongodb-build-info": "^1.7.2", "mongodb-cloud-info": "^2.1.7", "mongodb-connection-string-url": "^3.0.1", "mongodb-data-service": "^22.27.1", - "mongodb-instance-model": "^12.31.0", "mongodb-log-writer": "^2.3.4", "mongodb-ns": "^2.4.2", "react": "^17.0.2", diff --git a/packages/compass/src/app/index.tsx b/packages/compass/src/app/application.tsx similarity index 52% rename from packages/compass/src/app/index.tsx rename to packages/compass/src/app/application.tsx index e78c131378b..aef7055ee7d 100644 --- a/packages/compass/src/app/index.tsx +++ b/packages/compass/src/app/application.tsx @@ -1,79 +1,21 @@ -// THESE IMPORTS SHOULD ALWAYS BE THE FIRST ONE FOR THE APPLICATION ENTRY POINT -import '../setup-hadron-distribution'; -import './utils/csp'; -import dns from 'dns'; -import ensureError from 'ensure-error'; import { ipcRenderer } from 'hadron-ipc'; import * as remote from '@electron/remote'; -import { webUtils } from 'electron'; +import { webUtils, webFrame } from 'electron'; import { globalAppRegistry } from 'hadron-app-registry'; import { defaultPreferencesInstance } from 'compass-preferences-model'; import semver from 'semver'; import { CompassElectron } from './components/entrypoint'; import { openToast, ToastBody } from '@mongodb-js/compass-components'; +import ensureError from 'ensure-error'; -// https://github.com/nodejs/node/issues/40537 -dns.setDefaultResultOrder('ipv4first'); - -// this is so sub-processes (ie. the shell) will do the same -process.env.NODE_OPTIONS ??= ''; -if (!process.env.NODE_OPTIONS.includes('--dns-result-order')) { - process.env.NODE_OPTIONS += ` --dns-result-order=ipv4first`; -} - -// Setup error reporting to main process before anything else. -window.addEventListener('error', (event: ErrorEvent) => { - event.preventDefault(); - const error = ensureError(event.error); - void ipcRenderer?.call('compass:error:fatal', { - message: error.message, - stack: error.stack, - }); -}); - -window.addEventListener( - 'unhandledrejection', - (event: PromiseRejectionEvent) => { - event.preventDefault(); - const error = ensureError(event.reason); - void ipcRenderer?.call('compass:rejection:fatal', { - message: error.message, - stack: error.stack, - }); - } -); - -import './index.less'; -import 'source-code-pro/source-code-pro.css'; - -import * as marky from 'marky'; -import EventEmitter from 'events'; -marky.mark('Time to Connect rendered'); -marky.mark('Time to user can Click Connect'); - -EventEmitter.defaultMaxListeners = 100; - -document.addEventListener('dragover', (evt) => evt.preventDefault()); -document.addEventListener('drop', (evt) => evt.preventDefault()); - -/** - * The main entrypoint for the application! - */ -const APP_VERSION = remote.app.getVersion() || ''; -const DEFAULT_APP_VERSION = '0.0.0'; - -import View from 'ampersand-view'; import * as webvitals from 'web-vitals'; - -import './menu-renderer'; - import React from 'react'; import ReactDOM from 'react-dom'; import { setupIntercom } from '@mongodb-js/compass-intercom'; - import { createLogger } from '@mongodb-js/compass-logging'; import { createIpcTrack } from '@mongodb-js/compass-telemetry'; + import { onAutoupdateExternally, onAutoupdateFailed, @@ -81,83 +23,77 @@ import { onAutoupdateStarted, onAutoupdateSuccess, } from './components/update-toasts'; + import { createElectronFileInputBackend } from '@mongodb-js/compass-components'; import { CompassRendererConnectionStorage } from '@mongodb-js/connection-storage/renderer'; import type { SettingsTabId } from '@mongodb-js/compass-settings'; import type { AutoConnectPreferences } from '../main/auto-connect'; + const { log, mongoLogId } = createLogger('COMPASS-APP'); const track = createIpcTrack(); -// Lets us call `setShowDevFeatureFlags(true | false)` from DevTools. -(window as any).setShowDevFeatureFlags = async (showDevFeatureFlags = true) => { - await defaultPreferencesInstance.savePreferences({ showDevFeatureFlags }); -}; +import './index.less'; +import 'source-code-pro/source-code-pro.css'; -function showCollectionSubMenu({ isReadOnly }: { isReadOnly: boolean }) { - void ipcRenderer?.call('window:show-collection-submenu', { - isReadOnly, - }); -} +const DEFAULT_APP_VERSION = '0.0.0'; -function hideCollectionSubMenu() { - void ipcRenderer?.call('window:hide-collection-submenu'); -} +class Application { + private static instance: Application | null = null; -function showSettingsModal(tab?: SettingsTabId) { - globalAppRegistry?.emit('open-compass-settings', tab); -} + version: string; + previousVersion: string; + highestInstalledVersion: string; -async function getWindowAutoConnectPreferences(): Promise { - return await ipcRenderer?.call('compass:get-window-auto-connect-preferences'); -} + private constructor() { + this.version = remote.app.getVersion() || ''; + this.previousVersion = DEFAULT_APP_VERSION; + this.highestInstalledVersion = this.version; + } -async function checkSecretStorageIsAvailable(): Promise { - return await ipcRenderer?.call('compass:check-secret-storage-is-available'); -} + public static getInstance(): Application { + if (!Application.instance) { + Application.instance = new Application(); + } + return Application.instance; + } -/** - * The top-level application singleton that brings everything together! - */ -const Application = View.extend({ - template: function () { - return [ - '
', - '
', - '
', - ].join('\n'); - }, - props: { - version: { - type: 'string', - default: APP_VERSION, - }, - }, - session: { - /** - * Details of the MongoDB Instance we're currently connected to. - */ - instance: 'state', - /** - * @see http://learn.humanjavascript.com/react-ampersand/creating-a-router-and-pages - */ - router: 'object', - /** - * The previously shown app version. - */ - previousVersion: { - type: 'string', - default: DEFAULT_APP_VERSION, - }, - }, - initialize: function () { - /** - * @see NODE-4281 - * @todo: remove when NODE-4281 is merged. - */ + /** + * @see NODE-4281 + * @todo: remove when NODE-4281 is merged. + */ + private patchNODE4281() { (Number.prototype as any).unref = () => { // noop }; + } + + private setupGlobalErrorHandling() { + // Global Error Handling + // Sets up error reporting to main process before any other initialization + // Ensures all unhandled errors are properly logged and reported + window.addEventListener('error', (event: ErrorEvent) => { + event.preventDefault(); + const error = ensureError(event.error); + void ipcRenderer?.call('compass:error:fatal', { + message: error.message, + stack: error.stack, + }); + }); + + window.addEventListener( + 'unhandledrejection', + (event: PromiseRejectionEvent) => { + event.preventDefault(); + const error = ensureError(event.reason); + void ipcRenderer?.call('compass:rejection:fatal', { + message: error.message, + stack: error.stack, + }); + } + ); + } + private setupWebVitals() { function trackPerfEvent({ name, value, @@ -177,40 +113,28 @@ const Application = View.extend({ webvitals.getLCP(trackPerfEvent); webvitals.getFID(trackPerfEvent); webvitals.getCLS(trackPerfEvent); - }, + } + /** * Enable all debug output for the development mode. */ - preRender: function () { + private enableDevelopmentDebug() { if (process.env.NODE_ENV === 'development') { // eslint-disable-next-line @typescript-eslint/no-var-requires require('debug').enable('mon*,had*'); } - }, - /** - * Pre-load into the require cache a bunch of expensive modules while the - * user is choosing which connection, so when the user clicks on Connect, - * Compass can connect to the MongoDB instance faster. - */ - postRender: function () { - marky.mark('Pre-loading additional modules required to connect'); - // Seems like this doesn't have as much of an effect as we'd hoped as - // most of the expense has already occurred. You can see it take 1700ms - // or so if you move this to the top of the file. - require('local-links'); - require('mongodb-instance-model'); - marky.stop('Pre-loading additional modules required to connect'); - }, + } + /** * Called a soon as the DOM is ready so we can * start showing status indicators as * quickly as possible. */ - render: async function () { + private async render() { await defaultPreferencesInstance.refreshPreferences(); const initialAutoConnectPreferences = - await getWindowAutoConnectPreferences(); - const isSecretStorageAvailable = await checkSecretStorageIsAvailable(); + await this.getWindowAutoConnectPreferences(); + const isSecretStorageAvailable = await this.checkSecretStorageIsAvailable(); const connectionStorage = new CompassRendererConnectionStorage(ipcRenderer); log.info( @@ -222,8 +146,17 @@ const Application = View.extend({ } ); - this.el = document.querySelector('#application'); - this.renderWithTemplate(this); + const elem = document.querySelector('#application'); + if (!elem) { + throw new Error('Application container not found'); + } + + // Create the application container structure + elem.innerHTML = ` +
+
+
+ `; const wasNetworkOptInShown = defaultPreferencesInstance.getPreferences().showedNetworkOptIn === true; @@ -243,9 +176,9 @@ const Application = View.extend({ remote, webUtils )} - showCollectionSubMenu={showCollectionSubMenu} - hideCollectionSubMenu={hideCollectionSubMenu} - showSettings={showSettingsModal} + showCollectionSubMenu={this.showCollectionSubMenu.bind(this)} + hideCollectionSubMenu={this.hideCollectionSubMenu.bind(this)} + showSettings={this.showSettingsModal.bind(this)} connectionStorage={connectionStorage} onAutoconnectInfoRequest={ initialAutoConnectPreferences.shouldAutoConnect @@ -258,7 +191,7 @@ const Application = View.extend({ } /> , - this.queryByHook('layout-container') + elem.querySelector('[data-hook="layout-container"]') ); if (!isSecretStorageAvailable) { @@ -267,63 +200,34 @@ const Application = View.extend({ title: 'Compass cannot access credential storage. You can still connect, but please note that passwords will not be saved.', }); - track('Secret Storage Not Available', { - // - }); + track('Secret Storage Not Available', {}); } document.querySelector('#loading-placeholder')?.remove(); - }, - updateAppVersion: async function () { - const { lastKnownVersion, highestInstalledVersion } = - defaultPreferencesInstance.getPreferences(); - this.previousVersion = lastKnownVersion || DEFAULT_APP_VERSION; - this.highestInstalledVersion = - semver.sort([ - highestInstalledVersion || DEFAULT_APP_VERSION, - APP_VERSION, - ])?.[1] ?? APP_VERSION; - await defaultPreferencesInstance.savePreferences({ - lastKnownVersion: APP_VERSION, - highestInstalledVersion: this.highestInstalledVersion, - }); - }, -}); - -const state = new Application(); - -const app = { - init: async function () { - await defaultPreferencesInstance.refreshPreferences(); - await state.updateAppVersion(); - state.preRender(); + } - try { - void setupIntercom(defaultPreferencesInstance); - } catch (e) { - log.warn( - mongoLogId(1_001_000_289), - 'Main Window', - 'Failed to set up Intercom', - { - error: (e as Error).message, - } - ); - // noop - } - // Catch a data refresh coming from window-manager. + private setupDataRefreshListener() { ipcRenderer?.on('app:refresh-data', () => globalAppRegistry.emit('refresh-data') ); + } + + private setupSchemaSharingListener() { ipcRenderer?.on('window:menu-share-schema-json', () => { globalAppRegistry.emit('menu-share-schema-json'); }); + } + + private setupImportExportListeners() { ipcRenderer?.on('compass:open-export', () => { globalAppRegistry.emit('open-active-namespace-export'); }); ipcRenderer?.on('compass:open-import', () => { globalAppRegistry.emit('open-active-namespace-import'); }); + } + + private setupDownloadStatusListeners() { ipcRenderer?.on('download-finished', (event, { path }) => { openToast('file-download-complete', { title: 'Success', @@ -337,6 +241,7 @@ const app = { variant: 'success', }); }); + ipcRenderer?.on('download-failed', (event, { filename }) => { openToast('file-download-failed', { title: 'Failure', @@ -346,7 +251,16 @@ const app = { variant: 'warning', }); }); - // Autoupdate handlers + } + + private setupIpcListeners() { + this.setupDataRefreshListener(); + this.setupSchemaSharingListener(); + this.setupImportExportListeners(); + this.setupDownloadStatusListeners(); + } + + private setupAutoUpdateListeners() { ipcRenderer?.on( 'autoupdate:download-update-externally', ( @@ -395,67 +309,187 @@ const app = { }); } ); - // Propagate events from global app registry to the main process + } + + private setupConnectInNewWindowListeners() { globalAppRegistry.on('connect-in-new-window', (connectionId: string) => { void ipcRenderer?.call('app:connect-in-new-window', connectionId); }); + } - // As soon as dom is ready, render and set up the rest. - state.render(); - marky.stop('Time to Connect rendered'); - state.postRender(); - marky.stop('Time to user can Click Connect'); - if (process.env.MONGODB_COMPASS_TEST_UNCAUGHT_EXCEPTION) { - queueMicrotask(() => { - throw new Error('fake exception'); - }); - } - - log.info(mongoLogId(1_001_000_338), 'Main Window', 'Recent version info', { - previousVersion: state.previousVersion, - highestInstalledVersion: state.highestInstalledVersion, - APP_VERSION, - }); - + private showUpdateToastIfNeeded() { if ( - state.previousVersion !== DEFAULT_APP_VERSION && - APP_VERSION !== state.previousVersion + this.previousVersion !== DEFAULT_APP_VERSION && + this.version !== this.previousVersion ) { // Wait a bit before showing the update toast. setTimeout(() => { onAutoupdateInstalled({ - newVersion: APP_VERSION, + newVersion: this.version, }); }, 2000); } - }, -}; - -Object.defineProperty(app, 'autoUpdate', { - get: function () { - return state.autoUpdate; - }, -}); - -Object.defineProperty(app, 'instance', { - get: function () { - return state.instance; - }, - set: function (instance) { - state.instance = instance; - }, -}); - -Object.defineProperty(app, 'router', { - get: function () { - return state.router; - }, -}); - -Object.defineProperty(app, 'state', { - get: function () { - return state; - }, -}); - -void app.init(); + } + + private async setupIntercomAndLogError() { + try { + await setupIntercom(defaultPreferencesInstance); + } catch (e) { + log.warn( + mongoLogId(1001000289), + 'Main Window', + 'Failed to set up Intercom', + { + error: (e as Error).message, + } + ); + } + } + + private logVersionInfo() { + log.info(mongoLogId(1_001_000_338), 'Main Window', 'Recent version info', { + previousVersion: this.previousVersion, + highestInstalledVersion: this.highestInstalledVersion, + version: this.version, + }); + } + + private setupZoomControls() { + const ZOOM_DEFAULT = 0; + const ZOOM_INCREMENT = 0.5; + const ZOOM_MAX = 5; + const ZOOM_MIN = -3; + + const zoomReset = () => { + return webFrame.setZoomLevel(ZOOM_DEFAULT); + }; + const zoomIn = () => { + const currentZoomLevel = webFrame.getZoomLevel(); + const newZoomLevel = Math.min( + currentZoomLevel + ZOOM_INCREMENT, + ZOOM_MAX + ); + return webFrame.setZoomLevel(newZoomLevel); + }; + const zoomOut = () => { + const currentZoomLevel = webFrame.getZoomLevel(); + const newZoomLevel = Math.max( + currentZoomLevel - ZOOM_INCREMENT, + ZOOM_MIN + ); + return webFrame.setZoomLevel(newZoomLevel); + }; + + ipcRenderer?.on('window:zoom-reset', zoomReset); + ipcRenderer?.on('window:zoom-in', zoomIn); + ipcRenderer?.on('window:zoom-out', zoomOut); + } + + private testUncaughtException() { + if (process.env.MONGODB_COMPASS_TEST_UNCAUGHT_EXCEPTION) { + queueMicrotask(() => { + throw new Error('fake exception'); + }); + } + } + + private allowDevFeatureFlagsFromDevTools() { + // Lets us call `setShowDevFeatureFlags(true | false)` from DevTools. + (window as any).setShowDevFeatureFlags = async ( + showDevFeatureFlags = true + ) => { + await defaultPreferencesInstance.savePreferences({ showDevFeatureFlags }); + }; + } + + private preventDefaultBrowserBehaviorForDragAndDrop() { + // Drag and Drop Prevention + // Prevents default browser behavior for drag and drop events + // to avoid potential security issues + document.addEventListener('dragover', (evt) => evt.preventDefault()); + document.addEventListener('drop', (evt) => evt.preventDefault()); + } + + private showCollectionSubMenu({ isReadOnly }: { isReadOnly: boolean }) { + void ipcRenderer?.call('window:show-collection-submenu', { + isReadOnly, + }); + } + + private hideCollectionSubMenu() { + void ipcRenderer?.call('window:hide-collection-submenu'); + } + + private showSettingsModal(tab?: SettingsTabId) { + globalAppRegistry?.emit('open-compass-settings', tab); + } + + private async getWindowAutoConnectPreferences(): Promise { + return await ipcRenderer?.call( + 'compass:get-window-auto-connect-preferences' + ); + } + + private async checkSecretStorageIsAvailable(): Promise { + return await ipcRenderer?.call('compass:check-secret-storage-is-available'); + } + + async init() { + // Setup global error handling first to ensure all + // unhandled errors are properly logged and reported + this.setupGlobalErrorHandling(); + + // Setup development environment + this.enableDevelopmentDebug(); + this.allowDevFeatureFlagsFromDevTools(); + + this.patchNODE4281(); + this.setupWebVitals(); + + // Initialize preferences and version + await this.initializePreferencesAndVersion(); + + void this.setupIntercomAndLogError(); + + // Setup all event listeners + this.setupIpcListeners(); + this.setupAutoUpdateListeners(); + this.setupConnectInNewWindowListeners(); + this.setupZoomControls(); + this.preventDefaultBrowserBehaviorForDragAndDrop(); + + // Render the application + await this.render(); + + // Throws a synthetic exception for e2e tests so we can test the handling + // of uncaught exceptions. + this.testUncaughtException(); + + // Log version info and show update toast if needed + this.logVersionInfo(); + this.showUpdateToastIfNeeded(); + } + + private async initializePreferencesAndVersion() { + await defaultPreferencesInstance.refreshPreferences(); + + // This code updates the last known version and highest installed version in preferences after + // the first installation, or a potential update or downgrade. + // This is useful so that we can track the version history of the application, and + // handle auto-updates differently in case of downgrades. + const { lastKnownVersion, highestInstalledVersion } = + defaultPreferencesInstance.getPreferences(); + this.previousVersion = lastKnownVersion || DEFAULT_APP_VERSION; + this.highestInstalledVersion = + semver.sort([ + highestInstalledVersion || DEFAULT_APP_VERSION, + this.version, + ])?.[1] ?? this.version; + await defaultPreferencesInstance.savePreferences({ + lastKnownVersion: this.version, + highestInstalledVersion: this.highestInstalledVersion, + }); + } +} + +export const app = Application.getInstance(); diff --git a/packages/compass/src/app/index.ts b/packages/compass/src/app/index.ts new file mode 100644 index 00000000000..93d32b8ae4c --- /dev/null +++ b/packages/compass/src/app/index.ts @@ -0,0 +1,55 @@ +/** + * IMPORTANT: + * + * This file (index.ts) is not meant for regular application lifecycle logic. + * It should ONLY contain code that: + * 1. Must run before any other application code + * 2. Sets up critical infrastructure that other modules depend on + * 3. Handles global error boundaries and process-level configuration + * + * Examples of what belongs here: + * - Stateful setup for core node modules (dns, EventEmitter) + * - Process-level environment variables + * - Any setup required by other modules (including 3rd party modules) before + * they can be imported + * + * All other application lifecycle code, initialization, and business logic + * should be placed in application.tsx instead. + * + * Rule of thumb: If the code isn't required for other modules to function + * correctly during import, it probably belongs in application.tsx. + */ + +// Inject CSP to prevent any CSP violations. +import { injectCSP } from './utils/csp'; +injectCSP(); + +// Setup paths and environment variables for electron globals +import { setupHadronDistribution } from '../setup-hadron-distribution'; +setupHadronDistribution(); + +// DNS Configuration +// Ensures IPv4 is preferred over IPv6 to avoid potential connection issues +// See: https://github.com/nodejs/node/issues/40537 +import dns from 'dns'; +dns.setDefaultResultOrder('ipv4first'); + +// Configure NODE_OPTIONS to ensure sub-processes (like the shell) also prefer IPv4 +process.env.NODE_OPTIONS ??= ''; +if (!process.env.NODE_OPTIONS.includes('--dns-result-order')) { + process.env.NODE_OPTIONS += ` --dns-result-order=ipv4first`; +} + +// Event Emitter Configuration +// Increases the default maximum number of listeners to prevent +// potential memory leaks in development mode +import EventEmitter from 'events'; +EventEmitter.defaultMaxListeners = 100; + +// ---------------------------------------------------------------------------- +// NOTE: keep this import last to avoid any potential issues with stateful setup +// interfering with the bootstrap, and make sure the rest of the bootstrap has +// taken effect. + +import { app } from './application'; +void app.init(); diff --git a/packages/compass/src/app/menu-renderer.js b/packages/compass/src/app/menu-renderer.js deleted file mode 100644 index 69a815a2ca5..00000000000 --- a/packages/compass/src/app/menu-renderer.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; -const electron = require('electron'); -const { ipcRenderer: ipc } = require('hadron-ipc'); - -const ZOOM_DEFAULT = 0; -const ZOOM_INCREMENT = 0.5; -const ZOOM_MAX = 5; -const ZOOM_MIN = -3; - -const zoomReset = () => { - return electron.webFrame.setZoomLevel(ZOOM_DEFAULT); -}; -const zoomIn = () => { - const currentZoomLevel = electron.webFrame.getZoomLevel(); - const newZoomLevel = Math.min(currentZoomLevel + ZOOM_INCREMENT, ZOOM_MAX); - return electron.webFrame.setZoomLevel(newZoomLevel); -}; -const zoomOut = () => { - const currentZoomLevel = electron.webFrame.getZoomLevel(); - const newZoomLevel = Math.max(currentZoomLevel - ZOOM_INCREMENT, ZOOM_MIN); - return electron.webFrame.setZoomLevel(newZoomLevel); -}; - -ipc.on('window:zoom-reset', zoomReset); -ipc.on('window:zoom-in', zoomIn); -ipc.on('window:zoom-out', zoomOut); - -module.exports = { - zoomReset, - zoomIn, - zoomOut, -}; diff --git a/packages/compass/src/app/utils/csp.ts b/packages/compass/src/app/utils/csp.ts index bad57a89f13..7678c5a52b7 100644 --- a/packages/compass/src/app/utils/csp.ts +++ b/packages/compass/src/app/utils/csp.ts @@ -74,7 +74,7 @@ const defaultCSP = { 'worker-src': ["'self'", 'file:'], }; -function injectCSP() { +export function injectCSP() { const metaCSP = document.createElement('meta'); const extraAllowed: string[] = []; if ( @@ -107,5 +107,3 @@ function injectCSP() { metaCSP.setAttribute('content', cspContent); document.head.prepend(metaCSP); } - -injectCSP(); diff --git a/packages/compass/src/index.d.ts b/packages/compass/src/index.d.ts index b18ff9731fc..fcfb851b225 100644 --- a/packages/compass/src/index.d.ts +++ b/packages/compass/src/index.d.ts @@ -42,16 +42,3 @@ declare module 'process' { } } } - -declare module 'marky' { - declare function mark(label: string): void; - declare function stop(label: string): void; - export { mark, stop }; -} - -declare module 'ampersand-view' { - class View { - static extend(...args: any): any; - } - export default View; -} diff --git a/packages/compass/src/main/index.ts b/packages/compass/src/main/index.ts index 474b75a0c22..9260b59233c 100644 --- a/packages/compass/src/main/index.ts +++ b/packages/compass/src/main/index.ts @@ -1,5 +1,7 @@ // THIS IMPORT SHOULD ALWAYS BE THE FIRST ONE FOR THE APPLICATION ENTRY POINT -import '../setup-hadron-distribution'; +import { setupHadronDistribution } from '../setup-hadron-distribution'; +setupHadronDistribution(); +// ------------------------------------------------------------ import { app, dialog, crashReporter } from 'electron'; import { handleUncaughtException } from './handle-uncaught-exception'; diff --git a/packages/compass/src/setup-hadron-distribution.ts b/packages/compass/src/setup-hadron-distribution.ts index ea8ba62212a..ca09d5f8dd4 100644 --- a/packages/compass/src/setup-hadron-distribution.ts +++ b/packages/compass/src/setup-hadron-distribution.ts @@ -2,107 +2,119 @@ import path from 'path'; import { app, protocol, net } from 'electron'; /** - * All these variables below are used by Compass and its plugins in one way or - * another. These process.env vars are inlined in the code durng the build - * process by webpack and are not accessible directly in the runtime by default. - * It's helpful to have them though for debugging purposes, so that's why we are - * adding them back to the runtime. It's done in this weird Object.assign way to - * work around Webpack detection that would not allow us to just do the - * assignment here + * This function is used to setup the Hadron distribution. + * It's used to inject the process.env vars into the runtime. + * It's meant to be called at the beginning of the bootstrap, since it sets + * process.env vars and electron app properties that are used by Compass, and in + * particular it sets up paths for file system operations. */ -const env = Object.fromEntries( - Object.entries({ - HADRON_APP_VERSION: process.env.HADRON_APP_VERSION, - HADRON_DISTRIBUTION: process.env.HADRON_DISTRIBUTION, - HADRON_PRODUCT: process.env.HADRON_PRODUCT, - HADRON_PRODUCT_NAME: process.env.HADRON_PRODUCT_NAME, - HADRON_READONLY: process.env.HADRON_READONLY, - HADRON_ISOLATED: process.env.HADRON_ISOLATED, - HADRON_CHANNEL: process.env.HADRON_CHANNEL, - HADRON_METRICS_INTERCOM_APP_ID: process.env.HADRON_METRICS_INTERCOM_APP_ID, - HADRON_METRICS_SEGMENT_API_KEY: process.env.HADRON_METRICS_SEGMENT_API_KEY, - HADRON_METRICS_SEGMENT_HOST: process.env.HADRON_METRICS_SEGMENT_HOST, - HADRON_AUTO_UPDATE_ENDPOINT: process.env.HADRON_AUTO_UPDATE_ENDPOINT, - }).filter(([, val]) => !!val) -); +export function setupHadronDistribution() { + /** + * All these variables below are used by Compass and its plugins in one way or + * another. These process.env vars are inlined in the code durng the build + * process by webpack and are not accessible directly in the runtime by default. + * It's helpful to have them though for debugging purposes, so that's why we are + * adding them back to the runtime. It's done in this weird Object.assign way to + * work around Webpack detection that would not allow us to just do the + * assignment here + */ + const env = Object.fromEntries( + Object.entries({ + HADRON_APP_VERSION: process.env.HADRON_APP_VERSION, + HADRON_DISTRIBUTION: process.env.HADRON_DISTRIBUTION, + HADRON_PRODUCT: process.env.HADRON_PRODUCT, + HADRON_PRODUCT_NAME: process.env.HADRON_PRODUCT_NAME, + HADRON_READONLY: process.env.HADRON_READONLY, + HADRON_ISOLATED: process.env.HADRON_ISOLATED, + HADRON_CHANNEL: process.env.HADRON_CHANNEL, + HADRON_METRICS_INTERCOM_APP_ID: + process.env.HADRON_METRICS_INTERCOM_APP_ID, + HADRON_METRICS_SEGMENT_API_KEY: + process.env.HADRON_METRICS_SEGMENT_API_KEY, + HADRON_METRICS_SEGMENT_HOST: process.env.HADRON_METRICS_SEGMENT_HOST, + HADRON_AUTO_UPDATE_ENDPOINT: process.env.HADRON_AUTO_UPDATE_ENDPOINT, + }).filter(([, val]) => !!val) + ); -Object.assign(process.env, env); + Object.assign(process.env, env); -if ( - // type `browser` indicates that we are in the main electron process - process.type === 'browser' -) { - // Name and version are setup outside of Application and before anything else - // so that if uncaught exception happens we already show correct name and - // version - app.setName( - process.env.HADRON_PRODUCT_NAME_OVERRIDE ?? process.env.HADRON_PRODUCT_NAME - ); + if ( + // type `browser` indicates that we are in the main electron process + process.type === 'browser' + ) { + // Name and version are setup outside of Application and before anything else + // so that if uncaught exception happens we already show correct name and + // version + app.setName( + process.env.HADRON_PRODUCT_NAME_OVERRIDE ?? + process.env.HADRON_PRODUCT_NAME + ); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error setVersion is not a public method - app.setVersion(process.env.HADRON_APP_VERSION); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error setVersion is not a public method + app.setVersion(process.env.HADRON_APP_VERSION); - // When NODE_ENV is dev, we are probably running the app unpackaged directly - // with Electron binary which causes user dirs to be just `Electron` instead - // of app name that we want here - if (process.env.NODE_ENV === 'development') { - app.setPath('userData', path.join(app.getPath('appData'), app.getName())); + // When NODE_ENV is dev, we are probably running the app unpackaged directly + // with Electron binary which causes user dirs to be just `Electron` instead + // of app name that we want here + if (process.env.NODE_ENV === 'development') { + app.setPath('userData', path.join(app.getPath('appData'), app.getName())); - // @ts-expect-error this seems to work but not exposed as public path and so - // is not available in d.ts files. As this is a dev-only path change and - // seemingly nothing is using this path anyway, we probably can ignore an - // error here - app.setPath('userCache', path.join(app.getPath('cache'), app.getName())); + // @ts-expect-error this seems to work but not exposed as public path and so + // is not available in d.ts files. As this is a dev-only path change and + // seemingly nothing is using this path anyway, we probably can ignore an + // error here + app.setPath('userCache', path.join(app.getPath('cache'), app.getName())); - // TODO(COMPASS-8269): even with `webSecurity` disabled for local dev, - // file:// requests for shell worker are silently getting canceled by the - // browser, adding explicit protocol handler for it that just does the same - // request using electron network stack works around the issue - void app.whenReady().then(() => { - protocol.handle('file', (req) => { - return net.fetch(req, { bypassCustomProtocolHandlers: true }); + // TODO(COMPASS-8269): even with `webSecurity` disabled for local dev, + // file:// requests for shell worker are silently getting canceled by the + // browser, adding explicit protocol handler for it that just does the same + // request using electron network stack works around the issue + void app.whenReady().then(() => { + protocol.handle('file', (req) => { + return net.fetch(req, { bypassCustomProtocolHandlers: true }); + }); }); - }); - } + } - app.setPath( - 'crashDumps', - path.join(app.getPath('userData'), 'CrashReporter') - ); -} + app.setPath( + 'crashDumps', + path.join(app.getPath('userData'), 'CrashReporter') + ); + } -if ( - // type `renderer` is electron renderer process (browser window runtime) - process.type === 'renderer' -) { - if (process.env.NODE_ENV === 'development') { - const ignoreLeafygreenWarnings = [ - // Not relevant - /using the Leafygreen SearchInput/i, - // We don't always use SegmentedControl as a view switcher, aria-controls - // doesn't apply - /The property `aria-controls` is required/i, - // TODO(COMPASS-7046): Should go away after leafygreen update - /For screen-reader accessibility, label or aria-labelledby/i, - ]; - for (const method of ['warn', 'error'] as const) { - /* eslint-disable no-console */ - const fn = console[method]; - console[method] = function (...args) { - const [msg] = args; - if (typeof msg === 'string') { - if ( - ignoreLeafygreenWarnings.some((regex) => { - return regex.test(msg); - }) - ) { - return; + if ( + // type `renderer` is electron renderer process (browser window runtime) + process.type === 'renderer' + ) { + if (process.env.NODE_ENV === 'development') { + const ignoreLeafygreenWarnings = [ + // Not relevant + /using the Leafygreen SearchInput/i, + // We don't always use SegmentedControl as a view switcher, aria-controls + // doesn't apply + /The property `aria-controls` is required/i, + // TODO(COMPASS-7046): Should go away after leafygreen update + /For screen-reader accessibility, label or aria-labelledby/i, + ]; + for (const method of ['warn', 'error'] as const) { + /* eslint-disable no-console */ + const fn = console[method]; + console[method] = function (...args) { + const [msg] = args; + if (typeof msg === 'string') { + if ( + ignoreLeafygreenWarnings.some((regex) => { + return regex.test(msg); + }) + ) { + return; + } } - } - return fn.apply(this, args); - }; - /* eslint-enable no-console */ + return fn.apply(this, args); + }; + /* eslint-enable no-console */ + } } } } diff --git a/packages/compass/webpack.config.js b/packages/compass/webpack.config.js index 312b5068637..c18ff8db69a 100644 --- a/packages/compass/webpack.config.js +++ b/packages/compass/webpack.config.js @@ -35,7 +35,7 @@ module.exports = (_env, args) => { const rendererConfig = createElectronRendererConfig({ ...opts, - entry: path.resolve(__dirname, 'src', 'app', 'index.tsx'), + entry: path.resolve(__dirname, 'src', 'app', 'index.ts'), }); const externals = {