diff --git a/.github/labeler.yml b/.github/labeler.yml index 19a931bd9..063cf9b27 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,23 +1,20 @@ addons: - addons/**/* -addons/api: +api-addon: - addons/api/**/* -addons/auth: +auth-addon: - addons/auth/**/* -addons/styles: +styles-addon: - addons/rose/**/* ui: - ui/**/* -ui/admin: +admin: - ui/core/**/* -ui/admin/app: - - ui/core/app/**/* - -ui/admin/tests: - - ui/core/tests/**/* +desktop: + - ui/desktop/**/* diff --git a/ui/desktop/.prettierrc b/ui/desktop/.prettierrc new file mode 100644 index 000000000..2ddc9656d --- /dev/null +++ b/ui/desktop/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "printWidth": 80 +} diff --git a/ui/desktop/.sasslintrc b/ui/desktop/.sasslintrc new file mode 100644 index 000000000..fbccde1bf --- /dev/null +++ b/ui/desktop/.sasslintrc @@ -0,0 +1,7 @@ +files: + include: 'app/styles/**/*.s+(a|c)ss' +rules: + leading-zero: 0 + mixins-before-declarations: 0 + nesting-depth: 0 + placeholder-in-extend: 0 diff --git a/ui/desktop/app/router.js b/ui/desktop/app/router.js index 5dd439482..67ec24b1d 100644 --- a/ui/desktop/app/router.js +++ b/ui/desktop/app/router.js @@ -9,7 +9,7 @@ export default class Router extends EmberRouter { Router.map(function () { this.route('scopes', function() { this.route('scope', { path: ':scope_id' }, function() { - this.route('targets'); + this.route('targets', function() {}); this.route('authenticate', function() { this.route('method', { path: ':auth_method_id' }); }); diff --git a/ui/desktop/app/routes/application.js b/ui/desktop/app/routes/application.js index 9ed5376e7..3c5a507fb 100644 --- a/ui/desktop/app/routes/application.js +++ b/ui/desktop/app/routes/application.js @@ -1,8 +1,12 @@ import Route from '@ember/routing/route'; +import Ember from 'ember'; /* eslint-disable-next-line ember/no-mixins */ import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin'; import { inject as service } from '@ember/service'; import { action } from '@ember/object'; +import { A } from '@ember/array'; +import { getOwner } from '@ember/application'; +import { later } from '@ember/runloop'; import loading from 'ember-loading/decorator'; export default class ApplicationRoute extends Route.extend( diff --git a/ui/desktop/app/routes/scopes/scope.js b/ui/desktop/app/routes/scopes/scope.js index 69cda7896..a5d3a7dab 100644 --- a/ui/desktop/app/routes/scopes/scope.js +++ b/ui/desktop/app/routes/scopes/scope.js @@ -35,7 +35,6 @@ export default class ScopesScopeRoute extends Route { }); } - /** * Load all scopes within the current scope context. Always attempt to load * org scopes. Only attempt to load project scopes if the current scope is @@ -44,7 +43,8 @@ export default class ScopesScopeRoute extends Route { async afterModel(model) { // Load all orgs let orgs; - orgs = await this.store.query('scope', { scope_id: 'global' }) + orgs = await this.store + .query('scope', { scope_id: 'global' }) .catch(() => A([])); // Then pull out the "selected" org, if relevant diff --git a/ui/desktop/app/routes/scopes/scope/index.js b/ui/desktop/app/routes/scopes/scope/index.js index f6da63026..1713c1c58 100644 --- a/ui/desktop/app/routes/scopes/scope/index.js +++ b/ui/desktop/app/routes/scopes/scope/index.js @@ -13,7 +13,7 @@ export default class ScopesScopeIndexRoute extends Route { * If already authenticated, redirects to scopes/scope/scopes to display * list of sub scopes. */ - redirect(model) { + redirect() { if (!this.session.isAuthenticated) { this.replaceWith('scopes.scope.authenticate'); } else { diff --git a/ui/desktop/app/routes/scopes/scope/targets.js b/ui/desktop/app/routes/scopes/scope/targets.js index eefcfe26e..b12b4099e 100644 --- a/ui/desktop/app/routes/scopes/scope/targets.js +++ b/ui/desktop/app/routes/scopes/scope/targets.js @@ -22,11 +22,17 @@ export default class ScopesScopeTargetsRoute extends Route { * @return {Promise{[TargetModel]}} */ async model() { - let projectTargets = await all(this.scope.projects.map(({ id: scope_id }) => - this.store.query('target', { scope_id }) - )) - - return projectTargets.map((target) => target.toArray()).flat(); + let projectTargets = await all( + this.scope.projects.map(({ id: scope_id }) => + this.store.query('target', { scope_id }) + ) + ); + let targets = projectTargets.map((target) => target.toArray()).flat(); + return targets.map((target) => { + return { + target, + project: this.store.peekRecord('scope', target.scopeID), + }; + }); } - } diff --git a/ui/desktop/app/routes/scopes/scope/targets/index.js b/ui/desktop/app/routes/scopes/scope/targets/index.js new file mode 100644 index 000000000..2b4412f53 --- /dev/null +++ b/ui/desktop/app/routes/scopes/scope/targets/index.js @@ -0,0 +1,3 @@ +import Route from '@ember/routing/route'; + +export default class ScopesScopeTargetsIndexRoute extends Route {} diff --git a/ui/desktop/app/services/ipc.js b/ui/desktop/app/services/ipc.js index eacea60c2..4c0cca671 100644 --- a/ui/desktop/app/services/ipc.js +++ b/ui/desktop/app/services/ipc.js @@ -30,7 +30,6 @@ import { Promise } from 'rsvp'; * */ export class IPCRequest { - // =attributes /** @@ -60,16 +59,20 @@ export class IPCRequest { this.payload = payload; this.origin = window?.location?.origin; this.#channel = new MessageChannel(); - this.#promise = new Promise((resolve/*, reject*/) => { + this.#promise = new Promise((resolve /*, reject*/) => { this.#channel.port1.onmessage = (event) => { this.close(); resolve(event.data); - } + }; }); - window.postMessage({ - method: this.method, - payload: this.payload - }, origin, [ this.#channel.port2 ]); + window.postMessage( + { + method: this.method, + payload: this.payload, + }, + origin, + [this.#channel.port2] + ); } /** @@ -102,7 +105,6 @@ export class IPCRequest { finally() { return this.#promise.finally(...arguments); } - } /** @@ -118,7 +120,6 @@ export class IPCRequest { * } */ export default class IpcService extends Service { - // =attributes /** @@ -143,5 +144,4 @@ export default class IpcService extends Service { invoke(method, payload) { return new IPCRequest(method, payload, this.window); } - } diff --git a/ui/desktop/app/services/scope.js b/ui/desktop/app/services/scope.js index 5827b64d2..abf3c508a 100644 --- a/ui/desktop/app/services/scope.js +++ b/ui/desktop/app/services/scope.js @@ -6,7 +6,6 @@ import { tracked } from '@glimmer/tracking'; * the currently active scope or scopes. */ export default class ScopeService extends Service { - // =attributes /** diff --git a/ui/desktop/app/styles/app.scss b/ui/desktop/app/styles/app.scss index a41d1236f..134df4cd9 100644 --- a/ui/desktop/app/styles/app.scss +++ b/ui/desktop/app/styles/app.scss @@ -44,8 +44,8 @@ } .rose-dropdown { - $iconWidth: sizing.rems(m) + sizing.rems(s); - $indent: $iconWidth + sizing.rems(xs); + $icon-width: sizing.rems(m) + sizing.rems(s); + $indent: $icon-width + sizing.rems(xs); .rose-form-radio-label { display: flex; @@ -63,7 +63,7 @@ .indent-label-2 { .rose-form-radio-label { - padding-left: $indent + $iconWidth; + padding-left: $indent + $icon-width; } } diff --git a/ui/desktop/app/templates/scopes.hbs b/ui/desktop/app/templates/scopes.hbs index c24cd6895..53d1e87e5 100644 --- a/ui/desktop/app/templates/scopes.hbs +++ b/ui/desktop/app/templates/scopes.hbs @@ -1 +1,11 @@ -{{outlet}} +{{page-title (t 'scope.title_plural')}} + + + + +
+ {{outlet}} +
+
+ +
diff --git a/ui/desktop/app/templates/scopes/index.hbs b/ui/desktop/app/templates/scopes/index.hbs index bcb29e68f..cfb863937 100644 --- a/ui/desktop/app/templates/scopes/index.hbs +++ b/ui/desktop/app/templates/scopes/index.hbs @@ -1,26 +1,36 @@ -{{outlet}} + - - - - {{t 'scope.title'}} - - - - {{#each @model as |scope|}} - - - - {{scope.name}} - - - - {{scope.id}} - - - {{/each}} - - + +

+ {{t "scope.title_plural"}} +

+
+ + + + + + {{t 'scope.title'}} + + + + {{#each @model as |scope|}} + + + + {{scope.name}} + + + + {{scope.id}} + + + {{/each}} + + + + +
diff --git a/ui/desktop/app/templates/scopes/scope/targets.hbs b/ui/desktop/app/templates/scopes/scope/targets.hbs index f9f7ea6f3..74c1be2af 100644 --- a/ui/desktop/app/templates/scopes/scope/targets.hbs +++ b/ui/desktop/app/templates/scopes/scope/targets.hbs @@ -1,27 +1,3 @@ -{{outlet}} +{{page-title (t 'target.title_plural')}} - - - - {{t "name.label"}} - {{t "type.label"}} - {{t "id.label"}} - - - - {{#each @model as |target|}} - - - {{target.name}} -

{{target.description}}

-
- - {{target.type}} - - - {{target.id}} - -
- {{/each}} -
-
+{{outlet}} diff --git a/ui/desktop/app/templates/scopes/scope/targets/index.hbs b/ui/desktop/app/templates/scopes/scope/targets/index.hbs new file mode 100644 index 000000000..b0779fa23 --- /dev/null +++ b/ui/desktop/app/templates/scopes/scope/targets/index.hbs @@ -0,0 +1,49 @@ + + + +

+ {{t "target.title_plural"}} +

+
+ + + + + + {{t "name.label"}} + {{t "id.label"}} + {{t "type.label"}} + {{t "project.label"}} + + + + + {{#each @model as |model|}} + + + {{model.target.name}} +

{{model.target.description}}

+
+ + {{model.target.id}} + + + {{model.target.type}} + + + + {{model.project.name}} + + + + + {{t "session.actions.connect"}} + + +
+ {{/each}} +
+
+
+ +
diff --git a/ui/desktop/config/environment.js b/ui/desktop/config/environment.js index dbd5328b7..e358c0cac 100644 --- a/ui/desktop/config/environment.js +++ b/ui/desktop/config/environment.js @@ -7,8 +7,8 @@ module.exports = function (environment) { let ENV = { modulePrefix: 'desktop', environment, - rootURL: process.env.EMBER_CLI_ELECTRON ? '' : process.env.EMBER_CLI_ELECTRON ? '' : process.env.EMBER_CLI_ELECTRON ? '' : '/', - locationType: process.env.EMBER_CLI_ELECTRON ? 'hash' : process.env.EMBER_CLI_ELECTRON ? 'hash' : process.env.EMBER_CLI_ELECTRON ? 'hash' : 'auto', + rootURL: process.env.EMBER_CLI_ELECTRON ? '' : '/', + locationType: process.env.EMBER_CLI_ELECTRON ? 'hash' : 'auto', EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build diff --git a/ui/desktop/config/targets.js b/ui/desktop/config/targets.js index 228a07898..4b33327e8 100644 --- a/ui/desktop/config/targets.js +++ b/ui/desktop/config/targets.js @@ -3,7 +3,7 @@ const browsers = [ 'last 1 Chrome versions', 'last 1 Firefox versions', - 'last 1 Safari versions' + 'last 1 Safari versions', ]; const isCI = Boolean(process.env.CI); @@ -14,5 +14,5 @@ if (isCI || isProduction) { } module.exports = { - browsers + browsers, }; diff --git a/ui/desktop/ember-cli-build.js b/ui/desktop/ember-cli-build.js index 79ef0cbb3..cc31a1b6c 100644 --- a/ui/desktop/ember-cli-build.js +++ b/ui/desktop/ember-cli-build.js @@ -2,7 +2,7 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app'); -module.exports = function(defaults) { +module.exports = function (defaults) { let app = new EmberApp(defaults, { babel: { sourceMaps: 'inline', diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 853c78e99..4fa7d57de 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -71,7 +71,7 @@ "ember-route-action-helper": "^2.0.8", "ember-simple-auth": "^3.0.1", "ember-source": "~3.20.2", - "ember-template-lint": "^2.9.1", + "ember-template-lint": "^2.14.0", "ember-uuid": "^2.1.0", "ember-welcome-page": "^4.0.0", "eslint": "^7.5.0", @@ -84,6 +84,7 @@ "qunit-dom": "^1.2.0", "rose": "*", "sass": "^1.29.0", + "sass-lint": "^1.13.1", "sinon": "^9.2.1" }, "engines": { diff --git a/ui/desktop/testem-electron.js b/ui/desktop/testem-electron.js index 3272b9174..7ac31d81f 100644 --- a/ui/desktop/testem-electron.js +++ b/ui/desktop/testem-electron.js @@ -4,12 +4,8 @@ module.exports = { launchers: { Electron: require('ember-electron/lib/test-runner'), }, - launch_in_ci: [ - 'Electron', - ], - launch_in_dev: [ - 'Electron', - ], + launch_in_ci: ['Electron'], + launch_in_dev: ['Electron'], browser_args: { Electron: { // Note: Some these Chrome options may not be supported in Electron @@ -22,8 +18,8 @@ module.exports = { '--disable-software-rasterizer', '--mute-audio', '--remote-debugging-port=0', - '--window-size=1440,900' - ].filter(Boolean) - } - } + '--window-size=1440,900', + ].filter(Boolean), + }, + }, }; diff --git a/ui/desktop/testem.js b/ui/desktop/testem.js index 49f53feed..ed2f37124 100644 --- a/ui/desktop/testem.js +++ b/ui/desktop/testem.js @@ -3,12 +3,8 @@ module.exports = { test_page: 'tests/index.html?hidepassed', disable_watching: true, - launch_in_ci: [ - 'Chrome' - ], - launch_in_dev: [ - 'Chrome' - ], + launch_in_ci: ['Chrome'], + launch_in_dev: ['Chrome'], browser_start_timeout: 120, browser_args: { Chrome: { @@ -20,8 +16,8 @@ module.exports = { '--disable-software-rasterizer', '--mute-audio', '--remote-debugging-port=0', - '--window-size=1440,900' - ].filter(Boolean) - } - } + '--window-size=1440,900', + ].filter(Boolean), + }, + }, }; diff --git a/ui/desktop/tests/unit/routes/index-test.js b/ui/desktop/tests/unit/routes/index-test.js index eaaac17bc..01131fb9a 100644 --- a/ui/desktop/tests/unit/routes/index-test.js +++ b/ui/desktop/tests/unit/routes/index-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | index', function(hooks) { +module('Unit | Route | index', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { let route = this.owner.lookup('route:index'); assert.ok(route); }); diff --git a/ui/desktop/tests/unit/routes/scopes-test.js b/ui/desktop/tests/unit/routes/scopes-test.js index 06a5af092..914469429 100644 --- a/ui/desktop/tests/unit/routes/scopes-test.js +++ b/ui/desktop/tests/unit/routes/scopes-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | scopes', function(hooks) { +module('Unit | Route | scopes', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { let route = this.owner.lookup('route:scopes'); assert.ok(route); }); diff --git a/ui/desktop/tests/unit/routes/scopes/scope-test.js b/ui/desktop/tests/unit/routes/scopes/scope-test.js index 62c97d9f0..3cdcf409a 100644 --- a/ui/desktop/tests/unit/routes/scopes/scope-test.js +++ b/ui/desktop/tests/unit/routes/scopes/scope-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | scopes/scope', function(hooks) { +module('Unit | Route | scopes/scope', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { let route = this.owner.lookup('route:scopes/scope'); assert.ok(route); }); diff --git a/ui/desktop/tests/unit/routes/scopes/scope/index-test.js b/ui/desktop/tests/unit/routes/scopes/scope/index-test.js index ba0a5bdba..c623e801b 100644 --- a/ui/desktop/tests/unit/routes/scopes/scope/index-test.js +++ b/ui/desktop/tests/unit/routes/scopes/scope/index-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | scopes/scope/index', function(hooks) { +module('Unit | Route | scopes/scope/index', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { let route = this.owner.lookup('route:scopes/scope/index'); assert.ok(route); }); diff --git a/ui/desktop/tests/unit/routes/scopes/scope/targets-test.js b/ui/desktop/tests/unit/routes/scopes/scope/targets-test.js index 45d66036b..0d357c6b8 100644 --- a/ui/desktop/tests/unit/routes/scopes/scope/targets-test.js +++ b/ui/desktop/tests/unit/routes/scopes/scope/targets-test.js @@ -1,10 +1,10 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Route | scopes/scope/targets', function(hooks) { +module('Unit | Route | scopes/scope/targets', function (hooks) { setupTest(hooks); - test('it exists', function(assert) { + test('it exists', function (assert) { let route = this.owner.lookup('route:scopes/scope/targets'); assert.ok(route); }); diff --git a/ui/desktop/tests/unit/routes/scopes/scope/targets/index-test.js b/ui/desktop/tests/unit/routes/scopes/scope/targets/index-test.js new file mode 100644 index 000000000..74d495fcb --- /dev/null +++ b/ui/desktop/tests/unit/routes/scopes/scope/targets/index-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | scopes/scope/targets/index', function (hooks) { + setupTest(hooks); + + test('it exists', function (assert) { + let route = this.owner.lookup('route:scopes/scope/targets/index'); + assert.ok(route); + }); +}); diff --git a/ui/desktop/tests/unit/services/ipc-test.js b/ui/desktop/tests/unit/services/ipc-test.js index 1de9e29b0..05007f96c 100644 --- a/ui/desktop/tests/unit/services/ipc-test.js +++ b/ui/desktop/tests/unit/services/ipc-test.js @@ -3,7 +3,7 @@ import { setupTest } from 'ember-qunit'; import { IPCRequest } from 'desktop/services/ipc'; import sinon from 'sinon'; -module('Unit | Service | ipc', function(hooks) { +module('Unit | Service | ipc', function (hooks) { setupTest(hooks); hooks.beforeEach(() => { @@ -17,41 +17,40 @@ module('Unit | Service | ipc', function(hooks) { sinon.restore(); }); - test('it creates new IPCRequest objects', function(assert) { + test('it creates new IPCRequest objects', function (assert) { assert.expect(1); const service = this.owner.lookup('service:ipc'); const request = service.invoke('hello', 'world', 'http://localhost:4200'); assert.equal(request.constructor, IPCRequest); }); - test('IPCRequest objects post messages on their window objects', function(assert) { + test('IPCRequest objects post messages on their window objects', function (assert) { assert.expect(2); const myWindow = { postMessage(request) { assert.equal(request.method, 'hello'); assert.equal(request.payload, 'world'); - } + }, }; - const request = new IPCRequest('hello', 'world', myWindow); + new IPCRequest('hello', 'world', myWindow); }); - test('IPCRequest objects resolve to the value posted via a response message port', async function(assert) { + test('IPCRequest objects resolve to the value posted via a response message port', async function (assert) { assert.expect(1); const myWindow = { - postMessage(request, origin, [ port ]) { + postMessage(request, origin, [port]) { // Post back a message on the response port port.postMessage({ foo: 'bar', - test: 42 + test: 42, }); - } + }, }; const request = new IPCRequest('hello', 'world', myWindow); const response = await request; assert.deepEqual(response, { foo: 'bar', - test: 42 + test: 42, }); }); - }); diff --git a/ui/desktop/tests/unit/services/scope-test.js b/ui/desktop/tests/unit/services/scope-test.js index 95493c0b4..df15e7547 100644 --- a/ui/desktop/tests/unit/services/scope-test.js +++ b/ui/desktop/tests/unit/services/scope-test.js @@ -1,11 +1,11 @@ import { module, test } from 'qunit'; import { setupTest } from 'ember-qunit'; -module('Unit | Service | scope', function(hooks) { +module('Unit | Service | scope', function (hooks) { setupTest(hooks); // TODO: Replace this with your real tests. - test('it exists', function(assert) { + test('it exists', function (assert) { let service = this.owner.lookup('service:scope'); assert.ok(service); }); diff --git a/ui/desktop/translations/form/en-us.yaml b/ui/desktop/translations/form/en-us.yaml index cb3590c05..b126880d9 100644 --- a/ui/desktop/translations/form/en-us.yaml +++ b/ui/desktop/translations/form/en-us.yaml @@ -8,4 +8,6 @@ description: help: Description for identification purposes type: label: Type - help: The type of the resource, to help differentiate schemas \ No newline at end of file + help: The type of the resource, to help differentiate schemas +project: + label: Project diff --git a/ui/desktop/translations/resources/en-us.yaml b/ui/desktop/translations/resources/en-us.yaml index 01e8eef0f..22e1826b1 100644 --- a/ui/desktop/translations/resources/en-us.yaml +++ b/ui/desktop/translations/resources/en-us.yaml @@ -5,4 +5,9 @@ scope: title: Global target: title: Target - title_plural: Targets \ No newline at end of file + title_plural: Targets +session: + title: Session + title_plural: Sessions + actions: + connect: Connect diff --git a/yarn.lock b/yarn.lock index 0b34487e5..523c39154 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2836,9 +2836,9 @@ "@types/range-parser" "*" "@types/express@^4.17.2": - version "4.17.8" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.8.tgz#3df4293293317e61c60137d273a2e96cd8d5f27a" - integrity sha512-wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ== + version "4.17.9" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78" + integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "*" @@ -3080,9 +3080,9 @@ "@types/node" "*" "@types/serve-static@*": - version "1.13.6" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.6.tgz#866b1b8dec41c36e28c7be40ac725b88be43c5c1" - integrity sha512-nuRJmv7jW7VmCVTn+IgYDkkbbDGyIINOeu/G0d74X3lm6E5KfMeQPJhxIt1ayQeQB3cSxvYs1RA/wipYoFB4EA== + version "1.13.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.7.tgz#e51b51a0becda910f9fd04c718044da69d6c492e" + integrity sha512-3diZWucbR+xTmbDlU+FRRxBf+31OhFew7cJXML/zh9NmvSPTNoFecAwHB66BUqFgENJtqMiyl7JAwUE/siqdLw== dependencies: "@types/mime" "*" "@types/node" "*" @@ -3129,9 +3129,9 @@ source-map "^0.7.3" "@types/webpack@^4.41.8": - version "4.41.24" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.24.tgz#75b664abe3d5bcfe54e64313ca3b43e498550422" - integrity sha512-1A0MXPwZiMOD3DPMuOKUKcpkdPo8Lq33UGggZ7xio6wJ/jV1dAu5cXDrOfGDnldUroPIRLsr/DT43/GqOA4RFQ== + version "4.41.25" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4" + integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -4213,13 +4213,13 @@ babel-helpers@^6.24.1: babel-template "^6.24.1" babel-loader@^8.0.6, babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + version "8.2.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.1.tgz#e53313254677e86f27536f5071d807e01d24ec00" + integrity sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw== dependencies: find-cache-dir "^2.1.0" loader-utils "^1.4.0" - mkdirp "^0.5.3" + make-dir "^2.1.0" pify "^4.0.1" schema-utils "^2.6.5" @@ -4942,9 +4942,9 @@ base64-js@0.0.2: integrity sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q= base64-js@^1.0.2, base64-js@^1.2.3: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64id@2.0.0: version "2.0.0" @@ -5069,7 +5069,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.1: +bn.js@^5.0.0, bn.js@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== @@ -5905,11 +5905,11 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -6341,9 +6341,9 @@ caseless@~0.11.0: integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c= ccount@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" - integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -6420,7 +6420,7 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -"chokidar@>=2.0.0 <4.0.0": +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1: version "3.4.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== @@ -6454,21 +6454,6 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.3.0, chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.3, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -8071,9 +8056,9 @@ electron-rebuild@^2.0.0: yargs "^16.0.0" electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.591: - version "1.3.591" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz#a18892bf1acb93f7b6e4da402705d564bc235017" - integrity sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw== + version "1.3.593" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.593.tgz#947ccf6dc8e013e2b053d2463ecd1043c164fcef" + integrity sha512-GvO7G1ZxvffnMvPCr4A7+iQPVuvpyqMrx2VWSERAjG+pHK6tmO9XqYdBfMIq9corRyi4bNImSDEiDvIoDb8HrA== element-resize-detector@^1.2.1: version "1.2.1" @@ -8613,7 +8598,7 @@ ember-cli-version-checker@^1.0.2: dependencies: semver "^5.3.0" -ember-cli-version-checker@^2.0.0, ember-cli-version-checker@^2.1.0, ember-cli-version-checker@^2.1.1, ember-cli-version-checker@^2.1.2: +ember-cli-version-checker@^2.0.0, ember-cli-version-checker@^2.1.0, ember-cli-version-checker@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-2.2.0.tgz#47771b731fe0962705e27c8199a9e3825709f3b3" integrity sha512-G+KtYIVlSOWGcNaTFHk76xR4GdzDLzAS4uxZUKdASuFX0KJE43C6DaqL+y3VTpUFLI2FIkAS6HZ4I1YBi+S3hg== @@ -8734,12 +8719,12 @@ ember-cli@~3.20.2: yam "^1.0.0" ember-compatibility-helpers@^1.1.1, ember-compatibility-helpers@^1.1.2, ember-compatibility-helpers@^1.2.0, ember-compatibility-helpers@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ember-compatibility-helpers/-/ember-compatibility-helpers-1.2.1.tgz#87c92c4303f990ff455c28ca39fb3ee11441aa16" - integrity sha512-6wzYvnhg1ihQUT5yGqnLtleq3Nv5KNv79WhrEuNU9SwR4uIxCO+KpyC7r3d5VI0EM7/Nmv9Nd0yTkzmTMdVG1A== + version "1.2.2" + resolved "https://registry.yarnpkg.com/ember-compatibility-helpers/-/ember-compatibility-helpers-1.2.2.tgz#839e0c24190b7a2ec8c39b80e030811b1a95b6d3" + integrity sha512-EKyCGOGBvKkBsk6wKfg3GhjTvTTkcEwzl/cv4VYvZM18cihmjGNpliR4BymWsKRWrv4VJLyq15Vhk3NHkSNBag== dependencies: babel-plugin-debug-macros "^0.2.0" - ember-cli-version-checker "^2.1.1" + ember-cli-version-checker "^5.1.1" semver "^5.4.1" ember-concurrency@^0.10.0: @@ -9186,9 +9171,9 @@ ember-source-channel-url@^2.0.1: got "^8.0.1" ember-source@~3.20.2: - version "3.20.5" - resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.20.5.tgz#84f166eb06b7073ef0c51444b768b953d0382463" - integrity sha512-GDfkvTgle8YTs9UNZGJEADJDAmRvXlmttlBBdObo9K1UtumJzQM7WjENWd2Blrazir5WBhB6J2ukDARCEolPaw== + version "3.20.6" + resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.20.6.tgz#c2aa4cee386436214b4b3ed84a71becfe815fa12" + integrity sha512-THimwJmimckNdumSg0M5URQTRlXAArEhe2ricCIuYesMwyX9HwZSUMS+IbXALzktGZU8qfEqyWNXxpmQ8ThJLA== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" @@ -9215,7 +9200,7 @@ ember-source@~3.20.2: semver "^6.1.1" silent-error "^1.1.1" -ember-template-lint@^2.0.1, ember-template-lint@^2.9.1: +ember-template-lint@^2.0.1, ember-template-lint@^2.14.0, ember-template-lint@^2.9.1: version "2.14.0" resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.14.0.tgz#8b52b23e9237a730de9808a43f75100455fadcee" integrity sha512-psRhYfw894mp6tF2Vv9gBbpHJwKz2dyEEwsL/zX1ksWGo7vQ4vAqrqPuLtCi/NPpoFnTr2VaCCK7xvef+fZ3MA== @@ -11113,9 +11098,9 @@ getpass@^0.1.1: assert-plus "^1.0.0" git-cz@^4.3.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.1.tgz#90edaa8dba1ec8be689b22fbf8d006c44b21b31f" - integrity sha512-Emb/Xz/LcL3SGxA/PD6RUrhUT6m2v0O9nWTjwCBAoE2UXxj9HkJcfphL3RkePtiTNFkVZMk0q5EUfHnO7HAfiw== + version "4.7.3" + resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.3.tgz#2dc67b0231937946f602fd0320f6c983c40f7071" + integrity sha512-Z+iy1G5qsbICeHBj4EZI438C8T1bh+m953jTT5hcQZggzSnjDdrUahM7O+ETspr3f3iWXONqC8e+zMuDT+ODJg== git-diff-apply@0.22.7: version "0.22.7" @@ -11895,14 +11880,7 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.8: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -hosted-git-info@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" - integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== - dependencies: - lru-cache "^6.0.0" - -hosted-git-info@^3.0.6: +hosted-git-info@^3.0.2, hosted-git-info@^3.0.6: version "3.0.7" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== @@ -12552,12 +12530,7 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-callable@^1.2.2: +is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== @@ -12583,7 +12556,7 @@ is-cidr@^3.0.0: dependencies: cidr-regex "^2.0.10" -is-core-module@^2.0.0: +is-core-module@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== @@ -15460,7 +15433,7 @@ npm-package-arg@^7.0.0: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^8.0.0: +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.0.tgz#b5f6319418c3246a1c38e1a8fbaa06231bc5308f" integrity sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig== @@ -15469,15 +15442,6 @@ npm-package-arg@^8.0.0: semver "^7.0.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.0.1.tgz#9d76f8d7667b2373ffda60bb801a27ef71e3e270" - integrity sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ== - dependencies: - hosted-git-info "^3.0.2" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.6, npm-packlist@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" @@ -15899,7 +15863,7 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^7.0.0, open@^7.2.0: +open@^7.0.0, open@^7.0.2, open@^7.0.3, open@^7.2.0: version "7.3.0" resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== @@ -15907,22 +15871,6 @@ open@^7.0.0, open@^7.2.0: is-docker "^2.0.0" is-wsl "^2.1.1" -open@^7.0.2: - version "7.2.1" - resolved "https://registry.yarnpkg.com/open/-/open-7.2.1.tgz#07b0ade11a43f2a8ce718480bdf3d7563a095195" - integrity sha512-xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -open@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/open/-/open-7.0.4.tgz#c28a9d315e5c98340bf979fdcb2e58664aa10d83" - integrity sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - opener@^1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -17103,12 +17051,14 @@ quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8: underscore.string "~3.3.4" qunit-dom@^1.2.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/qunit-dom/-/qunit-dom-1.5.0.tgz#f3e062562c18fb354b7657afd31890d89a24691d" - integrity sha512-VTFApYbzcYkL5Zg7XgZMgLgMI9JXEX+lwBS5bFy5hRkIaz9V38q7rN44svxFBNHWs96y3UaFaAYpOEmlQ0j+fw== + version "1.6.0" + resolved "https://registry.yarnpkg.com/qunit-dom/-/qunit-dom-1.6.0.tgz#a4bea6a46329d221e4a317d712cb40709107b977" + integrity sha512-YwSqcLjQcRI0fUFpaSWwU10KIJPFW5Qh+d3cT5DOgx81dypRuUSiPkKFmBY/CDs/R1KdHRadthkcXg2rqAon8Q== dependencies: broccoli-funnel "^3.0.3" broccoli-merge-trees "^4.2.0" + ember-cli-babel "^7.23.0" + ember-cli-version-checker "^5.1.1" qunit@^2.9.3: version "2.12.0" @@ -17434,7 +17384,7 @@ read-package-json-fast@^1.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -"read-package-json@1 || 2", read-package-json@^2.0.13, read-package-json@^2.1.1: +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13, read-package-json@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a" integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA== @@ -17444,18 +17394,6 @@ read-package-json-fast@^1.0.3: normalize-package-data "^2.0.0" npm-normalize-package-bin "^1.0.0" -read-package-json@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" - integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== - dependencies: - glob "^7.1.1" - json-parse-better-errors "^1.0.1" - normalize-package-data "^2.0.0" - npm-normalize-package-bin "^1.0.0" - optionalDependencies: - graceful-fs "^4.1.2" - read-package-tree@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" @@ -17576,13 +17514,6 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - readdirp@~3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" @@ -17746,9 +17677,9 @@ registry-auth-token@^3.0.1: safe-buffer "^5.0.1" registry-auth-token@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" - integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== dependencies: rc "^1.2.8" @@ -18100,11 +18031,11 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.7.1, resolve@^1.8.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" - integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: - is-core-module "^2.0.0" + is-core-module "^2.1.0" path-parse "^1.0.6" responselike@1.0.2, responselike@^1.0.2: @@ -19611,9 +19542,9 @@ tar@^6.0.2, tar@^6.0.5: yallist "^4.0.0" telejson@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/telejson/-/telejson-5.0.2.tgz#ed1e64be250cc1c757a53c19e1740b49832b3d51" - integrity sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw== + version "5.1.0" + resolved "https://registry.yarnpkg.com/telejson/-/telejson-5.1.0.tgz#cc04e4c2a355f9eb6af557e37acd6449feb1d146" + integrity sha512-Yy0N2OV0mosmr1SCZEm3Ezhu/oi5Dbao5RqauZu4+VI5I/XtVBHXajRk0txuqbFYtKdzzWGDZFGSif9ovVLjEA== dependencies: "@types/is-function" "^1.0.0" global "^4.4.0" @@ -19621,7 +19552,7 @@ telejson@^5.0.2: is-regex "^1.1.1" is-symbol "^1.0.3" isobject "^4.0.0" - lodash "^4.17.19" + lodash "^4.17.20" memoizerific "^1.11.3" temp@0.9.1: @@ -20847,23 +20778,23 @@ watch-detector@^1.0.0: silent-error "^1.1.1" tmp "^0.1.0" -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" + watchpack-chokidar2 "^2.0.1" wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1"