diff --git a/addons/api/.editorconfig b/addons/api/.editorconfig
index c35a00240..41302d1b0 100644
--- a/addons/api/.editorconfig
+++ b/addons/api/.editorconfig
@@ -12,8 +12,5 @@ insert_final_newline = true
indent_style = space
indent_size = 2
-[*.hbs]
-insert_final_newline = false
-
[*.{diff,md}]
trim_trailing_whitespace = false
diff --git a/addons/api/.eslintrc.js b/addons/api/.eslintrc.js
index 49fb14100..114c6817f 100644
--- a/addons/api/.eslintrc.js
+++ b/addons/api/.eslintrc.js
@@ -56,5 +56,10 @@ module.exports = {
plugins: ['node'],
extends: ['plugin:node/recommended'],
},
+ {
+ // Test files:
+ files: ['tests/**/*-test.{js,ts}'],
+ extends: ['plugin:qunit/recommended'],
+ },
],
};
diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js
index b1481adf9..213f71d33 100644
--- a/addons/api/mirage/config.js
+++ b/addons/api/mirage/config.js
@@ -1,4 +1,3 @@
-import Ember from 'ember';
import config from '../config/environment';
import { authHandler, deauthHandler } from './route-handlers/auth';
import { pickRandomStatusString } from './factories/session';
@@ -6,6 +5,8 @@ import { Response } from 'miragejs';
import initializeMockIPC from './scenarios/ipc';
import makeBooleanFilter from './helpers/bexpr-filter';
+const isTesting = config.environment === 'test';
+
export default function () {
initializeMockIPC(this);
@@ -417,7 +418,7 @@ export default function () {
// update alternate sessions to auth user.
// But only if not in testing mode.
// In tests, we need deterministic statuses.
- if (!Ember.testing) {
+ if (!isTesting) {
sessions.all().models.forEach((session) => {
session.update({
status: pickRandomStatusString(),
@@ -446,7 +447,7 @@ export default function () {
);
this.get('/sessions/:id', function ({ sessions }, { params: { id } }) {
const session = sessions.find(id);
- if (!Ember.testing) {
+ if (!isTesting) {
session.update({
status: pickRandomStatusString(),
});
diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js
index 6e44988e4..0c01a656e 100644
--- a/addons/api/mirage/scenarios/ipc.js
+++ b/addons/api/mirage/scenarios/ipc.js
@@ -1,7 +1,8 @@
-import Ember from 'ember';
import config from 'ember-get-config';
import { datatype } from 'faker';
+const isTesting = config.environment === 'test';
+
export default function initializeMockIPC(server) {
/**
* We strive to make this application runnable in a regular web browser, since
@@ -149,7 +150,7 @@ export default function initializeMockIPC(server) {
*
* Initializes mock IPC only in a non-Electron non-testing context.
*/
- if (!config.isElectron && !Ember.testing) {
+ if (!config.isElectron && !isTesting) {
const mockIPC = new MockIPC();
window.addEventListener('message', async function (event) {
if (event.origin !== window.location.origin) return;
diff --git a/addons/api/package.json b/addons/api/package.json
index 1012dd943..2fcc5ae78 100644
--- a/addons/api/package.json
+++ b/addons/api/package.json
@@ -43,12 +43,11 @@
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.2",
- "ember-cli-update": "^0.54.6",
"ember-copy": "^2.0.1",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-export-application-global": "^2.0.1",
@@ -58,7 +57,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
@@ -67,6 +66,7 @@
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-qunit": "^6.2.0",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.4.0",
@@ -74,7 +74,7 @@
"qunit-dom": "^2.0.0"
},
"engines": {
- "node": ">=10 <=15"
+ "node": ">=12 <=17"
},
"ember": {
"edition": "octane"
diff --git a/addons/api/tests/unit/models/base-test.js b/addons/api/tests/unit/models/base-test.js
index 228f47782..8e320cfdf 100644
--- a/addons/api/tests/unit/models/base-test.js
+++ b/addons/api/tests/unit/models/base-test.js
@@ -47,7 +47,7 @@ module('Unit | Model | base', function (hooks) {
assert.notEqual(model.scopeID, scope.id);
model.scopeModel = scope;
assert.equal(model.scopeID, scope.id);
- assert.equal(model.scope.isOrg, true);
+ assert.true(model.scope.isOrg);
});
test('it has a displayName attribute', function (assert) {
@@ -78,18 +78,18 @@ module('Unit | Model | base', function (hooks) {
},
});
const model = store.peekRecord('user', '1');
- assert.equal(model.canSave, false);
- assert.equal(model.cannotSave, true);
+ assert.false(model.canSave);
+ assert.true(model.cannotSave);
// Should be able to save if dirty
model.name = 'User';
- assert.equal(model.hasDirtyAttributes, true);
- assert.equal(model.canSave, true);
- assert.equal(model.cannotSave, false);
+ assert.true(model.hasDirtyAttributes);
+ assert.true(model.canSave);
+ assert.false(model.cannotSave);
// Should not be able to save while currently saving
model.transitionTo('updated.inFlight');
- assert.equal(model.isSaving, true);
- assert.equal(model.canSave, false);
- assert.equal(model.cannotSave, true);
+ assert.true(model.isSaving);
+ assert.false(model.canSave);
+ assert.true(model.cannotSave);
model.transitionTo('loaded');
});
diff --git a/addons/api/tests/unit/services/storage-test.js b/addons/api/tests/unit/services/storage-test.js
index 61702c765..5b955dc21 100644
--- a/addons/api/tests/unit/services/storage-test.js
+++ b/addons/api/tests/unit/services/storage-test.js
@@ -30,7 +30,7 @@ module('Unit | Service | storage', function (hooks) {
assert.equal(service.getItem('foo'), 'bar');
});
- test("it's in-memory storage is implicitly refreshed for every test case", function (assert) {
+ test("it's in-memory storage is implicitly refreshed for every test case, and thus values from previous runs are not present", function (assert) {
assert.expect(1);
const service = this.owner.lookup('service:storage');
assert.notOk(service.getItem('foo'));
diff --git a/addons/auth/.editorconfig b/addons/auth/.editorconfig
index c35a00240..41302d1b0 100644
--- a/addons/auth/.editorconfig
+++ b/addons/auth/.editorconfig
@@ -12,8 +12,5 @@ insert_final_newline = true
indent_style = space
indent_size = 2
-[*.hbs]
-insert_final_newline = false
-
[*.{diff,md}]
trim_trailing_whitespace = false
diff --git a/addons/auth/.eslintrc.js b/addons/auth/.eslintrc.js
index 49fb14100..114c6817f 100644
--- a/addons/auth/.eslintrc.js
+++ b/addons/auth/.eslintrc.js
@@ -56,5 +56,10 @@ module.exports = {
plugins: ['node'],
extends: ['plugin:node/recommended'],
},
+ {
+ // Test files:
+ files: ['tests/**/*-test.{js,ts}'],
+ extends: ['plugin:qunit/recommended'],
+ },
],
};
diff --git a/addons/auth/package.json b/addons/auth/package.json
index d47105134..bc19d30ec 100644
--- a/addons/auth/package.json
+++ b/addons/auth/package.json
@@ -36,12 +36,11 @@
"core": "*",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.2",
- "ember-cli-update": "^0.54.6",
"ember-cookies": "^0.5.2",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-export-application-global": "^2.0.1",
@@ -50,7 +49,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
@@ -59,6 +58,7 @@
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-qunit": "^6.2.0",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.4.0",
@@ -66,7 +66,7 @@
"qunit-dom": "^2.0.0"
},
"engines": {
- "node": ">=10 <=15"
+ "node": ">=12 <=17"
},
"ember": {
"edition": "octane"
diff --git a/addons/core/.editorconfig b/addons/core/.editorconfig
index c35a00240..41302d1b0 100644
--- a/addons/core/.editorconfig
+++ b/addons/core/.editorconfig
@@ -12,8 +12,5 @@ insert_final_newline = true
indent_style = space
indent_size = 2
-[*.hbs]
-insert_final_newline = false
-
[*.{diff,md}]
trim_trailing_whitespace = false
diff --git a/addons/core/.eslintrc.js b/addons/core/.eslintrc.js
index 49fb14100..114c6817f 100644
--- a/addons/core/.eslintrc.js
+++ b/addons/core/.eslintrc.js
@@ -56,5 +56,10 @@ module.exports = {
plugins: ['node'],
extends: ['plugin:node/recommended'],
},
+ {
+ // Test files:
+ files: ['tests/**/*-test.{js,ts}'],
+ extends: ['plugin:qunit/recommended'],
+ },
],
};
diff --git a/addons/core/package.json b/addons/core/package.json
index 199973f38..c12f03dcd 100644
--- a/addons/core/package.json
+++ b/addons/core/package.json
@@ -50,7 +50,7 @@
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
@@ -63,7 +63,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
@@ -72,6 +72,7 @@
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-qunit": "^6.2.0",
"faker": "^5.5.3",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
@@ -80,7 +81,7 @@
"qunit-dom": "^2.0.0"
},
"engines": {
- "node": ">=10 <=15"
+ "node": ">=12 <=17"
},
"ember": {
"edition": "octane"
diff --git a/addons/rose/.editorconfig b/addons/rose/.editorconfig
index c35a00240..41302d1b0 100644
--- a/addons/rose/.editorconfig
+++ b/addons/rose/.editorconfig
@@ -12,8 +12,5 @@ insert_final_newline = true
indent_style = space
indent_size = 2
-[*.hbs]
-insert_final_newline = false
-
[*.{diff,md}]
trim_trailing_whitespace = false
diff --git a/addons/rose/.eslintrc.js b/addons/rose/.eslintrc.js
index bdb867ae9..46de42474 100644
--- a/addons/rose/.eslintrc.js
+++ b/addons/rose/.eslintrc.js
@@ -58,5 +58,10 @@ module.exports = {
plugins: ['node'],
extends: ['plugin:node/recommended'],
},
+ {
+ // Test files:
+ files: ['tests/**/*-test.{js,ts}'],
+ extends: ['plugin:qunit/recommended'],
+ },
],
};
diff --git a/addons/rose/addon/components/rose/dropdown/link/index.hbs b/addons/rose/addon/components/rose/dropdown/link/index.hbs
index f4c2623f8..a7593fe8d 100644
--- a/addons/rose/addon/components/rose/dropdown/link/index.hbs
+++ b/addons/rose/addon/components/rose/dropdown/link/index.hbs
@@ -1,20 +1,46 @@
+{{!
+ Ember's LinkTo component won't accept nullish @query or @model, so we have to
+ overcompensate by duplicating it four times, one for every combination.
+ This is really unpleasant.
+}}
{{#if @model}}
-
- {{yield}}
-
+ {{#if @query}}
+
+ {{yield}}
+
+ {{else}}
+
+ {{yield}}
+
+ {{/if}}
{{else}}
-
- {{yield}}
-
+ {{#if @query}}
+
+ {{yield}}
+
+ {{else}}
+
+ {{yield}}
+
+ {{/if}}
{{/if}}
diff --git a/addons/rose/package.json b/addons/rose/package.json
index 7cb043175..8d9f8b7d8 100644
--- a/addons/rose/package.json
+++ b/addons/rose/package.json
@@ -58,13 +58,12 @@
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sass": "^10.0.1",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.2",
- "ember-cli-update": "^0.54.6",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-export-application-global": "^2.0.1",
"ember-inline-svg": "^1.0.0",
@@ -74,7 +73,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
@@ -83,6 +82,7 @@
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-qunit": "^6.2.0",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.4.0",
@@ -94,7 +94,7 @@
"sass-lint": "^1.13.1"
},
"engines": {
- "node": ">=10 <=15"
+ "node": ">=12 <=17"
},
"ember": {
"edition": "octane"
diff --git a/addons/rose/tests/integration/components/rose/badge-test.js b/addons/rose/tests/integration/components/rose/badge-test.js
index 56810d21b..f006308ee 100644
--- a/addons/rose/tests/integration/components/rose/badge-test.js
+++ b/addons/rose/tests/integration/components/rose/badge-test.js
@@ -22,7 +22,8 @@ module('Integration | Component | rose/badge', function (hooks) {
});
test('it styles content using @style', async function (assert) {
- let styles = [
+ assert.expect(14);
+ const styles = [
'outline',
'dark',
'informational',
diff --git a/addons/rose/tests/integration/components/rose/button-test.js b/addons/rose/tests/integration/components/rose/button-test.js
index 90cc10589..e5a685be5 100644
--- a/addons/rose/tests/integration/components/rose/button-test.js
+++ b/addons/rose/tests/integration/components/rose/button-test.js
@@ -23,7 +23,7 @@ module('Integration | Component | rose/button', function (hooks) {
test('it is disabled when @disabled={{true}}', async function (assert) {
await render(hbs``);
- assert.equal(find('button').disabled, true);
+ assert.true(find('button').disabled);
});
test('it adds a style class', async function (assert) {
diff --git a/addons/rose/tests/integration/components/rose/dropdown/button-test.js b/addons/rose/tests/integration/components/rose/dropdown/button-test.js
index b0bd48eb5..92129e5a7 100644
--- a/addons/rose/tests/integration/components/rose/dropdown/button-test.js
+++ b/addons/rose/tests/integration/components/rose/dropdown/button-test.js
@@ -23,7 +23,7 @@ module('Integration | Component | rose/dropdown/button', function (hooks) {
test('it is disabled when @disabled={{true}}', async function (assert) {
await render(hbs``);
- assert.equal(find('button').disabled, true);
+ assert.true(find('button').disabled);
});
test('it adds a style class', async function (assert) {
diff --git a/addons/rose/tests/integration/components/rose/form/checkbox-test.js b/addons/rose/tests/integration/components/rose/form/checkbox-test.js
index 594704918..cd131f0b1 100644
--- a/addons/rose/tests/integration/components/rose/form/checkbox-test.js
+++ b/addons/rose/tests/integration/components/rose/form/checkbox-test.js
@@ -60,17 +60,17 @@ module('Integration | Component | rose/form/checkbox', function (hooks) {
test('it is not checked by default', async function (assert) {
await render(hbs``);
- assert.equal(find('input').checked, false);
+ assert.false(find('input').checked);
});
test('it is not disabled by default', async function (assert) {
await render(hbs``);
- assert.equal(find('input').disabled, false);
+ assert.false(find('input').disabled);
});
test('it is checked when @checked={{true}}', async function (assert) {
await render(hbs``);
- assert.equal(find('input').checked, true);
+ assert.true(find('input').checked);
});
test('it marks error when @error={{true}}', async function (assert) {
@@ -80,6 +80,6 @@ module('Integration | Component | rose/form/checkbox', function (hooks) {
test('it is disabled when @disabled={{true}}', async function (assert) {
await render(hbs``);
- assert.equal(find('input').disabled, true);
+ assert.true(find('input').disabled);
});
});
diff --git a/addons/rose/tests/integration/components/rose/form/radio/group-test.js b/addons/rose/tests/integration/components/rose/form/radio/group-test.js
index dfd2e4bce..4354004e7 100644
--- a/addons/rose/tests/integration/components/rose/form/radio/group-test.js
+++ b/addons/rose/tests/integration/components/rose/form/radio/group-test.js
@@ -43,13 +43,13 @@ module('Integration | Component | rose/form/radio/group', function (hooks) {
`);
- assert.equal(findAll('[type="radio"]')[0].checked, false);
- assert.equal(findAll('[type="radio"]')[1].checked, true);
+ assert.false(findAll('[type="radio"]')[0].checked);
+ assert.true(findAll('[type="radio"]')[1].checked);
await click(findAll('[type="radio"]')[0]);
- assert.equal(findAll('[type="radio"]')[0].checked, true);
- assert.equal(findAll('[type="radio"]')[1].checked, false);
+ assert.true(findAll('[type="radio"]')[0].checked);
+ assert.false(findAll('[type="radio"]')[1].checked);
});
test('it reflects active radiofield value in @selectedValue and triggers a @changed function', async function (assert) {
@@ -100,19 +100,19 @@ module('Integration | Component | rose/form/radio/group', function (hooks) {
`);
- assert.equal(findAll('[type="radio"]')[0].checked, false);
- assert.equal(findAll('[type="radio"]')[1].checked, false);
+ assert.false(findAll('[type="radio"]')[0].checked);
+ assert.false(findAll('[type="radio"]')[1].checked);
this.set('selectedValue', 'flamingo');
- assert.equal(findAll('[type="radio"]')[0].checked, false);
- assert.equal(findAll('[type="radio"]')[1].checked, true);
+ assert.false(findAll('[type="radio"]')[0].checked);
+ assert.true(findAll('[type="radio"]')[1].checked);
this.set('selectedValue', 'pegion');
- assert.equal(findAll('[type="radio"]')[0].checked, true);
- assert.equal(findAll('[type="radio"]')[1].checked, false);
+ assert.true(findAll('[type="radio"]')[0].checked);
+ assert.false(findAll('[type="radio"]')[1].checked);
this.set('selectedValue', 'dog');
- assert.equal(findAll('[type="radio"]')[0].checked, false);
- assert.equal(findAll('[type="radio"]')[1].checked, false);
+ assert.false(findAll('[type="radio"]')[0].checked);
+ assert.false(findAll('[type="radio"]')[1].checked);
});
});
diff --git a/addons/rose/tests/integration/components/rose/form/radio/radio-test.js b/addons/rose/tests/integration/components/rose/form/radio/radio-test.js
index 56c8caebc..af0be8d54 100644
--- a/addons/rose/tests/integration/components/rose/form/radio/radio-test.js
+++ b/addons/rose/tests/integration/components/rose/form/radio/radio-test.js
@@ -28,25 +28,25 @@ module('Integration | Component | rose/form/radio/radio', function (hooks) {
await render(
hbs``
);
- assert.equal(await find('input').checked, true);
+ assert.true(await find('input').checked);
});
test('it is not checked when @value and @selectedValue values are different', async function (assert) {
await render(hbs``);
- assert.equal(await find('input').checked, false);
+ assert.false(await find('input').checked);
await render(hbs``);
- assert.equal(await find('input').checked, false);
+ assert.false(await find('input').checked);
await render(
hbs``
);
- assert.equal(await find('input').checked, false);
+ assert.false(await find('input').checked);
});
test('it is not disabled by default', async function (assert) {
await render(hbs``);
- assert.equal(await find('input').disabled, false);
+ assert.false(await find('input').disabled);
});
test('it is not in error state by default', async function (assert) {
@@ -56,7 +56,7 @@ module('Integration | Component | rose/form/radio/radio', function (hooks) {
test('it is disabled when @disabled={{true}}', async function (assert) {
await render(hbs``);
- assert.equal(await find('input').disabled, true);
+ assert.true(await find('input').disabled);
});
test('it is in error state when @error={{true}}', async function (assert) {
diff --git a/addons/rose/tests/integration/modifiers/on-click-outside-test.js b/addons/rose/tests/integration/modifiers/on-click-outside-test.js
index 7318ef423..294134263 100644
--- a/addons/rose/tests/integration/modifiers/on-click-outside-test.js
+++ b/addons/rose/tests/integration/modifiers/on-click-outside-test.js
@@ -7,6 +7,7 @@ module('Integration | Modifier | on-click-outside', function (hooks) {
setupRenderingTest(hooks);
test('it fires event when an outside element is clicked', async function (assert) {
+ assert.expect(2);
this.set('clickedOutside', (element, event) => {
assert.ok(element);
assert.equal(event.target.id, 'outside');
diff --git a/package.json b/package.json
index cef044455..275cf5d0a 100755
--- a/package.json
+++ b/package.json
@@ -89,6 +89,6 @@
}
},
"engines": {
- "node": ">=10 <=15"
+ "node": ">=12 <=17"
}
}
diff --git a/ui/admin/.editorconfig b/ui/admin/.editorconfig
index c35a00240..41302d1b0 100644
--- a/ui/admin/.editorconfig
+++ b/ui/admin/.editorconfig
@@ -12,8 +12,5 @@ insert_final_newline = true
indent_style = space
indent_size = 2
-[*.hbs]
-insert_final_newline = false
-
[*.{diff,md}]
trim_trailing_whitespace = false
diff --git a/ui/admin/.eslintrc.js b/ui/admin/.eslintrc.js
index 5062441ff..c926d2400 100644
--- a/ui/admin/.eslintrc.js
+++ b/ui/admin/.eslintrc.js
@@ -55,5 +55,10 @@ module.exports = {
'node/no-unpublished-require': 'off',
},
},
+ {
+ // Test files:
+ files: ['tests/**/*-test.{js,ts}'],
+ extends: ['plugin:qunit/recommended'],
+ },
],
};
diff --git a/ui/admin/package.json b/ui/admin/package.json
index 215991910..8351cc0e5 100644
--- a/ui/admin/package.json
+++ b/ui/admin/package.json
@@ -51,7 +51,7 @@
"ember-a11y-testing": "^4.2.0",
"ember-auto-import": "^1.12.0",
"ember-breadcrumbs": "^0.2.3",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-app-version": "^5.0.0",
"ember-cli-babel": "^7.26.6",
"ember-cli-code-coverage": "^1.0.3",
@@ -63,7 +63,6 @@
"ember-cli-sri": "^2.1.1",
"ember-cli-template-lint": "^2.0.2",
"ember-cli-terser": "^4.0.2",
- "ember-cli-update": "^0.54.6",
"ember-concurrency": "^1.3.0",
"ember-exam": "^6.1.0",
"ember-export-application-global": "^2.0.1",
@@ -75,7 +74,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-template-lint": "^3.7.0",
"ember-template-lint-plugin-prettier": "^2.0.0",
"eslint": "^7.32.0",
@@ -83,6 +82,7 @@
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-qunit": "^6.2.0",
"faker": "^5.5.3",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
@@ -95,7 +95,7 @@
"sinon": "^11.1.2"
},
"engines": {
- "node": ">=10 <=15"
+ "node": ">=12 <=17"
},
"ember": {
"edition": "octane"
diff --git a/ui/admin/tests/acceptance/accounts/create-test.js b/ui/admin/tests/acceptance/accounts/create-test.js
index e68e69695..e852a5b64 100644
--- a/ui/admin/tests/acceptance/accounts/create-test.js
+++ b/ui/admin/tests/acceptance/accounts/create-test.js
@@ -150,12 +150,12 @@ module('Acceptance | accounts | create', function (hooks) {
await fillIn('[name="name"]', 'new account');
await click('form [type="submit"]');
await a11yAudit();
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/admin/tests/acceptance/accounts/delete-test.js b/ui/admin/tests/acceptance/accounts/delete-test.js
index 8b78b1834..da71a395a 100644
--- a/ui/admin/tests/acceptance/accounts/delete-test.js
+++ b/ui/admin/tests/acceptance/accounts/delete-test.js
@@ -93,8 +93,8 @@ module('Acceptance | accounts | delete', function (hooks) {
await visit(urls.account);
await click('.rose-layout-page-actions .rose-dropdown-button-danger');
await a11yAudit();
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'Oops.',
'Displays primary error message.'
);
diff --git a/ui/admin/tests/acceptance/accounts/set-password-test.js b/ui/admin/tests/acceptance/accounts/set-password-test.js
index 89f9ce3e7..67939ab83 100644
--- a/ui/admin/tests/acceptance/accounts/set-password-test.js
+++ b/ui/admin/tests/acceptance/accounts/set-password-test.js
@@ -100,13 +100,13 @@ module('Acceptance | accounts | set password', function (hooks) {
// NOTE: since set password is a tabbed route with easy navigation away
// from the form, and the form does not directly operate on a model instance,
// a "cancel" flow doesn't make much sense. Disabling for now.
- // test('can cancel setting new password', async function (assert) {
- // assert.expect(1);
- // await visit(urls.setPassword);
- // await fillIn('[name="password"]', 'update password');
- // await click('form button:not([type="submit"])');
- // assert.notOk(find('[name="password"]').textContent.trim());
- // });
+ test.skip('can cancel setting new password', async function (assert) {
+ assert.expect(1);
+ await visit(urls.setPassword);
+ await fillIn('[name="password"]', 'update password');
+ await click('form button:not([type="submit"])');
+ assert.notOk(find('[name="password"]').textContent.trim());
+ });
test('errors are displayed when setting password fails', async function (assert) {
assert.expect(1);
diff --git a/ui/admin/tests/acceptance/accounts/update-test.js b/ui/admin/tests/acceptance/accounts/update-test.js
index 163b7ac9e..139beeccf 100644
--- a/ui/admin/tests/acceptance/accounts/update-test.js
+++ b/ui/admin/tests/acceptance/accounts/update-test.js
@@ -103,8 +103,8 @@ module('Acceptance | accounts | update', function (hooks) {
await fillIn('[name="name"]', 'save account');
await click('form [type="submit"]');
await a11yAudit();
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'Oops.',
'Displays primary error message.'
);
@@ -136,12 +136,12 @@ module('Acceptance | accounts | update', function (hooks) {
await fillIn('[name="name"]', 'existing account');
await click('form [type="submit"]');
await a11yAudit();
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/admin/tests/acceptance/auth-methods/delete-test.js b/ui/admin/tests/acceptance/auth-methods/delete-test.js
index f80721f37..d2f32c18e 100644
--- a/ui/admin/tests/acceptance/auth-methods/delete-test.js
+++ b/ui/admin/tests/acceptance/auth-methods/delete-test.js
@@ -72,8 +72,8 @@ module('Acceptance | auth methods | delete', function (hooks) {
await visit(urls.authMethod);
await click('.rose-layout-page-actions .rose-dropdown-button-danger');
await a11yAudit();
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'Oops.',
'Displays primary error message.'
);
diff --git a/ui/admin/tests/acceptance/auth-methods/oidc-test.js b/ui/admin/tests/acceptance/auth-methods/oidc-test.js
index 3bc1f226b..ab37b1d62 100644
--- a/ui/admin/tests/acceptance/auth-methods/oidc-test.js
+++ b/ui/admin/tests/acceptance/auth-methods/oidc-test.js
@@ -102,38 +102,38 @@ module('Acceptance | auth methods | oidc', function (hooks) {
});
// FIXME: How to mock just one request routed to /auth-methods and let everything else passthrough?
- // test('errors are displayed when state update fails', async function (assert) {
- // assert.expect(2);
- // this.server.post('/auth-methods/:idMethod', (_, request) => {
- // // Only respond to state update with error
- // if (request.params.idMethod.match(/(change-state)/i)) {
- // return new Response(
- // 400,
- // {},
- // {
- // status: 400,
- // code: 'error',
- // message: 'Sorry!',
- // }
- // );
- // }
- // return request;
- // });
- // const newState = 'inactive';
- // await visit(urls.authMethod);
- // await click('.rose-layout-page-actions .rose-dropdown-trigger');
- // await click(`.rose-dropdown[open] input[value="${newState}"]`);
- // // debugger;
- // const authMethod = this.server.db.authMethods.find(instances.authMethod.id);
- // assert.notEqual(
- // newState,
- // authMethod.attributes.state,
- // 'Auth method state is not be updated.'
- // );
- // assert.ok(
- // find('[role="alert"]').textContent.trim(),
- // 'Sorry!',
- // 'Displays error message.'
- // );
- // });
+ test.skip('errors are displayed when state update fails', async function (assert) {
+ assert.expect(2);
+ this.server.post('/auth-methods/:idMethod', (_, request) => {
+ // Only respond to state update with error
+ if (request.params.idMethod.match(/(change-state)/i)) {
+ return new Response(
+ 400,
+ {},
+ {
+ status: 400,
+ code: 'error',
+ message: 'Sorry!',
+ }
+ );
+ }
+ return request;
+ });
+ const newState = 'inactive';
+ await visit(urls.authMethod);
+ await click('.rose-layout-page-actions .rose-dropdown-trigger');
+ await click(`.rose-dropdown[open] input[value="${newState}"]`);
+ // debugger;
+ const authMethod = this.server.db.authMethods.find(instances.authMethod.id);
+ assert.notEqual(
+ newState,
+ authMethod.attributes.state,
+ 'Auth method state is not be updated.'
+ );
+ assert.ok(
+ find('.rose-notification-body').textContent.trim(),
+ 'Sorry!',
+ 'Displays error message.'
+ );
+ });
});
diff --git a/ui/admin/tests/acceptance/auth-methods/update-test.js b/ui/admin/tests/acceptance/auth-methods/update-test.js
index 8060e4382..859b0ae57 100644
--- a/ui/admin/tests/acceptance/auth-methods/update-test.js
+++ b/ui/admin/tests/acceptance/auth-methods/update-test.js
@@ -102,50 +102,12 @@ module('Acceptance | auth methods | update', function (hooks) {
await fillIn('[name="name"]', 'existing auth method');
await click('form [type="submit"]');
await a11yAudit();
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
- find('.rose-form-error-message').textContent.trim(),
- 'Name is required.',
- 'Displays field-level errors.'
- );
- });
-
- test('saving an existing auth method with invalid fields displays error messages', async function (assert) {
- assert.expect(2);
- this.server.patch('/auth-methods/:id', () => {
- return new Response(
- 400,
- {},
- {
- status: 400,
- code: 'invalid_argument',
- message: 'The request was invalid.',
- details: {
- request_fields: [
- {
- name: 'name',
- description: 'Name is required.',
- },
- ],
- },
- }
- );
- });
- await visit(urls.authMethod);
- await click('form [type="button"]', 'Activate edit mode');
- await fillIn('[name="name"]', 'existing auth method');
- await click('form [type="submit"]');
- await a11yAudit();
- assert.ok(
- find('[role="alert"]').textContent.trim(),
- 'The request was invalid.',
- 'Displays primary error message.'
- );
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/admin/tests/acceptance/authentication-test.js b/ui/admin/tests/acceptance/authentication-test.js
index f42540f4f..3c1cedd48 100644
--- a/ui/admin/tests/acceptance/authentication-test.js
+++ b/ui/admin/tests/acceptance/authentication-test.js
@@ -5,7 +5,7 @@ import {
fillIn,
click,
find,
- //findAll,
+ findAll,
getRootElement,
//setupOnerror,
} from '@ember/test-helpers';
@@ -300,23 +300,23 @@ module('Acceptance | authentication', function (hooks) {
// This test is disabled because it is no longer relevant. On deauth,
// the page is reloaded. If the user was viewing a route requiring
// authentication, they will be redirected accordingly.
- // test('deauthentication redirects to first global authenticate method', async function (assert) {
- // assert.expect(3);
- // await visit(authMethodAuthenticateURL);
- // await fillIn('[name="identification"]', 'test');
- // await fillIn('[name="password"]', 'test');
- // await click('[type="submit"]');
- // assert.ok(currentSession().isAuthenticated);
- // // Open header utilities dropdown
- // await click('.rose-header-utilities .rose-dropdown summary');
- // // Find and click on last element in dropdown - should be deauthenticate button
- // const menu = findAll(
- // '.rose-header-utilities .rose-dropdown .rose-dropdown-content button'
- // );
- // await click(menu[menu.length - 1]);
- // assert.notOk(currentSession().isAuthenticated);
- // assert.equal(currentURL(), authMethodGlobalAuthenticateURL);
- // });
+ test.skip('deauthentication redirects to first global authenticate method', async function (assert) {
+ assert.expect(3);
+ await visit(authMethodAuthenticateURL);
+ await fillIn('[name="identification"]', 'test');
+ await fillIn('[name="password"]', 'test');
+ await click('[type="submit"]');
+ assert.ok(currentSession().isAuthenticated);
+ // Open header utilities dropdown
+ await click('.rose-header-utilities .rose-dropdown summary');
+ // Find and click on last element in dropdown - should be deauthenticate button
+ const menu = findAll(
+ '.rose-header-utilities .rose-dropdown .rose-dropdown-content button'
+ );
+ await click(menu[menu.length - 1]);
+ assert.notOk(currentSession().isAuthenticated);
+ assert.equal(currentURL(), authMethodGlobalAuthenticateURL);
+ });
test('401 responses result in deauthentication', async function (assert) {
assert.expect(2);
diff --git a/ui/admin/tests/acceptance/groups/create-test.js b/ui/admin/tests/acceptance/groups/create-test.js
index 815e4a760..d3cc5fffb 100644
--- a/ui/admin/tests/acceptance/groups/create-test.js
+++ b/ui/admin/tests/acceptance/groups/create-test.js
@@ -109,12 +109,12 @@ module('Acceptance | groups | create', function (hooks) {
await visit(urls.newGroup);
await fillIn('[name="name"]', 'group name');
await click('[type="submit"]');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/admin/tests/acceptance/groups/delete-test.js b/ui/admin/tests/acceptance/groups/delete-test.js
index c1dec7fdb..58f7498b1 100644
--- a/ui/admin/tests/acceptance/groups/delete-test.js
+++ b/ui/admin/tests/acceptance/groups/delete-test.js
@@ -76,8 +76,8 @@ module('Acceptance | groups | delete', function (hooks) {
});
await visit(urls.group);
await click('.rose-layout-page-actions .rose-dropdown-button-danger');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'Oops.',
'Displays primary error message.'
);
diff --git a/ui/admin/tests/acceptance/groups/update-test.js b/ui/admin/tests/acceptance/groups/update-test.js
index 6d39cefbe..696a88e48 100644
--- a/ui/admin/tests/acceptance/groups/update-test.js
+++ b/ui/admin/tests/acceptance/groups/update-test.js
@@ -95,12 +95,12 @@ module('Acceptance | groups | update', function (hooks) {
await click('form [type="button"]', 'Activate edit mode');
await fillIn('[name="name"]', 'random string');
await click('[type="submit"]');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/admin/tests/acceptance/roles/delete-test.js b/ui/admin/tests/acceptance/roles/delete-test.js
index a965ff63a..ba0363e1d 100644
--- a/ui/admin/tests/acceptance/roles/delete-test.js
+++ b/ui/admin/tests/acceptance/roles/delete-test.js
@@ -88,8 +88,8 @@ module('Acceptance | roles | delete', function (hooks) {
});
await visit(urls.role);
await click('.rose-layout-page-actions .rose-dropdown-button-danger');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'Oops.',
'Displays primary error message.'
);
diff --git a/ui/admin/tests/acceptance/roles/update-test.js b/ui/admin/tests/acceptance/roles/update-test.js
index 21737c705..aca161a54 100644
--- a/ui/admin/tests/acceptance/roles/update-test.js
+++ b/ui/admin/tests/acceptance/roles/update-test.js
@@ -107,12 +107,12 @@ module('Acceptance | roles | update', function (hooks) {
await click('form [type="button"]', 'Activate edit mode');
await fillIn('[name="name"]', 'random string');
await click('[type="submit"]');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/admin/tests/acceptance/users/create-test.js b/ui/admin/tests/acceptance/users/create-test.js
index b69a1f3df..12261e9f5 100644
--- a/ui/admin/tests/acceptance/users/create-test.js
+++ b/ui/admin/tests/acceptance/users/create-test.js
@@ -97,12 +97,12 @@ module('Acceptance | users | create', function (hooks) {
await visit(newUserURL);
await fillIn('[name="name"]', 'User name');
await click('[type="submit"]');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/admin/tests/acceptance/users/delete-test.js b/ui/admin/tests/acceptance/users/delete-test.js
index 14b5371fc..2146278f6 100644
--- a/ui/admin/tests/acceptance/users/delete-test.js
+++ b/ui/admin/tests/acceptance/users/delete-test.js
@@ -77,8 +77,8 @@ module('Acceptance | users | delete', function (hooks) {
});
await visit(userURL);
await click('.rose-layout-page-actions .rose-dropdown-button-danger');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'Oops.',
'Displays primary error message.'
);
diff --git a/ui/admin/tests/acceptance/users/update-test.js b/ui/admin/tests/acceptance/users/update-test.js
index 931a58641..f7f448156 100644
--- a/ui/admin/tests/acceptance/users/update-test.js
+++ b/ui/admin/tests/acceptance/users/update-test.js
@@ -96,12 +96,12 @@ module('Acceptance | users | update', function (hooks) {
await click('form [type="button"]', 'Activate edit mode');
await fillIn('[name="name"]', 'User name');
await click('[type="submit"]');
- assert.ok(
- find('[role="alert"]').textContent.trim(),
+ assert.equal(
+ find('.rose-notification-body').textContent.trim(),
'The request was invalid.',
'Displays primary error message.'
);
- assert.ok(
+ assert.equal(
find('.rose-form-error-message').textContent.trim(),
'Name is required.',
'Displays field-level errors.'
diff --git a/ui/desktop/.editorconfig b/ui/desktop/.editorconfig
index c35a00240..41302d1b0 100644
--- a/ui/desktop/.editorconfig
+++ b/ui/desktop/.editorconfig
@@ -12,8 +12,5 @@ insert_final_newline = true
indent_style = space
indent_size = 2
-[*.hbs]
-insert_final_newline = false
-
[*.{diff,md}]
trim_trailing_whitespace = false
diff --git a/ui/desktop/.eslintrc.js b/ui/desktop/.eslintrc.js
index 6d20176b1..44c31c752 100644
--- a/ui/desktop/.eslintrc.js
+++ b/ui/desktop/.eslintrc.js
@@ -56,5 +56,10 @@ module.exports = {
'node/no-unpublished-require': 'off',
},
},
+ {
+ // Test files:
+ files: ['tests/**/*-test.{js,ts}'],
+ extends: ['plugin:qunit/recommended'],
+ },
],
};
diff --git a/ui/desktop/package.json b/ui/desktop/package.json
index 590e92035..bc9420931 100755
--- a/ui/desktop/package.json
+++ b/ui/desktop/package.json
@@ -72,7 +72,7 @@
"ember-a11y-testing": "^4.2.0",
"ember-auto-import": "^1.12.0",
"ember-autofocus-modifier": "^2.0.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-app-version": "^5.0.0",
"ember-cli-babel": "^7.26.6",
"ember-cli-code-coverage": "^1.0.3",
@@ -95,7 +95,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-template-lint": "^3.7.0",
"ember-template-lint-plugin-prettier": "^2.0.0",
"eslint": "^7.32.0",
@@ -103,6 +103,7 @@
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-qunit": "^6.2.0",
"faker": "^5.5.3",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
@@ -117,7 +118,7 @@
"stylelint-config-sass-guidelines": "^8.0.0"
},
"engines": {
- "node": ">=10 <=15"
+ "node": ">=12 <=17"
},
"ember": {
"edition": "octane"
diff --git a/ui/desktop/tests/integration/components/dialog-detail-test.js b/ui/desktop/tests/integration/components/dialog-detail-test.js
index e3e483325..18156fb76 100644
--- a/ui/desktop/tests/integration/components/dialog-detail-test.js
+++ b/ui/desktop/tests/integration/components/dialog-detail-test.js
@@ -13,7 +13,7 @@ module('Integration | Component | dialog-detail', function (hooks) {
test('it renders with content', async function (assert) {
await render(hbs`
-
+
Test
diff --git a/ui/desktop/tests/unit/services/ipc-test.js b/ui/desktop/tests/unit/services/ipc-test.js
index d193074c5..2e3ab6ae3 100644
--- a/ui/desktop/tests/unit/services/ipc-test.js
+++ b/ui/desktop/tests/unit/services/ipc-test.js
@@ -73,7 +73,7 @@ module('Unit | Service | ipc', function (hooks) {
});
});
- test('IPCRequests reject if receiving an Error instance, where the rejection value is the parsed JSON Error message', async (assert) => {
+ test('IPCRequests reject if receiving an Error instance, where the rejection value is the parsed JSON Error message', async function (assert) {
assert.expect(1);
const stringifiedPayload = JSON.stringify({
foo: 'bar',
diff --git a/yarn.lock b/yarn.lock
index cabf52ea1..9e8fd65eb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2613,6 +2613,13 @@
resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.44.0.tgz#03d127097dc9cb23052cdb7fcae59d0a9dca53e1"
integrity sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw==
+"@glimmer/vm-babel-plugins@0.80.3":
+ version "0.80.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.80.3.tgz#434b62172318cac43830d3ac29818cf2c5f111c1"
+ integrity sha512-9ej6xlm5MzHBJ5am2l0dbbn8Z0wJoYoMpM8FcrGMlUP6SPMLWxvxpMsApgQo8u6dvZRCjR3/bw3fdf7GOy0AFw==
+ dependencies:
+ babel-plugin-debug-macros "^0.3.4"
+
"@glimmer/vm@^0.42.2":
version "0.42.2"
resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.42.2.tgz#492a4f05eac587c3a37371b3c62593f20bef553d"
@@ -6354,28 +6361,6 @@ body@^5.1.0:
raw-body "~1.1.0"
safe-json-parse "~1.0.1"
-boilerplate-update@0.37.4:
- version "0.37.4"
- resolved "https://registry.yarnpkg.com/boilerplate-update/-/boilerplate-update-0.37.4.tgz#51993eccd468fab69457dff799c29b632faf942e"
- integrity sha512-BMUFsxjugQAsRXHT3QPWckpiB+0jp7YU7U7cGSDbL7IATMfJJDCE7/LGppaIzN97/3iLemkbCeRpmjZWRHYdMA==
- dependencies:
- cpr "^3.0.1"
- debug "^4.1.1"
- execa "^3.0.0"
- git-diff-apply "0.22.7"
- https-proxy-agent "^3.0.0"
- inquirer "^7.0.0"
- merge-package.json "^3.1.8"
- npm-package-arg "^7.0.0"
- npx "^10.2.0"
- open "^7.0.0"
- p-reduce "^2.0.0"
- pacote "10.2.1"
- rimraf "^3.0.0"
- semver "^6.0.0"
- tmp "0.1.0"
- which "^2.0.1"
-
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@@ -7316,30 +7301,6 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3:
unique-filename "^1.1.1"
y18n "^4.0.0"
-cacache@^13.0.1:
- version "13.0.1"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c"
- integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==
- dependencies:
- chownr "^1.1.2"
- figgy-pudding "^3.5.1"
- fs-minipass "^2.0.0"
- glob "^7.1.4"
- graceful-fs "^4.2.2"
- infer-owner "^1.0.4"
- lru-cache "^5.1.1"
- minipass "^3.0.0"
- minipass-collect "^1.0.2"
- minipass-flush "^1.0.5"
- minipass-pipeline "^1.2.2"
- mkdirp "^0.5.1"
- move-concurrently "^1.0.1"
- p-map "^3.0.0"
- promise-inflight "^1.0.1"
- rimraf "^2.7.1"
- ssri "^7.0.0"
- unique-filename "^1.1.1"
-
cacache@^15.0.5:
version "15.2.0"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389"
@@ -7719,7 +7680,7 @@ chokidar@^2.1.8:
optionalDependencies:
fsevents "^1.2.7"
-chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.3, chownr@^1.1.4:
+chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
@@ -7927,15 +7888,6 @@ cliui@^3.2.0:
strip-ansi "^3.0.1"
wrap-ansi "^2.0.0"
-cliui@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
- integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
- dependencies:
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
- wrap-ansi "^2.0.0"
-
cliui@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
@@ -7945,15 +7897,6 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
-cliui@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
- integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
- dependencies:
- string-width "^4.2.0"
- strip-ansi "^6.0.0"
- wrap-ansi "^6.2.0"
-
cliui@^7.0.2:
version "7.0.4"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
@@ -8431,16 +8374,6 @@ cp-file@^7.0.0:
nested-error-stacks "^2.0.0"
p-event "^4.1.0"
-cpr@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/cpr/-/cpr-3.0.1.tgz#b9a55038b7cd81a35c17b9761895bd8496aef1e5"
- integrity sha1-uaVQOLfNgaNcF7l2GJW9hJau8eU=
- dependencies:
- graceful-fs "^4.1.5"
- minimist "^1.2.0"
- mkdirp "~0.5.1"
- rimraf "^2.5.4"
-
cpy@^8.1.1:
version "8.1.2"
resolved "https://registry.yarnpkg.com/cpy/-/cpy-8.1.2.tgz#e339ea54797ad23f8e3919a5cffd37bfc3f25935"
@@ -9925,23 +9858,6 @@ ember-cli-typescript@^4.0.0, ember-cli-typescript@^4.1.0, ember-cli-typescript@^
stagehand "^1.0.0"
walk-sync "^2.2.0"
-ember-cli-update@^0.54.6:
- version "0.54.6"
- resolved "https://registry.yarnpkg.com/ember-cli-update/-/ember-cli-update-0.54.6.tgz#e9f405b4737558e53874025731568ae7c005a48c"
- integrity sha512-0YWkfACDrITm9sl3UNrP8BMYXbRt+iPbAUUv/tY3JWveat8j3aHBR1SI4MqESt3ELkLeLbftTQfU42Tx4Bl/Kg==
- dependencies:
- boilerplate-update "0.37.4"
- debug "^4.1.1"
- execa "^3.4.0"
- fs-extra "^8.0.0"
- inquirer "^7.0.0"
- npm-package-arg "^7.0.0"
- resolve "^1.10.0"
- semver "^6.0.0"
- tmp "0.1.0"
- update-notifier "^4.0.0"
- yargs "^15.1.0"
-
ember-cli-version-checker@^1.0.2:
version "1.3.1"
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-1.3.1.tgz#0bc2d134c830142da64bf9627a0eded10b61ae72"
@@ -9983,10 +9899,10 @@ ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1, ember-cli-ve
semver "^7.3.4"
silent-error "^1.1.1"
-ember-cli@~3.28.0:
- version "3.28.0"
- resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.0.tgz#0a0374c9a1d08386ddf56e8098a38b71dd4453bc"
- integrity sha512-CrMs5edFQ2ingO2xfT33T4nUEl8SlvBQ7q+XO9L/GFTvFU07slHxYSvGur0cwgQfOiLnkSTnIaVF1oqBnEmfPQ==
+ember-cli@~3.28.3:
+ version "3.28.3"
+ resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.3.tgz#3384c3fb018b58111e30efed15a2f6a9b66b84c3"
+ integrity sha512-DddAQAddbyaOU4NAjTt8g+FoCCK/F00kbj9pcHO1lfAUpIUS9JPBoWxxZ3qO08mUNXi50pdQSPVVRWzN7mNz2g==
dependencies:
"@babel/core" "^7.13.8"
"@babel/plugin-transform-modules-amd" "^7.12.1"
@@ -10528,19 +10444,21 @@ ember-source-channel-url@^3.0.0:
dependencies:
node-fetch "^2.6.0"
-ember-source@~3.24.0:
- version "3.24.5"
- resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.5.tgz#7e1da13286f7d1ac63b3d3a547aaeb40bc18a696"
- integrity sha512-j39L7C+q9o9qkwrwNtRN1AVGzE8TlxHm0c6xMzFZFaWMyQt3E7ov72fz3oIn17h8H7zZ1i7dl471Rbqx1GZsLw==
+ember-source@~3.28.4:
+ version "3.28.4"
+ resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.28.4.tgz#b6ac2b1e369ef533d05164c65078b4ceafdb6390"
+ integrity sha512-s7kVy0E08erAHUTI/8SZZvXt3an/xb2g5K+m4Rybvo8Tr/noMk3lIdtyQkSvmgMZ/BbvoW8spS630sO0/JN4Eg==
dependencies:
"@babel/helper-module-imports" "^7.8.3"
"@babel/plugin-transform-block-scoping" "^7.8.3"
"@babel/plugin-transform-object-assign" "^7.8.3"
"@ember/edition-utils" "^1.2.0"
- babel-plugin-debug-macros "^0.3.3"
+ "@glimmer/vm-babel-plugins" "0.80.3"
+ babel-plugin-debug-macros "^0.3.4"
babel-plugin-filter-imports "^4.0.0"
broccoli-concat "^4.2.4"
broccoli-debug "^0.6.4"
+ broccoli-file-creator "^2.1.1"
broccoli-funnel "^2.0.2"
broccoli-merge-trees "^4.2.0"
chalk "^4.0.0"
@@ -10553,9 +10471,9 @@ ember-source@~3.24.0:
ember-cli-version-checker "^5.1.1"
ember-router-generator "^2.0.0"
inflection "^1.12.0"
- jquery "^3.5.0"
+ jquery "^3.5.1"
resolve "^1.17.0"
- semver "^6.1.1"
+ semver "^7.3.4"
silent-error "^1.1.1"
ember-template-lint-plugin-prettier@^2.0.0:
@@ -11086,6 +11004,14 @@ eslint-plugin-prettier@^4.0.0:
dependencies:
prettier-linter-helpers "^1.0.0"
+eslint-plugin-qunit@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-qunit/-/eslint-plugin-qunit-6.2.0.tgz#f4efda29da99523e560848d9592c39c0590c308d"
+ integrity sha512-KvPmkIC2MHpfRxs/r8WUeeGkG6y+3qwSi2AZIBtjcM/YG6Z3k0GxW5Hbu3l7X0TDhljVCeBb9Q5puUkHzl83Mw==
+ dependencies:
+ eslint-utils "^3.0.0"
+ requireindex "^1.2.0"
+
eslint-scope@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
@@ -11364,7 +11290,7 @@ execa@^2.0.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
-execa@^3.0.0, execa@^3.4.0:
+execa@^3.0.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
@@ -11992,7 +11918,7 @@ fixturify-project@^2.1.1:
tmp "^0.0.33"
type-fest "^0.11.0"
-fixturify@^1.0.0, fixturify@^1.2.0:
+fixturify@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/fixturify/-/fixturify-1.3.0.tgz#163c468093c7c4d90b70cde39fd6325f6528b25d"
integrity sha512-tL0svlOy56pIMMUQ4bU1xRe6NZbFSa/ABTWMxW2mH38lFGc9TrNAKWcMBQ7eIjo3wqSS8f2ICabFaatFyFmrVQ==
@@ -12568,18 +12494,6 @@ git-cz@^4.3.1:
resolved "https://registry.yarnpkg.com/git-cz/-/git-cz-4.7.6.tgz#1250c486f01724e801a630b848fd8786f7e67e90"
integrity sha512-WtQEXqetJSi9LKPI77bMdSQWvLGjE93egVbR0zjXd1KFKrFvo/YE/UuGNcMeBDiwzxfQBhjyV7Hn0YUZ8Q0BcQ==
-git-diff-apply@0.22.7:
- version "0.22.7"
- resolved "https://registry.yarnpkg.com/git-diff-apply/-/git-diff-apply-0.22.7.tgz#25989575c025f45f066579233894ba8a4afb7e28"
- integrity sha512-tYExAfjrgh/ImXuOmHYnL4dC5spf3e4+mJSYUoaQTZkys3krEX303yFxhVxMTzljsWScgrWj0iGL3Lb0yROhtQ==
- dependencies:
- debug "^4.0.0"
- fixturify "^1.0.0"
- fs-extra "^8.0.0"
- tmp "0.1.0"
- uuid "^3.1.0"
- yargs "^15.0.0"
-
git-fetch-pack@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/git-fetch-pack/-/git-fetch-pack-0.1.1.tgz#7703a32cf0db80f060d2766a34ac00d02cebcdf5"
@@ -12736,13 +12650,6 @@ global-dirs@^0.1.0, global-dirs@^0.1.1:
dependencies:
ini "^1.3.4"
-global-dirs@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
- integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==
- dependencies:
- ini "1.3.7"
-
global-dirs@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
@@ -12999,7 +12906,7 @@ got@^9.6.0:
to-readable-stream "^1.0.0"
url-parse-lax "^3.0.0"
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4:
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4:
version "4.2.8"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
@@ -13353,7 +13260,7 @@ homedir-polyfill@^1.0.1:
dependencies:
parse-passwd "^1.0.0"
-hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.9, hosted-git-info@^3.0.2, hosted-git-info@^3.0.8, hosted-git-info@^4.0.1:
+hosted-git-info@^2.1.4, hosted-git-info@^2.7.1, hosted-git-info@^2.8.9, hosted-git-info@^3.0.8, hosted-git-info@^4.0.1:
version "3.0.8"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d"
integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==
@@ -13550,14 +13457,6 @@ https-proxy-agent@^2.2.3:
agent-base "^4.3.0"
debug "^3.1.0"
-https-proxy-agent@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81"
- integrity sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==
- dependencies:
- agent-base "^4.3.0"
- debug "^3.1.0"
-
https-proxy-agent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b"
@@ -13742,11 +13641,6 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-ini@1.3.7:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
- integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
-
ini@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
@@ -13825,7 +13719,7 @@ inquirer@^0.12.0:
strip-ansi "^3.0.0"
through "^2.3.6"
-inquirer@^7.0.0, inquirer@^7.3.3:
+inquirer@^7.3.3:
version "7.3.3"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
@@ -13900,11 +13794,6 @@ invert-kv@^1.0.0:
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
-invert-kv@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
- integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
-
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
@@ -14180,14 +14069,6 @@ is-installed-globally@^0.1.0:
global-dirs "^0.1.0"
is-path-inside "^1.0.0"
-is-installed-globally@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
- integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
- dependencies:
- global-dirs "^2.0.1"
- is-path-inside "^3.0.1"
-
is-installed-globally@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
@@ -14242,11 +14123,6 @@ is-npm@^1.0.0:
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ=
-is-npm@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
- integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==
-
is-npm@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
@@ -14293,7 +14169,7 @@ is-path-inside@^1.0.0:
dependencies:
path-is-inside "^1.0.1"
-is-path-inside@^3.0.1, is-path-inside@^3.0.2:
+is-path-inside@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
@@ -14704,7 +14580,7 @@ jpeg-js@^0.4.2:
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b"
integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==
-jquery@^3.5.0:
+jquery@^3.5.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
@@ -15086,7 +14962,7 @@ latest-version@^3.0.0:
dependencies:
package-json "^4.0.0"
-latest-version@^5.0.0, latest-version@^5.1.0:
+latest-version@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
@@ -15116,13 +14992,6 @@ lcid@^1.0.0:
dependencies:
invert-kv "^1.0.0"
-lcid@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
- integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
- dependencies:
- invert-kv "^2.0.0"
-
leek@0.0.24:
version "0.0.24"
resolved "https://registry.yarnpkg.com/leek/-/leek-0.0.24.tgz#e400e57f0e60d8ef2bd4d068dc428a54345dbcda"
@@ -15273,20 +15142,6 @@ libnpmteam@^1.0.2:
get-stream "^4.0.0"
npm-registry-fetch "^4.0.0"
-libnpx@10.2.2:
- version "10.2.2"
- resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.2.tgz#5a4171b9b92dd031463ef66a4af9f5cbd6b09572"
- integrity sha512-ujaYToga1SAX5r7FU5ShMFi88CWpY75meNZtr6RtEyv4l2ZK3+Wgvxq2IqlwWBiDZOqhumdeiocPS1aKrCMe3A==
- dependencies:
- dotenv "^5.0.1"
- npm-package-arg "^6.0.0"
- rimraf "^2.6.2"
- safe-buffer "^5.1.0"
- update-notifier "^2.3.0"
- which "^1.3.0"
- y18n "^4.0.0"
- yargs "^11.0.0"
-
libnpx@^10.2.4:
version "10.2.4"
resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.4.tgz#ef0e3258e29aef2ec7ee3276115e20e67f67d4ee"
@@ -16329,14 +16184,6 @@ merge-descriptors@1.0.1:
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
-merge-package.json@^3.1.8:
- version "3.1.8"
- resolved "https://registry.yarnpkg.com/merge-package.json/-/merge-package.json-3.1.8.tgz#2da5ee453c3745565b2fea3bf31dc6ef81e712d7"
- integrity sha512-3/xqeMFcGqMpX79qNs3SDAsNNZ1Q31nqeH0ma4ilB++4SqDnkzmHcbDNEVy67RWIy+pdAdw6XnY31dircVG5lQ==
- dependencies:
- rfc6902-ordered "^4.0.5"
- three-way-merger "0.6.3"
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -16529,17 +16376,6 @@ minipass-collect@^1.0.2:
dependencies:
minipass "^3.0.0"
-minipass-fetch@^1.2.1:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.4.tgz#63f5af868a38746ca7b33b03393ddf8c291244fe"
- integrity sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ==
- dependencies:
- minipass "^3.1.0"
- minipass-sized "^1.0.3"
- minizlib "^2.0.0"
- optionalDependencies:
- encoding "^0.1.12"
-
minipass-fetch@^1.3.0, minipass-fetch@^1.3.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6"
@@ -16588,7 +16424,7 @@ minipass@^2.2.0, minipass@^2.3.5:
safe-buffer "^5.1.2"
yallist "^3.0.0"
-minipass@^3.0.0, minipass@^3.0.1, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3:
+minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==
@@ -17166,16 +17002,6 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1:
semver "^5.6.0"
validate-npm-package-name "^3.0.0"
-npm-package-arg@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-7.0.0.tgz#52cdf08b491c0c59df687c4c925a89102ef794a5"
- integrity sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==
- dependencies:
- hosted-git-info "^3.0.2"
- osenv "^0.1.5"
- semver "^5.6.0"
- validate-npm-package-name "^3.0.0"
-
npm-package-arg@^8.0.0, npm-package-arg@^8.1.1:
version "8.1.5"
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44"
@@ -17185,7 +17011,7 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.1.1:
semver "^7.3.4"
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:
+npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.8:
version "1.4.8"
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
@@ -17203,15 +17029,6 @@ npm-pick-manifest@^3.0.0, npm-pick-manifest@^3.0.2:
npm-package-arg "^6.0.0"
semver "^5.4.1"
-npm-pick-manifest@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-4.0.0.tgz#5e1b392a2a6310378b9bab32332597030ca073ce"
- integrity sha512-SsYReLe/16UgSL6GKX6GO4o3RVBthVy1uuHq6kZ9mkPeQXpOHbrLZoV13i8fr3LQtET+pLPSfD13e4RIYfkX5Q==
- dependencies:
- figgy-pudding "^3.5.1"
- npm-package-arg "^7.0.0"
- semver "^5.4.1"
-
npm-profile@^4.0.2, npm-profile@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz#28ee94390e936df6d084263ee2061336a6a1581b"
@@ -17221,7 +17038,7 @@ npm-profile@^4.0.2, npm-profile@^4.0.4:
figgy-pudding "^3.4.1"
npm-registry-fetch "^4.0.0"
-npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.7, npm-registry-fetch@^5.0.1, npm-registry-fetch@~8.1.1:
+npm-registry-fetch@^4.0.0, npm-registry-fetch@^4.0.7, npm-registry-fetch@~8.1.1:
version "8.1.5"
resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz#33270c6722030c2d158a970d1327dcd9a149b5c5"
integrity sha512-yZPNoJK9clx1jhSXU54kU6Aj1SV2p7mXUs1W/6OjQvek3wb1RrjDCrt4iY1+VX9eBQvvSGEpzNmYkRUaTL8rqg==
@@ -17276,7 +17093,7 @@ npm-user-validate@^1.0.1:
resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561"
integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw==
-npm@5.1.0, npm@~6.14.6:
+npm@~6.14.6:
version "6.14.15"
resolved "https://registry.yarnpkg.com/npm/-/npm-6.14.15.tgz#97dd51af5b5d6225b611b40c5cb4d31da1d467fe"
integrity sha512-dkcQc4n+DiJAMYG2haNAMyJbmuvevjXz+WC9dCUzodw8EovwTIc6CATSsTEplCY6c0jG4OshxFGFJsrnKJguWA==
@@ -17407,14 +17224,6 @@ npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2:
gauge "~2.7.3"
set-blocking "~2.0.0"
-npx@^10.2.0:
- version "10.2.2"
- resolved "https://registry.yarnpkg.com/npx/-/npx-10.2.2.tgz#de4be1b76e6bcbf750486925b34a07eed1db01b4"
- integrity sha512-eImmySusyeWphzs5iNh791XbZnZG0FSNvM4KSah34pdQQIDsdTDhIwg1sjN3AIVcjGLpbQ/YcfqHPshKZQK1fA==
- dependencies:
- libnpx "10.2.2"
- npm "5.1.0"
-
nth-check@^1.0.2, nth-check@^2.0.0, nth-check@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
@@ -17593,7 +17402,7 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
-open@^7.0.0, open@^7.0.2, open@^7.0.3, open@^7.2.1:
+open@^7.0.2, open@^7.0.3, open@^7.2.1:
version "7.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
@@ -17685,15 +17494,6 @@ os-locale@^2.0.0:
lcid "^1.0.0"
mem "^1.1.0"
-os-locale@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
- integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
- dependencies:
- execa "^1.0.0"
- lcid "^2.0.0"
- mem "^4.0.0"
-
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -17853,11 +17653,6 @@ p-map@^4.0.0:
dependencies:
aggregate-error "^3.0.0"
-p-reduce@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a"
- integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==
-
p-timeout@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038"
@@ -17902,31 +17697,6 @@ package-json@^6.3.0:
registry-url "^5.0.0"
semver "^6.2.0"
-pacote@10.2.1:
- version "10.2.1"
- resolved "https://registry.yarnpkg.com/pacote/-/pacote-10.2.1.tgz#4107f72eeaaacb47eb68952ed31c050bab9d3f94"
- integrity sha512-sPHVOF7uKY8yDivKYimb5l3D8BvNNjR+9FmzkThOTtftkddGY/C6uENVkgc3HQtOpCX8R2qztkSAOI369bgLEA==
- dependencies:
- cacache "^13.0.1"
- chownr "^1.1.3"
- fs-minipass "^2.0.0"
- infer-owner "^1.0.4"
- lru-cache "^5.1.1"
- minipass "^3.0.1"
- minipass-fetch "^1.2.1"
- npm-package-arg "^7.0.0"
- npm-packlist "^1.4.6"
- npm-pick-manifest "^4.0.0"
- npm-registry-fetch "^5.0.1"
- osenv "^0.1.5"
- promise-inflight "^1.0.1"
- promise-retry "^1.1.1"
- read-package-json-fast "^1.0.3"
- semver "^6.3.0"
- ssri "^7.1.0"
- tar "^5.0.5"
- which "^2.0.1"
-
pacote@^9.1.0, pacote@^9.5.12, pacote@^9.5.3:
version "9.5.12"
resolved "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz#1e11dd7a8d736bcc36b375a9804d41bb0377bf66"
@@ -18858,7 +18628,7 @@ punycode@^1.2.4, punycode@^1.4.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
-pupa@^2.0.1, pupa@^2.1.1:
+pupa@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
@@ -19280,14 +19050,6 @@ read-installed@~4.0.3:
optionalDependencies:
graceful-fs "^4.1.2"
-read-package-json-fast@^1.0.3:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz#fba77b0b0d66b1ab344e214cb0876577e749c423"
- integrity sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==
- dependencies:
- 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.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"
@@ -20081,19 +19843,6 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rfc6902-ordered@^4.0.5:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/rfc6902-ordered/-/rfc6902-ordered-4.0.5.tgz#054a23984401ad276aa668def89e010038e4dd95"
- integrity sha512-OsdXZ7FP8DPXd+p+qRxAYi2yFsgAzTp4+ZuvhJri6lLyZYsm3zvGGq5qrmN/jmmv06IV/KVDT062owHUc2Ec+A==
- dependencies:
- debug "^4.0.0"
- rfc6902 "^3.0.1"
-
-rfc6902@^3.0.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/rfc6902/-/rfc6902-3.1.1.tgz#24fc3b2568496100ac507c2e27e61ec5a1c134dd"
- integrity sha512-aHiEm2S4mQSyyIaK7NVotfmVkgOOn1K9iuuSCIKJ8eIAte/8o06Vp06Z2NcLrmMahDmA+2F6oHx33P4NOQ1JnQ==
-
rimraf@^2.2.8, rimraf@^2.3.4, rimraf@^2.4.1, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
@@ -21003,14 +20752,6 @@ ssri@^6.0.0, ssri@^6.0.1, ssri@^6.0.2:
dependencies:
figgy-pudding "^3.5.1"
-ssri@^7.0.0, ssri@^7.1.0:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.1.tgz#33e44f896a967158e3c63468e47ec46613b95b5f"
- integrity sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw==
- dependencies:
- figgy-pudding "^3.5.1"
- minipass "^3.1.1"
-
ssri@^8.0.0, ssri@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
@@ -21613,7 +21354,7 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
-tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.19, tar@^5.0.5, tar@^6.0.2, tar@^6.0.5, tar@^6.1.0, tar@^6.1.9:
+tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.19, tar@^6.0.2, tar@^6.0.5, tar@^6.1.0, tar@^6.1.9:
version "6.1.11"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
@@ -21773,13 +21514,6 @@ text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0:
resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.6.0.tgz#d7e4ab13fe54e32e08873be40d51b74229b00fc4"
integrity sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==
-three-way-merger@0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/three-way-merger/-/three-way-merger-0.6.3.tgz#ad4d9cd889f0c81ab2e820301a4663ee5def0334"
- integrity sha512-sjXsAqIiluhRBvbXfri1dBI5NSqfl/fe8R3QypAR15qeMRrsBodrGeROBtve2BQnxB9Ub6Fs0e/H1OZdaELD7A==
- dependencies:
- semver "^6.0.0"
-
throttle-debounce@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb"
@@ -21893,7 +21627,7 @@ tmp@0.0.33, tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
-tmp@0.1.0, tmp@^0.1.0:
+tmp@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877"
integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==
@@ -22540,25 +22274,6 @@ update-notifier@^2.2.0, update-notifier@^2.3.0, update-notifier@^2.5.0:
semver-diff "^2.0.0"
xdg-basedir "^3.0.0"
-update-notifier@^4.0.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3"
- integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
- dependencies:
- boxen "^4.2.0"
- chalk "^3.0.0"
- configstore "^5.0.1"
- has-yarn "^2.1.0"
- import-lazy "^2.1.0"
- is-ci "^2.0.0"
- is-installed-globally "^0.3.1"
- is-npm "^4.0.0"
- is-yarn-global "^0.3.0"
- latest-version "^5.0.0"
- pupa "^2.0.1"
- semver-diff "^3.1.1"
- xdg-basedir "^4.0.0"
-
update-notifier@^5.0.1:
version "5.1.0"
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"
@@ -22747,7 +22462,7 @@ uuid-browser@^3.1.0:
resolved "https://registry.yarnpkg.com/uuid-browser/-/uuid-browser-3.1.0.tgz#0f05a40aef74f9e5951e20efbf44b11871e56410"
integrity sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA=
-uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3:
+uuid@^3.3.2, uuid@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
@@ -23232,15 +22947,6 @@ wrap-ansi@^5.1.0:
string-width "^3.0.0"
strip-ansi "^5.0.0"
-wrap-ansi@^6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
- integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -23396,7 +23102,7 @@ yaml@^1.10.0, yaml@^1.7.2:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-yargs-parser@20.2.4, yargs-parser@^15.0.1, yargs-parser@^18.1.2, yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^7.0.0, yargs-parser@^9.0.2, yargs-parser@~20.2.7:
+yargs-parser@20.2.4, yargs-parser@^15.0.1, yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^7.0.0, yargs-parser@~20.2.7:
version "20.2.9"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
@@ -23424,24 +23130,6 @@ yargs@16.2.0, yargs@^16.0.0, yargs@^16.2.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
-yargs@^11.0.0:
- version "11.1.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766"
- integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==
- dependencies:
- cliui "^4.0.0"
- decamelize "^1.1.1"
- find-up "^2.1.0"
- get-caller-file "^1.0.1"
- os-locale "^3.1.0"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^2.0.0"
- which-module "^2.0.0"
- y18n "^3.2.1"
- yargs-parser "^9.0.2"
-
yargs@^14.2.3:
version "14.2.3"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"
@@ -23459,23 +23147,6 @@ yargs@^14.2.3:
y18n "^4.0.0"
yargs-parser "^15.0.1"
-yargs@^15.0.0, yargs@^15.1.0:
- version "15.4.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
- integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
- dependencies:
- cliui "^6.0.0"
- decamelize "^1.2.0"
- find-up "^4.1.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^4.2.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^18.1.2"
-
yargs@^8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"